Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Błędy w skryptach rejestracji i logowania
artur2233
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 4.03.2012
Skąd: Kielce

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


Witam, wziąłem sktypty rejestracji i logowania z tej strony
Skrypt działa poprawnie, tzn. rejetruje userów, loguje itp. Jednak w skrypcie logowania jest błąd:
Notice: Undefined index: name in C:\xampp\htdocs\www\login.php on line 32
Notice: Undefined index: password in C:\xampp\htdocs\www\login.php on line 36
W skrypcie rejestracji są takie same błędy, ale dopasowane do pól tego skryptu.

Wiem, że to jakiś bardzo prosty błąd, jefnak nie mogę ich wyłapać.
Bardzo proszę o pomoc w wyszukaniu tych błędów.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Ucinek kodu z tego "skryptu"...

Jest if ze sprawdzaniem czy "name" jest w POST ale po ifie i tak jest echo z odwołaniem do $_POST['name'] i $_POST['password']. Tak więc tu leży błąd.

  1. if(isset($_POST['name'])) {
  2. // filtrujemy dane...
  3. $_POST['name'] = clear($_POST['name']);
  4. $_POST['password'] = clear($_POST['password']);
  5. // i kodujemy hasło
  6. $_POST['password'] = codepass($_POST['password']);
  7.  
  8. // sprawdzamy prostym zapytaniem sql czy podane dane są prawidłowe
  9. $result = mysql_query("SELECT `user_id` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1");
  10. if(mysql_num_rows($result) > 0) {
  11. // jeśli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera
  12. $row = mysql_fetch_assoc($result);
  13. $_SESSION['logged'] = true;
  14. $_SESSION['user_id'] = $row['user_id'];
  15. echo '<p>Zostałeś poprawnie zalogowany! Możesz teraz przejść na <a href="index.php">stronę główną</a>.</p>';
  16. } else {
  17. echo '<p>Podany login i/lub hasło jest nieprawidłowe.</p>';
  18. }
  19. }
  20.  
  21. // wyświetlamy komunikat na zalogowanie się
  22. echo '<form method="post" action="login.php">
  23. <p>
  24. Login:<br>
  25. <input type="text" value="'.$_POST['name'].'" name="name">
  26. </p>
  27. <p>
  28. Hasło:<br>
  29. <input type="password" value="'.$_POST['password'].'" name="password">
  30. </p>
  31. <p>
  32. <input type="submit" value="Zaloguj">
  33. </p>
  34. </form>';
  35.  


Powinno być na przykłąd tak:

  1. if(isset($_POST['name'])) {
  2. // filtrujemy dane...
  3. $_POST['name'] = clear($_POST['name']);
  4. $_POST['password'] = clear($_POST['password']);
  5. // i kodujemy hasło
  6. $_POST['password'] = codepass($_POST['password']);
  7.  
  8. // sprawdzamy prostym zapytaniem sql czy podane dane są prawidłowe
  9. $result = mysql_query("SELECT `user_id` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1");
  10. if(mysql_num_rows($result) > 0) {
  11. // jeśli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera
  12. $row = mysql_fetch_assoc($result);
  13. $_SESSION['logged'] = true;
  14. $_SESSION['user_id'] = $row['user_id'];
  15. echo '<p>Zostałeś poprawnie zalogowany! Możesz teraz przejść na <a href="index.php">stronę główną</a>.</p>';
  16. } else {
  17. echo '<p>Podany login i/lub hasło jest nieprawidłowe.</p>';
  18. }
  19. } else {
  20. $_POST['name'] = '';
  21. $_POST['password'] = '';
  22. }
  23.  
  24. // wyświetlamy komunikat na zalogowanie się
  25. echo '<form method="post" action="login.php">
  26. <p>
  27. Login:<br>
  28. <input type="text" value="'.$_POST['name'].'" name="name">
  29. </p>
  30. <p>
  31. Hasło:<br>
  32. <input type="password" value="'.$_POST['password'].'" name="password">
  33. </p>
  34. <p>
  35. <input type="submit" value="Zaloguj">
  36. </p>
  37. </form>';


Że też ludzie którzy umieszczają to w necie nie sprawdzają jak działa z error_reporting(E_ALL) ...
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 00:52