ďťż
Podstrony
|
telcocafeWitam, proszę o pomoc, zaczynam się dopiero bawić się z php i sql. Poniżej skopiowałem kod źródłowy ze strony. Poprawcie mi ten kod jeśli możecie pod względem zabezpieczenia strony polegające na tym że aby dostać się do zawartości strony użytkownik musi się zalogować. Mam zrobioną w mysql tabele przeznaczoną na logowanie, nazywa się "logowanie" w której są dwie pozycje "login" i "hasło". Proszę, podepnijcie mi tą tabelę pod stronę, tak żeby to działało. Normalnie strona się łączy samoczynnie z mysql a logowanie nie działa.<html> <head> <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=Windows-1250"> <title>xxxxx</title> </head> <body <form action="index.php" method="post"> <table border=1 bgcolor=#C0C0C0> <tr> <td><B>LOGIN</B></td> <td> <input type="text" name="login"></input></td> </tr> <tr> <td><B><Font color=red>HASLO</Font></B></td><td> <input type="password" name="haslo"></input><input type="reset" value="Resetuj" name="B2"> </td>< /tr> <tr><td rowspan="2"> <input type="submit" name="logowanie" value="LOGOWANIE" style="font-weight: bold"></input> </td> <td></td>< /tr>< /table> </form> <?php if ($_POST['logowanie']) { $login=$_POST['login']; $halso=$_POST['haslo']; if (($haslo=="xxx") and ($login=="xxx")) { echo '<B><U><Font color=#000080>Zalogowales sie do bazy :)</Font></U></B>'; echo '<form action="index.php" method="post">'; echo '</form>'; } else { echo '<b><blink><font size="6" color="#FF0000"> PROBUJEMY SIE WLAMAC???? :)</font></blink></b>'; } } $p = @mysql_connect('adres', 'user', 'hasło') or die('Nie ma kontaktu: '.mysql_error()); $b = @mysql_select_db('user', $p) or die('brak polaczenia '.mysql_error()); $pyt = "select * from osoba "; $x = mysql_query($pyt); $l = mysql_num_rows($x); echo "<table border=1 bgcolor=#C0C0C0 >"; echo "<tr><td><B><center>id</center></B></td><td>< B><center>imie</center></B></td><td><B><center>nazwisko< /center></B></td><td><B><center>adres</center></B></td> </tr>"; for ($i=0; $i <$l; $i++) { $rekord = mysql_fetch_array($x); echo "<tr><td>"; echo stripslashes($rekord['id']); echo "</td><td>"; echo $rekord['imie']; echo "</td><td>"; echo $rekord['nazwisko']; echo "</td><td>"; echo $rekord['adres']; echo "</td><td>"; } ?> </body></html> <html> <head> <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=Windows-1250"> <title>xxxxx</title> </head> <body <form action="index.php" method="post"> <table border=1 bgcolor=#C0C0C0> <tr> <td><B>LOGIN</B></td> <td> <input type="text" name="login"></input></td> </tr> <tr> <td><B><Font color=red>HASLO</Font></B></td><td> <input type="password" name="haslo"></input><input type="reset" value="Resetuj" name="B2"> </td>< /tr> <tr><td rowspan="2"> <input type="submit" name="logowanie" value="LOGOWANIE" style="font-weight: bold"></input> </td> <td></td>< /tr>< /table> </form> <?php if ($_POST['logowanie']) { $login=$_POST['login']; $halso=$_POST['haslo']; if (($haslo=="xxx") and ($login=="xxx")) { echo '<B><U><Font color=#000080>Zalogowales sie do bazy smile.gif</Font></U></B>'; echo '<form action="index.php" method="post">'; echo '</form>'; } else { echo '<b><blink><font size="6" color="#FF0000"> PROBUJEMY SIE WLAMAC???? smile.gif</font></blink></b>'; } } $p = @mysql_connect('adres', 'user', 'hasło') or die('Nie ma kontaktu: '.mysql_error()); $b = @mysql_select_db('user', $p) or die('brak polaczenia '.mysql_error()); $pyt = "select * from osoba "; $x = mysql_query($pyt); $l = mysql_num_rows($x); echo "<table border=1 bgcolor=#C0C0C0 >"; echo "<tr><td><B><center>id</center></B></td><td>< B><center>imie</center></B></td><td><B><center>nazwisko< /center></B></td><td><B><center>adres</center></B></td> </tr>"; for ($i=0; $i <$l; $i++) { $rekord = mysql_fetch_array($x); echo "<tr><td>"; echo stripslashes($rekord['id']); echo "</td><td>"; echo $rekord['imie']; echo "</td><td>"; echo $rekord['nazwisko']; echo "</td><td>"; echo $rekord['adres']; echo "</td><td>"; } ?> </body></html> Tak to powinieneś napisać!! :> Użytkownik kar edytował ten post 28 luty 2009, 13:26 no niestety to nie działa, myślę że problem polega na tym żeby "kod źródłowy widział" tabelę służącą do logowania. no niestety to nie działa, myślę że problem polega na tym żeby "kod źródłowy widział" tabelę służącą do logowania. Dokładnie Tak. Znajdź sobie w kodzie linijkę w której wysyłasz zapytanie do sql-a ...select * from osoba... i zamień osoba na nazwę tablicy z hasłami z twojej bazy czyli logowanie. Jeżeli połączenie działa OK to reszta powinna być dobrze @Leo555 Kod podany w drugim poście niczym nie różni się od Twojego. Autorowi posta chodziło o to, żebyś używał znaczników (np. [ code ], [ html ], [ codebox ] - zwłaszcza ostatniego, bo źle czyta się posty, które trzeba przewijać kilka razy). Jeśli chcesz logowanie w PHP, to najpierw przejrzyj zasoby sieci. Na pewno znajdziesz gotowe przykłady. @imcpan Po zastosowaniu Twojej rady na stronie wyświetlą się loginy i hasła ;) wielkie dzięki, już sobie poradziłem z tym tematem. Bardzo wam dziękuję za pomoc i krytykę, która okazała się konstruktywna i poszperałem jeszcze po internecie i udało się zrobić logowanie. Jednej tylko rzeczy odnośnie logowania nie umiem zrobić, mianowicie kodowania hasła przesyłanego z bazy. W moim przypadku służy do tego linijka: $haslo = mysql_escape_string(md5($_POST['pass'])); niestety mam serwer postawiony na ugu.pl i tam kodowanie jest UTF-8 Unicode (utf8) i nie ma md5, w związku z tym zabezpieczenie przesyłanych danych nie jest za dobre. Próbowałem zamiast md5 podstawić utf8 ale nie chodzi. Może w tym temacie macie jakieś doświadczenie???? utf8 czy iso-8859-2, raczej nie ma znaczenia. Funkcja md5 jest domyślnie w PHP, musi być. A źle robisz - hasło zapisuj w bazie jako md5 i potem powrównuj hash z hashem md5 wpisanego w formularz logowania. też mi to na myśl przyszło, z tym że w bazie danych nie mam md5, jest kilkanaście innych ale tego nie ma ;/ MySQL posiada funkcję MD5, ale to nie ma znaczenia, bo nie ma potrzeby korzystania z niej (chyba, że podczas ręcznego dodawania użytkownika do bazy). Podczas rejestracji użytkownik podaje hasło, traktujesz je funkcją MD5 z PHP i zapisujesz do bazy. W bazie przechowujesz hashe, a nie hasła. Podczas logowania pobierasz hash z bazy, następnie obliczasz hash hasła, które wpisał uzytkownik i porównujesz. Użytkownik Kozack edytował ten post 02 marzec 2009, 18:03 jakoś sobie z logowaniem poradziłem i jest ok, wielkie dzięki za pomoc. Mam jeszcze jedno pytanie i jeśli mielibyście wolną chwilę to zarknijcie na ten kod: echo '<h3><B>SZUKAJ KLIENTA</B></h3><input type="text" name="szukana"></input>'; echo '<input type="submit" name="szukacz" Value="szukaj"style="font-weight: bold; background-color:#333333; color:yellow; style=width: 140; height: 35"></input>'; echo '</form>'; if ($_POST['szukaj']) { $szukana=$_POST['szukana']; echo $szukana; $pyt = "select * from osoba where imie like '%';$szukana;%'"; $x = mysql_query($pyt); $l = mysql_num_rows($x); echo "<table border=1 bgcolor=#C0C0C0 >"; echo "<tr><td><B><center>id</center></B></td><tr>< td><B><center>imie</center></B></td><td><B><center> nazwisko</center></B></td><td><B><center>adres</center></ B></td>"; for ($i=0; $i <$l; $i++) { $rekord = mysql_fetch_array($x); echo "<tr><td>"; echo stripslashes($rekord['id']); echo "</td><td>"; echo "<tr><td>"; echo stripslashes($rekord['imie']); echo "</td><td>"; echo $rekord['nazwisko']; echo "</td><td>"; echo $rekord['adres']; echo "</td><td>"; } } nie działa mi na przycisku wyszukiwanie, nie wiem dlaczego. Jeśli normalnie zrobię zapytanie do wyświetlenia całej zawartości tabeli to nie ma problemu, jednak myślę że nie ma sensu wyświetlać wszystkich pozycji tabeli jak chcę poszukać np użytkowników o imieniu np Marek. Coś jest skopane w kodzie tylko nie wiem co ;/ Jak macie chwilę i możecie mi napisać np kod służący do wprowadzania czy usuwania danych z tabeli lub macie jakiś szablon służący do tworzenia np testów za pomocą php i mysql to będę bardzo wdzięczny :) Najpierw naucz się stosować odpowiednie znaczniki na forum. Kod zamieszczasz w: tuta długi kod Następnie wróć do nauki podstaw HTML-a i PHP. Ciągi znaków łączy się przy pomocy kropki, a nie średnika. Skryptu nikomu nie będzie chciało się pisać, bo są to podstawy omawiane w każdym kursie, których są setki w sieci. Użytkownik Kozack edytował ten post 03 marzec 2009, 15:40 |
|||
Sitedesign by AltusUmbrae. |