Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][SQL][PHP]Problem z zarejestrowaniem uzytkownika w BD
Forum PHP.pl > Forum > Przedszkole
Darek82
Mam problem ze skryptem rejestrującym użytkownika, na dole funkcja rejestruj coś nie działa - do bazy danych nie zapisuje się uzytkownik oraz warunki throw new Exception gdy się pojawiają nie wyświetla ich komunikatu

NOWA REJESTRACJA
  1. <?php
  2.  
  3. $email=$_POST['email'];
  4. $haslo=$_POST['haslo'];
  5. $haslo2=$_POST['haslo2'];
  6.  
  7.  
  8. require('funkcje/funkcje.php');
  9.  
  10. try {
  11. if (!wypelniony($_POST)){
  12.  
  13. throw new Exception ('Wypełnij wszystkie pola.');
  14. }
  15. if (!prawidlowy_email($email)){
  16. throw new Exception('Nieprawidłowy email.');
  17. }
  18. if($haslo!=$haslo2){
  19. throw new Exception ('Hasło wpisane za pierwszym razem nie jest takie samo jak to wpisane drugi raz.');
  20. }
  21. if(strlen($haslo)<8){
  22. throw new Exception('Hasło musi zawierać przynajmniej 8 znaków.');
  23. }
  24. [size="6"][b]rejestruj($email, $haslo);[/b][/size]
  25.  
  26.  
  27.  
  28. $_SESSION['prawid_uzyt']=$email;
  29. naglowek('Rejestracja pomyślna');
  30. echo 'Rejestracja zakończyła się sukcesem! Możesz teraz zalogować się na swoje konto';
  31. stopka();
  32. }
  33.  
  34. catch (Exception $e){
  35. echo $e->getMessage();
  36. }
  37.  
  38.  
  39.  
  40. ?>


FUNKCJA REJESTRUJ

  1. function rejestruj($email,$haslo){
  2. $lacz=lacz_bd();
  3.  
  4. $wynik=$lacz->query("select * from uzytkownik where email='$email'");
  5.  
  6.  
  7. if(!$wynik)
  8. throw new Exception('Wykonanie zapytania nie powiodło się.');
  9.  
  10. if($lacz->num_rows>0)
  11. throw new Exception('Taki email znajduje się już w bazie danych.');
  12.  
  13. $wynik=$lacz->query("insert into uzytkownik values (NULL,'$email',sha1('$haslo')");
  14. if(!wynik)
  15. throw new Exception('Rejestracja w bazie danych niemożliwa - proszę spróbować później.');
  16.  
  17. return true;
  18. }


FUNKCJA ŁACZENIA Z BD

  1. <?php
  2.  
  3. function lacz_bd(){
  4. $wynik=new mysqli('localhost','uzyt_1','sto5dola','randki');
  5. if(!$wynik)
  6. throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  7. else
  8. return $wynik;
  9. }
  10.  
  11. ?>
nospor
if(!wynik)

Jesli nadal w tej linijce nie widzisz bledu, to wlacz sobie wyswietlanie wszystkich bledow.... Tu masz napisane jak:
Temat: Jak poprawnie zada pytanie

A jesli juz widzisz blad, to tak czy siak wlacz sobie wyswietlanie wszystkich bledow, bys nastepnym razem znowu bez sensu nie lecial na forum
Darek82
Dziękuje bardzo, udało mi się zarejestrować użytkownika.

W książce był bład w miejsce $lacz powinno być $wynik.

  1. if($lacz->num_rows>0)
  2. throw new Exception('Taki email znajduje się już w bazie danych.');

Dobrze że zrobiłeś ten wątek z wyświetlaniem błędów!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.