Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Rejestracja
Forum PHP.pl > Forum > Przedszkole
marcinpyr
Witam,

jestem tutaj nowy i nie mam wprawy w całym temacie więc proszę o wyrozumiałość. Od kolegi dostałem skrypt który zapewniał mnie, że będzie działał. Widziałem jak biega bez problemów jednak po zainstalowaniu pakietu xampp i zrobieniu wszystkiego wedle instrukcji wyświetlają mi się powiadomienia (Notice). Wyczytalem, że nie są to błędy jednak nie chcę tego zostawiać w obecnej formie. Niby można to wyłączyć ale chciałem by było zrobione poprawnie.

  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.  
  28. // wyświetlamy komunikat na zalogowanie się
  29. echo '<form method="post" action="login.php">
  30. <p>
  31. Login:<br>
  32. <input type="text" value="'.$_POST['name'].'" name="name">
  33. </p>
  34. <p>
  35. Hasło:<br>
  36. <input type="password" value="'.$_POST['password'].'" name="password">
  37. </p>
  38. <p>
  39. <input type="submit" value="Zaloguj">
  40. </p>
  41. </form>';
  42.  
  43. } else {
  44. echo '<p>Jesteś już zalogowany, więc nie możesz się zalogować ponownie.</p>
  45. <p>[<a href="index.php">Powrót</a>]</p>';
  46. }
  47.  
  48. db_close();
  49. ?>


Wyświetlają się dwa powiadomienia o treści

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

Wyczytałem także tutaj, że funkcja isset powinna załatwić sprawę bo nie mam zdefiniowanego wcześniej name i password. Jednak zielonego pojęcia nie mam gdzie to wpisać żeby było dobrze. Poza tym coś takiego mam już zadeklarowanego wcześniej w linijce 8. Staram się jak najlepiej wgryźć się w temat jednak jakoś mi nie idzie zbyt dobrze. Lektura którą znalazłem nie jest dla mnie czasem do końca zrozumiała zatem...
Pomoże ktoś dobroduszny ? smile.gif
csharp
zrób sobie tak:
  1. if(isset($_POST['name'])) {
  2. echo $_POST['name'];
  3. }
  4.  
  5. to samo z password i wpisz to w tym value.


a dokładnie tak:

  1.  
  2. <input type="text" value="';
  3. if (isset($_POST['name'])) {
  4. echo $_POST['name'];
  5. } echo '" name="name">
  6.  
marcinpyr
Teraz wyświetla mi to samo w polu input mianowicie.

<br /><b>Notice</b>: Undefined index: password in <b>C:\xampp\htdocs\login.php</b> on line <b>39</b><br />
Damonsson
Sprawdź czy dobrze to przepisałeś, nie ma takiej opcji, żeby wyświetlało ten Notice, jeśli zastosowałeś się do porady wyżej. Chyba, że dla password zapomniałeś zrobić analogicznie wink.gif

Owszem w 8. linijce otwierasz if'a, ale w 26. już go zamykasz. I w dalszych linijkach nadal jest niezdefiniowany.
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.