Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/sql] panel logowania
Forum PHP.pl > Forum > Przedszkole
wojtekwro
witam,
postanowiłem rozwinąć swój projekt do przodu ;] panel logowania oparty o sesje. Problem polega na tym, że dopisałem formularz dodaj nowy user. Tutaj zrobiłem zrobiłem sprawdzenie czy dla nowego użytkownika istnieje już login, następnie sprawdza czy hasło i powtórzone są identyczne i czy pole hasło nie jest puste. problem polega na tym że skypt wykonuje się jeżeli wpiszem login istniejącego już usera wywali nam komunikat użytkownik już istnieje. Jak dodamy nowego usera skrypt się nie wykona. Poniżej zamieszczam skrypcik:

  1. <?php
  2.  
  3. // odbieramy dane z formularza
  4. $login = $_POST['login'];
  5. $pytanie = $_POST['pytanie'];
  6. $haslo = $_POST['haslo'];
  7. $haslo1 = $_POST['haslo1'];
  8. $dzial = $_POST['dzial'];
  9. $stanowisko = $_POST['stanowisko'];
  10. $nazwa = $_POST['nazwa'];
  11. $telefon = $_POST['telefon'];
  12. $mail = $_POST['mail'];
  13. $data = $_POST['data'];
  14.  
  15. $connection = @mysql_connect('localhost', 'root', '')
  16. or die('brak polaczenia z BD');
  17. $db = @mysql_select_db("beta_user")
  18. or die('Nie mogę połączyć się z bazą danych');
  19. $query = "SELECT login FROM userzy WHERE login='".$login."'";
  20. $result = mysql_query($query);
  21. while($r = mysql_fetch_array($result)) {
  22. $nick = $r['login'];
  23.  
  24. if($nick === $login) {echo 'podany login juz istnieje'; exit; } 
  25. if( !! empty( $_POST['haslo'] ) ) {echo 'nie podałeś hasła'; exit;}
  26. if($haslo === $haslo1) 
  27.  
  28. {
  29. if($login and $pytanie and $haslo and $dzial and $stanowisko and $nazwa and $telefon and $mail and $data) {
  30. //laczenie z bd
  31. //echo 'dodajemy rekordy';
  32. $ins = @mysql_query("INSERT INTO userzy SET login='$login', pytanie='$pytanie', haslo=md5('$haslo'), nazwa='$nazwa', dzial='$dzial', stanowisko='$stanowisko', telefon='$telefon', maila='$mail', data='$data'");
  33. if($ins) echo "Rekord został dodany poprawnie ";
  34. else echo "Błąd nie udało się dodać nowego rekordu";
  35.  
  36. mysql_close($connection);
  37. }
  38. else
  39. { echo 'sprobuj ponownie, pamiętaj by wypełnic wszystkie pola';
  40.  
  41.  
  42. }
  43.  
  44.  
  45.  exit;}
  46. // else {echo ' źle powtórzyłeś hasło'; exit;}
  47. }
  48. ?>


Proszę o pomoc w odnalezieniu błędu.
pozdrawiam i miłego dzionka ;]
nospor
  1. <?php
  2. while($r = mysql_fetch_array($result)) {
  3. $nick = $r['login'];
  4. //.... tu wykonujesz wszystko, wlacznie z dodawaniem usera
  5. }
  6. ?>

Przeciez ty dodawanie usera robisz w petli, ktora leci po po rekordach z loginem co podales. Jesli wiec podasz login, ktorego w bazie nie ma, to petla sie nie wykona a co za tym idzie nie wykona sie insert.

ps: negacja negacji to brak negacji, wiec zamiast exclamation.gif nie pisz nic smile.gif
wojtekwro
dzięki małe niedopatrzonko już wszystko śmiga ;]
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.