![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 12.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, napisałem dziś kod i zastanawiam się czy zrobiłem to dobrze. Czy nie porobiłem jakichś nie potrzebnych rzeczy itp.
Kod <?php
$username="root"; $password="123123"; $database="321321"; $tytul=$_GET['tytul']; mysql_connect('localhost',$username,$password); @mysql_select_db($database) or die("Nie odnaleziono bazy danych"); $query="SELECT * FROM podstrony WHERE tytul='$tytul'"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); $i=0; while ($i < $num) { $tytul=mysql_result($result,$i,"tytul"); $tresc=mysql_result($result,$i,"tresc"); echo '<h1><font color="#99CC00">'.$tytul.'</font></h1>'.$tresc; $i++; } ?> <h2>Komentarze:</h2> <label value="lol"></label> Dodaj własny<br /> <form action="<?php echo 'index.php?id=podstrona&tytul='.$tytul; ?>" method="post"><textarea name="tresc2" maxlength="36" rows="5" cols="20"> Wpisz komentarz... </textarea><br /><br /> <?php $account = rand(100000, 15); echo '<h2>' . $account . '</h2> <input type="hidden" name="account" value="' . $account . '">' . "\n"; ?><br /><input type="text" name="cyfr" size="25" value="Tutaj przepisz powyższy ciąg cyfr."><br /> <input type="text" name="nick" value="twój nick"><br><img src="http://localhost/securimage/securimage_show.php" id="image" align="absmiddle" /> <br /><button type="submit" value="Wyślij">Wyślij</button></form> <hr> <?php if (IsSet($_POST['tresc2'])) { $cyfr=$_POST['cyfr']; $account=$_POST['account']; if ($cyfr==$account) { $tresc2=$_POST['tresc2']; $nick=$_POST['nick']; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die("Nie znaleziono bazy danych"); $query = "INSERT INTO komentarze VALUES ('$tytul','$tresc2','$nick')"; mysql_query($query); mysql_close(); echo '<h1>Komentarz dodany!</h1>'; } else { echo '<h1>Błędny kod!</h1>'; } } mysql_connect('localhost',$username,$password); @mysql_select_db($database) or die("Nie odnaleziono bazy danych"); $query="SELECT * FROM komentarze WHERE tytul='$tytul'"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); $i=0; while ($i < $num) { $tytul3=mysql_result($result,$i,"tresc"); $nick3=mysql_result($result,$i,"podpis"); echo "$tytul3<br /> napisane przez: $nick3 <hr>"; $i++; } ?> Ten post edytował M@rtin 22.06.2009, 20:31:01 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 173 Pomógł: 121 Dołączył: 24.09.2007 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
wrzuć to w tag php, będzie czytelniejszy i będzie można łatwiej wychwycić błędy.
Błąd jest tutaj:
powinny być mysql_num_rows($result); Po co trzy razy w jednym pliku łączysz się z bazą? Wystarczy dać raz:
Jak już koniecznie musisz się 3 razy łączyć, to wrzuć sobie połączenie z bazą do pliku i użyj include do wczytania pliku. Dzięki temu w razie czego zmienisz dane w jednym pliku, i nie będziesz musiał się bawić z 3 krotną zmianą tego samego. Połączenie zamykaj po wykonaniu operacji na bazie, a Ty się połączysz, nie zdążysz wyświetlić wyników, a już zamykasz połączenie. Jak wykonujesz zapytanie
dodaj sobie or die(mysql_error()); dzięki czemu w razie czego, będziesz wiedział gdzie jest błąd i jaki. Filtruj dane wejściowe i wyjściowe np korzystając z htmlspecialchars();, addslashes(); lub strip_tags(); Jeżeli przekazujesz coś metodą get np id to sprawdź czy id jest liczbą np przy pomocy: is_numeric(); Dane wprowadzane do bazy oczyszczaj przy pomocy: mysql_escape_string(); Sprawdzałeś czy kod działa? Ten post edytował ExPlOiT 22.06.2009, 19:43:11 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:58 |