Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Notice: Undefined index: name - jak to mogę naprawić ?
spec8320
post 11.08.2012, 20:01:21
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 27.05.2008
Skąd: Białystok

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


Witam otóż mam problem trochę raczkuje z php i analizuje prosty skrypt (przepisuje pod swoje zapotrzebowania). I otóż mam taki warningi:

Notice: Undefined index: name in C:\xampp\htdocs\login.php on line 36

Notice: Undefined index: password in C:\xampp\htdocs\login.php on line 40


Linie błędów pokrywają się z liniami załączonego kodu... proszę o pomoc smile.gif

I drugie pytanie (to już do bardziej zaawansowanych). Jaki jest najskuteczniejszy sposób zabezpieczania logowania ? Zapisywanie do sesji loginu a w mysql zapisywanie Session_ID i porównywanie ? Zauważyłem, że w wielu skryptach dla "zielonych" w sesji są trzymane np. Login i Hasło. albo Logged = true co wydaje się za przeproszeniem kompletnym idiotyzmem stąd pytanie jaki jest skuteczny sposób zabezpieczenia tego procesu ?

  1. <?php
  2. include 'config.php';
  3. db_connect();
  4.  
  5. // sprawdzamy czy user nie jest przypadkiem zalogowany
  6. if(!$_SESSION['logged']) {
  7. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  8. if(isset($_POST['name'])) {
  9. // filtrujemy dane...
  10. $_POST['name'] = clear($_POST['name']);
  11. $_POST['password'] = clear($_POST['password']);
  12. // i kodujemy hasło
  13. $_POST['password'] = codepass($_POST['password']);
  14.  
  15. // sprawdzamy prostym zapytaniem sql czy podane dane są prawidłowe
  16. $result = mysql_query("SELECT `user_id` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1");
  17. if(mysql_num_rows($result) > 0) {
  18. // jeśli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera
  19. $row = mysql_fetch_assoc($result);
  20. $_SESSION['logged'] = true;
  21. $_SESSION['user_id'] = $row['user_id'];
  22. echo '<p>Zostałeś poprawnie zalogowany! Możesz teraz przejść na <a href="index.php">stronę główną</a>.</p>';
  23. } else {
  24. echo '<p>Podany login i/lub hasło jest nieprawidłowe.</p>';
  25. }
  26. }
  27. if (isset($_POST['name'])) {
  28. echo $_POST['name'];
  29. } else {
  30. echo 'foo not set';
  31. }
  32. // wyświetlamy komunikat na zalogowanie się
  33. echo '<form method="post" action="login.php">
  34. <p>
  35. Login:<br>
  36. <input type="text" value="'.$_POST['name'].'" name="name">
  37. </p>
  38. <p>
  39. Hasło:<br>
  40. <input type="password" value="'.$_POST['password'].'" name="password">
  41. </p>
  42. <p>
  43. <input type="submit" value="Zaloguj">
  44. </p>
  45. </form>';
  46. } else {
  47. echo '<p>Jesteś już zalogowany, więc nie możesz się zalogować ponownie.</p>
  48. <p>[<a href="index.php">Powrót</a>]</p>';
  49. }
  50.  
  51. db_close();
  52. ?>
Go to the top of the page
+Quote Post
IceManSpy
post 11.08.2012, 20:17:28
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


To jest tylko notka, ze takie indexy w tablicy nie istnieją. Zaistnieją pewno, jeśli wyślesz formularz.

Co do drugiego pytania, to rozwiązań jest wiele - trzymanie id usera, mail usera ale nigdy nie hasło! Trzymaj to w sesji, a jeśli chcesz bardziej skomplikowane to może być sesja + baza danych. Ale to temat rzeka i nie ma idealnych rozwiązań.


--------------------
Go to the top of the page
+Quote Post
spec8320
post 11.08.2012, 20:26:15
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 27.05.2008
Skąd: Białystok

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


a jak się pozbyć tych Notice ? Wybacz programowałem we wcześniejszej wersji PHP bodajże nawet 4 i tam nie było takich problemów

Problem rozwiązałem sam:

  1. $name = isset($_POST['name']) ? $_POST['name'] : '';
  2. $password = isset($_POST['password']) ? $_POST['password'] : '';
Go to the top of the page
+Quote Post

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: 28.04.2025 - 08:26