ďťż
Podstrony
|
telcocafeKto 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 ?? |
|||
Sitedesign by AltusUmbrae. |