Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP]Skrypt Logowania w PHP - Problem z poprawą błędów
Forum PHP.pl > Forum > Przedszkole
wickas
Mam problem z poprawą błędu Undefined index:login in C:\xampp\htdocs\szpital\logowanie.php on line 27. Nie mam pojęcia od czego zacząć ponieważ jestem absolutnie zielony z php.

Tutaj zwykła strona HTML o nazwie logowanie.html, która kozysta ze skryptu logowanie.php. Skrypt logowanie.php przekierowuje na stronę wyświetlającą opcje wejścia na strone główną, jak i poprawnego, ponownego zalogowania. Wprzypadku błędnego zalogowania kozysta z kolejnego skryptu jakim jest logowanie1.php.(znajduje się poniżej kodu strony logowanie.html) Proszę mi wytłumaczyć co jest nie tak z kodem, opcjonalnie zaproponować leprze rozwiązanie skryptu logowania.

Strona logowanie.html
CODE
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset= utf-8" />
  6. <link rel="stylesheet" type="text/css" href="strona1.css" />
  7. <title>Logowanie - Szpital</title>
  8. </head>
  9. <body>
  10. <div id="pojemnik">
  11. <div id="nag">
  12. <div id="menu">
  13. <ul>
  14. <li><a href="index.php" title="Powrót do Strony głównej">Strona Główna</a></li>
  15. <li><a href="konto.php" title="Zarządzanie kontem">Konto</a></li>
  16. <li><a href="baza.php" title="Baza danych leków">Baza Leków</a></li>
  17. <li><a href="rejestracja.php" title="Założenie konta">Rejestracja</a></li>
  18. <li><a href="logowanie.html" title="Zalogowanie się do konta">Logowanie</a></li>
  19. </ul>
  20. </div>
  21. </div>

  1. <?php
  2. session_start(); // rozpoczynamy sesję
  3. require_once('db.php'); // łączy z bazą danych
  4. ?>

  1. <form action="logowanie.php" method="post">
  2. <input type="hidden" name='wyslane' value="TRUE" />
  3. <div id="logowanie">
  4. <div id="log0"><p class="nalog">Login:</p></div><div id="log"><input class="input" type="text" name="login" /></div>
  5. <div id="pass0"><p class="nalog">Hasło:</p></div><div id="pass"><input class="input" type="password" name="haslo" size="20" maxlength="10"/></div>
  6. <div id="zaloguj"><input name="submit" class="button" type="submit" value="Zaloguj" /></div>
  7. </div>
  8. <div id="stopka"></div>
  9. </div>
  10. </body>
  11. </html>


Tutaj natomiast jest sam skrypt z którym mam najwięcej problemów. W nim właśnie mam problem z poprawą walidacji indeksu - próbowałem tego co znalazłem w sieci.
Notice: Undefined index: login in C:\xampp\htdocs\szpital\logowanie.php on line 27 Tutaj po ob-tagowaniu 7 linia kody PHP.

Skrypt logowanie.php
CODE
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset= utf-8" />
  6. <link rel="stylesheet" type="text/css" href="strona1.css" />
  7. <title>Logowanie - Szpital</title>
  8. </head>
  9. <body>
  10. <div id="pojemnik">
  11. <div id="nag">
  12. <div id="menu">
  13. <ul>
  14. <li><a href="index.php" title="Powrót do Strony głównej">Strona Główna</a></li>
  15. <li><a href="konto.php" title="Zarządzanie kontem">Konto</a></li>
  16. <li><a href="baza.php" title="Baza danych leków">Baza Leków</a></li>
  17. <li><a href="rejestracja.php" title="Założenie konta">Rejestracja</a></li>
  18. <li><a href="logowanie.html" title="Zalogowanie się do konta">Logowanie</a></li>
  19. </ul>
  20. </div>
  21. </div>
  22. <div id="wiad">

  1. <?php
  2. ini_set('display_errors','1');
  3.  
  4. if (!$_SESSION['login'] || !$_SESSION['haslo']) {
  5. echo 'Nie jesteś zalogowany! Przejdź do strony <a href="logowanie1.php">logowania</a>'; //pokazuje info, gdy nie jesteśmy zalogowani
  6. } else { //w innym wypadku...
  7. echo 'Witaj <b>'.$_SESSION['login'].'</b>! Dziękujemy za zalogowanie się.</br>
  8. Kliknij <a href="wyloguj.php"><b>tutaj</b></a>, aby się wylogować.'; //pokazuje info, gdy jesteśmy zalogowani...
  9. }
  10. ?>

  1. </div>
  2. <div id="stopka" style="pozsiton: relative; overflow: hidden; clear: both; margin: 0px 50px; width: 800px; top:558px"></div>
  3. </div>
  4. </body>
  5. </html>



Skrypt Logowanie1.php
CODE
  1. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset= utf-8" />
  4. <link rel="stylesheet" type="text/css" href="strona1.css" />
  5. <title>Logowanie - Szpital</title>
  6. </head>
  7. <body>
  8. <div id="pojemnik">
  9. <div id="nag">
  10. <div id="menu">
  11. <ul>
  12. <li><a href="index.php" title="Powrót do Strony głównej">Strona Główna</a></li>
  13. <li><a href="konto.php" title="Zarządzanie kontem">Konto</a></li>
  14. <li><a href="baza.php" title="Baza danych leków">Baza Leków</a></li>
  15. <li><a href="rejestracja.php" title="Założenie konta">Rejestracja</a></li>
  16. <li><a href="logowanie.html" title="Zalogowanie się do konta">Logowanie</a></li>
  17. </ul>
  18. </div>
  19. </div>
  20. <div id="wiad">

  1. <?php
  2. session_start(); // rozpoczynamy sesję
  3. require_once('config.php'); // łączy z bazą danych
  4.  
  5. isset($_POST['login']);
  6. isset($_POST['haslo']);
  7.  
  8. if (isset($_POST['login']) and isset($_POST['password']))
  9. {
  10. if(!$_POST['login'] || !$_POST['password']) // sprawdzamy czy wszystkie pola zostały wypełnione...
  11. {
  12. echo 'Nie podano loginu lub hasła!<br/><a href="login.php">Powrót</a>'; // jeżeli nie to wywala komunikat
  13. }
  14. /* jeżeli tak, to pobierane dane z bazy o użytkowniku... */
  15. else {
  16. $user = mysql_real_escape_string(trim($_POST['login']));
  17. $pass = mysql_real_escape_string(trim($_POST['password']));
  18. $pass = sha1($pass);
  19. $zapytanie = "SELECT * FROM dane WHERE login_dane='$user' and haslo_dane ='$pass'";
  20. $zapytanie1 = mysql_query($zapytanie) or die("Wystąpił błąd!");
  21. $ile = mysql_num_rows($zapytanie1);
  22. $zapytanie1 = mysql_fetch_array($zapytanie1);
  23. if ($ile == 1)
  24. {
  25. $_SESSION['login'] = $user;
  26. $_SESSION['password'] = $pass;
  27. echo "Dziękujemy za zalogowanie się <b>".$_SESSION['login']. "</b>!<br/>
  28. Przejdź do <a href='index.html'>strony głółwnej</a><br/>
  29. Przejdź do <a href='index.html'>Panelu użytkownika</a>";
  30. }
  31. /* .. lub o błądnych danych */
  32. else { echo ('Podano nieprawidĹ?owe dane!<br/><a href="login.php">SprĂłbuj ponownie</a>'); }
  33. }
  34. }
  35. ?>

  1. </div>
  2. <div id="stopka" style="pozsiton: relative; overflow: hidden; clear: both; margin: 0px 50px; width: 800px; top:558px"></div>
  3. </div>
  4. </body>
  5. </html>
!*!
1. sprawdzaj czy zmienne istnieją isset()
2. używaj odpowiednich tagów jak wklejasz kod na forum
3. patrz wyżej, gdzie jest linia 27?
4. sesje zaczynaj na początku pliku.
wickas
Poradziłem się zgodnie z poleceniami i wszystko działa. Dziękuje za poradę, zawsze to jakaś pomoc pod kątek krytycznego oka.
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.