ďťż
Podstrony
|
telcocafeMam taki skrypt do rejestracji nowych użytkowników :<? $polaczenie = mysql_connect("localhost", "w", "e"); mysql_select_db("w", $polaczenie) or die ("Nie mozna sie połączyć"); $imie=$_POST['imie']; $nazwisko=$_POST['nazwisko']; $email=$_POST['email']; $login=$_POST['login']; $haslo=$_POST['haslo']; $haslo2=$_POST['haslo2']; $rodzaj=$_POST['rodzaj']; if ($haslo != $haslo2) { echo "Hasła nie są takie same!"; } $wynik=mysql_query("SELECT * FROM users WHERE login='$login'"); echo mysql_error(); if ($wynik!==0) { echo "Już taki login istnieje!"; } $zapis="INSERT INTO users(imie,nazwisko,email,login, haslo,rodzaj, data) VALUES('".$_POST['imie']."', '".$_POST['nazwisko']."', ''".$_POST['email']."', ''".$_POST['haslo']."', ''".$_POST['haslo2']."', ' '".$_POST['rodzaj']."', ')"; $wynik=mysql_query($zapis); if (!$wynik) { echo "Rejestracja zakończona pomyślnie"; exit; } else { echo ('Rejestracja nie powiodła sie! '); exit; } ?> Niestety skrypt nie działa jak powinien,tzn po wciśnięciu rejestruj pojawia się komunikat : Już taki login istnieje!Rejestracja zakończona pomyślnie. Oczywiście nie dodaje użytkowników do bazy.Co należy zmienić,aby skrypt działał poprawnie?? Zmień w tym skrypcie na: $wynik=mysql_query("SELECT * FROM users WHERE login='$login'"); $czy_juz_jest=mysql_num_rows($wynik); if ($czy_juz_jest>0) Â { Â echo "Już taki login istnieje!"; Â } Pozdrawiam Użytkownik phpowiec edytował ten post 13 czerwiec 2006, 11:59 poza tym jesli istnieje to przydaloby sie przerwac skrypt, nie ? poza tym jesli istnieje to przydaloby sie przerwac skrypt, nie ? Ale tu namotane... 1. Po co robisz: $imie=$_POST['imie']; $nazwisko=$_POST['nazwisko']; $email=$_POST['email']; $login=$_POST['login']; $haslo=$_POST['haslo']; $haslo2=$_POST['haslo2']; $rodzaj=$_POST['rodzaj']; skoro w zapytaniu SQL do zapisu potem tego nie używasz ? - szkoda pamięci serwera :) 2. if ($haslo != $haslo2) { echo "Hasła nie są takie same!"; } Po czymś takim wartałoby rzerwać działanie skryptu rejestracyjnego, prawda :-) 3. Nie znam takiego operatora: !== chyba chodzi o != czyli różny 4. Zapytanie SQL $ w ogóle się nie wykonuje pomieszałeś i dodałęś za duzo znaków apostrofu ' Pozwoliłem sobie "trochę" poprawić koda... <? $polaczenie = mysql_connect("localhost", "w", "e"); mysql_select_db("w", $polaczenie) or die ("Nie mozna sie połączyć"); $imie=$_POST['imie']; $nazwisko=$_POST['nazwisko']; $email=$_POST['email']; $login=$_POST['login']; $haslo=$_POST['haslo']; $haslo2=$_POST['haslo2']; $rodzaj=$_POST['rodzaj']; if ($haslo != $haslo2) die "Hasła nie są takie same!"; $wynik=mysql_query("SELECT * FROM users WHERE login='".$login."'"); if ($wynik!=0) die "Już taki login istnieje!"; $zapis=" INSERT INTO users(imie,nazwisko,email,login, haslo,rodzaj, data) VALUES( '".$imie."', '".$nazwisko."', '".$email."', '".$haslo."', '".$haslo2."', '".$rodzaj."', NOW() ) "; $wynik=mysql_query($zapis); if ($wynik) die ("Rejestracja zakończona pomyślnie"); else die ('Rejestracja nie powiodła sie! '); ?> Użytkownik MichalDCK edytował ten post 18 czerwiec 2006, 11:49 Dzięki za wszystkie odpowiedzi i rady ,już zrobiłem skrypt i wszystko działa idealnie pozdrawiam a poza tym zamiast po kolei przypisywac do zmiennych POST krotkie zmienne to skorzystaj z php.net.pl/extract 2. if ($haslo != $haslo2) { echo "Hasła nie są takie same!"; } 3. Nie znam takiego operatora: !== chyba chodzi o != czyli różny Cóż, ale taki istnieje :) Znaczy on ni mniej ni wiecej nie identyczne (sprawdzanie wartosci i typu). Racja ! Moj błąd :) |
|||
Sitedesign by AltusUmbrae. |