Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/sql] panel logowania, błąd w skrypcie wykonuje się do pewnego momentu
wojtekwro
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 26.04.2007

Ostrzeżenie: (0%)
-----


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 ;]
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




  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 (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) nie pisz nic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
wojtekwro
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 26.04.2007

Ostrzeżenie: (0%)
-----


dzięki małe niedopatrzonko już wszystko śmiga ;]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 23:13