Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Skrypt rejestracji - nie zapisuje do bazy
mis02
post 21.02.2010, 22:19:45
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.02.2010

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


Witam

Napisałem sobie kod pozwalający na rejestrację użytkowników w bazie MySQL. Testowałem to na VertrigoServ (http://vertrigo.sourceforge.net/) i wszystko działało bez zarzutów więc wrzuciłem wrzuciłem to na prv.pl (próbowałem też na yoyo.pl) Po wgraniu na serwer i uruchomieniu skrypt nie działa. Co bym nie wpisał w formularzu, nawet żadna funkcja echo() nie jest wywoływana.

Tu jest kod:

plik register.php
  1. <!-- formularz rejestracji -->
  2. <b>Zarejestruj:</b><br /><br />
  3. <form action="register.php" method="post">
  4. login: <input type="text" name="login" /><br />
  5. hasło: <input type="password" name="pass" /><br />
  6. powtórz hasło: <input type="password" name="repass" /><br />
  7. imię: <input type="text" name="name" /><br />
  8. nazwisko: <input type="text" name="surn" /><br />
  9. <input type="submit" value="Zarejestruj" /><br />
  10. </form>
  11. <?php
  12. //*****połącz z bazą *****
  13. mysql_connect('dbhostname', 'uzytkownik' , 'haslo');
  14. mysql_select_db('baza');
  15.  
  16. mysql_query("SET CHARSET utf8");
  17. mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
  18.  
  19. //***** skrypt dodający użytkownika *****
  20. if(!empty($login) && !empty($pass) && !empty($repass) && !empty($name) && !empty($surn)) //jeśli uzupełniono wszystkie pola
  21. {
  22. if(!mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `user_login` = '$login'"))) //jeśli nie ma użytkownika o podanym loginie
  23. {
  24. if($pass == $repass) // jeśli hasła się zgadzają
  25. {
  26. $md5pass = md5($pass);
  27. mysql_query("INSERT INTO `users` (`user_login`, `user_pass`, `user_name`, `user_surn`, `user_type`, `user_activ`) VALUES ('$login', '$md5pass', '$name', '$surn', 0, 0)"); //dodaje użytkownika
  28. echo 'Użytkownik dodany poprawnie';
  29. }
  30. else
  31. {
  32. echo 'Podane hasła nie zgadzają się';
  33. }
  34. }
  35. else
  36. {
  37. echo 'Podany login jest zajęty';
  38. }
  39. }
  40. ?>

Co jest źle?

Mam jeszcze jedno pytanie: czym różni się odczytanie danych z formularza przez zmienną $nazwa_pola od odczytania przez tablicę post $_POST['nazwa_pola'] ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
enemyofarcha
post 21.02.2010, 22:56:53
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.06.2009

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


Z tego co ja widzę to wszędzie masz wpisane puste zmienne.
np. $login, ma pustą zmienną..

przykładowo w
  1. INSERT INTO [...] VALUES ('$login', '$md5pass', '$name', '$surn', 0, 0) //dodaje użytkownika

brakuje oznaczeń zmiennych. Przykładowo ten login jest, ale nigdzie nie widzę z czego ma pobierać dane.

I teraz do twojego pytania, $_POST['pole'] jest zmienną która pobiera dane z danego pola formularza.
Dla twojego login powinno to wyglądać tak, i wstawione przed wywołaniem zmiennych o nazwie $login
  1. $login = $_POST['login'];

... i tak do pozostałych,

Jeżeli gdzieś się pomyliłem to proszę o poprawienie mojego błędu ;)

Ten post edytował enemyofarcha 21.02.2010, 22:57:22


--------------------
Fotografia
Fiona - Cały świat mojego psa
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:39