ďťż

[php]rejestracja

       

Podstrony


telcocafe

Mam 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 :)

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

  • Sitedesign by AltusUmbrae.