ďťż

[PHP] Optymalizacja kodu System artów

       

Podstrony


telcocafe

Kto mi może pomóc woptymalizacji działającego systemu artów, tak żeby działał lepiej ??

<?php include('data/config.php'); $connection = mysql_connect($host, $username, $password); mysql_select_db($database, $connection); $art = $_GET['art']; if( empty( $art )) { // Wyświetlanie listy artykułów $query = "SELECT COUNT(*) FROM arts"; $result = mysql_query($query, $connection); if ($result>0) { $query = "SELECT id, tytul, wstep, autor FROM arts"; $result = mysql_query($query, $connection); while($row = mysql_fetch_array($result)) { echo '<tr><td width="624" class="nag"><a href="index.php?id=articles&art='; echo($row['id']); echo '">'; echo($row['tytul']); echo '</a></td></tr><tr><td width="624" class="zaw">'; echo($row['wstep']); echo '<br /><br /><div class="pasek" align="right">'; echo($row['autor']); echo '</div></td></tr>'; } mysql_close($connection); } else { echo '<tr><td width="624" class="nag">ERROR!</td></tr><tr><td class="zaw">Brak artykułów</td></tr>'; } } else { // Odczytywanie zawartości artykułu $query = "SELECT id FROM arts WHERE id = $art"; $result = mysql_query($query, $connection); $row = mysql_affected_rows(); if ($row>0) { $query = "SELECT id, tytul, tresc, autor FROM arts WHERE id = $art"; $result = mysql_query($query, $connection); while($row = mysql_fetch_array($result)) { echo '<tr><td width="624" class="nag">'; echo($row['tytul']); echo '</td></tr><tr><td width="624" class="zaw">'; echo($row['tresc']); echo '<br /><br /><div class="pasek" align="right">'; echo($row['autor']); echo '</div></td></tr>'; } mysql_close($connection); } else { echo 'Taki artykuł nie istnieje'; } } ?>



Zacznij od tego, by usunąć cudzysłowy (") i zastąpić je apostrofami ('). Pamiętaj, by wtedy zmienne wpisać np. tak : $ciag = 'Gówno jakieś tam '.$zmienna.' Dalszy ciąg';

a jak się ich pozbyć w zapytaniach do bazy ??

Poza tym chyba nie ma cudzysłowów :P

//EDIT:
udało się :P
teraz kod prezentuje się następująco:
<table border="0"> <?php include('data/config.php'); $connection = mysql_connect($host, $username, $password); mysql_select_db($database, $connection); $art = $_GET['art']; if( empty( $art )) { // Wyświetlanie listy artykułów $query = 'SELECT COUNT(*) FROM arts'; $result = mysql_query($query, $connection); if ($result>0) { $query = 'SELECT id, tytul, wstep FROM arts'; $result = mysql_query($query, $connection); while($row = mysql_fetch_array($result)) { echo '<tr><td width="624" class="nag">'; echo 'Artykuły'; echo '</td></tr><tr><td width="624" class="zaw"><b>'; echo($row['tytul']); echo '</b><br />'; echo($row['wstep']); echo '<br /><br />'; echo '<a href="index.php?id=articles&art='; echo($row['id']); echo '">'; echo 'Więcej ...</a></td></tr>'; } mysql_close($connection); } else { echo '<tr><td width="624" class="nag">ERROR!</td></tr><tr><td class="zaw">Brak artykułów</td></tr>'; } } else { // Odczytywanie zawartości artykułu $query = 'SELECT id FROM arts WHERE id = '.$art; $result = mysql_query($query, $connection); $row = mysql_affected_rows(); if ($row>0) { $query = 'SELECT id, tytul, tresc, autor FROM arts WHERE id = '.$art; $result = mysql_query($query, $connection); while($row = mysql_fetch_array($result)) { echo '<tr><td width="624" class="nag">'; echo($row['tytul']); echo '</td></tr><tr><td width="624" class="zaw">'; echo($row['tresc']); echo '<br /><br /><div class="pasek" align="right">'; echo($row['autor']); echo '</div></td></tr>'; } mysql_close($connection); } else { echo 'Taki artykuł nie istnieje'; } } ?> </table>
Użytkownik pawkow edytował ten post 03 marzec 2006, 07:42
I jeszcze użyłbym mysql_pconnect zamiast mysql_connect. Różnica polega na typ, że pconnect nawiązuje stałe połączenie i tym samym jest wydajniejsze, nie trzeba kilka razy nawiązywać połączenia i zamykać go.




      echo '<tr><td width="624" class="nag">';       echo 'Artykuły';       echo '</td></tr><tr><td width="624" class="zaw"><b>';       echo($row['tytul']);       echo '</b><br />';       echo($row['wstep']);       echo '<br /><br />';       echo '<a href="index.php?id=articles&art=';       echo($row['id']);       echo '">';       echo 'Więcej ...</a></td></tr>';


BTW, masz lukę w zabezpieczeniach


Włącze się. W takich przypadkach powinno się korzystać z strip_tags() i addslashes()? Czy się mylę?

nadal nie rozumiem w jaki sposób się przed tym zabezpieczyć ??
tylko strip_tags czy coś jeszcze??


korzystać z strip_tags() i addslashes()?

1. mysql_pconnect raczej przestało sie używać, wiele serwerów blokuje możliwość takich połączeń
2. do zabezpieczania lepiej wykorzystać mysql_real_escape_string.

kurde, może mi ktoś pokazać kawałek oprawionego kodu, bo ndal nic nie czaje, a dodatkowy wykład o zabezpieczeniach się przyda.

Chociażby tak, żeby usunąć luki w zabezpieczeniach $art = addslashes(strip_tags($_GET['art'])); I jak piszesz dużo html-a to wyłamuj się ze skryptu while($row = mysql_fetch_array($result)) { ?> <tr><td width="624" class="nag"> Artykuły </td></tr><tr><td width="624" class="zaw"><b> <?php echo  $row['tytul'].'</b><br />'.$row['wstep'].'<br /><br /><a href="index.php?id=articles&art='.$row['id'].'">Więcej ...</a></td></tr>'; }


I jak piszesz dużo html-a to wyłamuj się ze skryptu

Czemu ??
Użytkownik pawkow edytował ten post 04 marzec 2006, 13:31


I jak piszesz dużo html-a to wyłamuj się ze skryptu

Czemu ??

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.