Kod formularza logowania zwraca błąd "ndefined variable: _SESSION".

0

Chciałem zrobić skrypt logowania
mam taki o to kod

<?php
include 'baza.php';
    /* jeżeli nie wypełniono formularza - to znaczy nie istnieje zmienna login, hasło i sesja auth
     * to wyświetl formularz logowania
     */
    if (!isset($_POST['login']) && !isset($_POST['password']) && $_SESSION['auth'] == FALSE) {
 

}
/* jeżeli istnieje zmienna login oraz password i sesja z autoryzacją użytkownika jest FALSE to wykonaj
 * skrypt logowania
 */
elseif (isset($_POST['login']) && isset($_POST['password']) && $_SESSION['auth'] == FALSE) {
	
	// jeżeli pole z loginem i hasłem nie jest puste      
	if (!empty($_POST['login']) && !empty($_POST['password'])) {
		
        // dodaje znaki unikowe dla potrzeb poleceń SQL
        $login = mysql_real_escape_string($_POST['login']);
        $password = mysql_real_escape_string($_POST['password']);
        
        // szyfruję wpisane hasło za pomocą funkcji md5()
	$password = md5($password);
	
		$sql = mysql_num_rows(mysql_query("SELECT * FROM `user` WHERE `login` = '$login' AND `password` = '$password'"));
        
		// jeżeli powyższe zapytanie zwraca 1, to znaczy, że dane zostały wpisane poprawnie i rejestruję sesję
		if ($sql == 1) {
			
			// zmienne sesysje user (z loginem zalogowanego użytkownika) oraz sesja autoryzacyjna ustawiona na TRUE
			$_SESSION['user'] = $login;
			$_SESSION['auth'] = TRUE;
			
			//przekierwuję użytkownika na stronę z ukrytymi informacjami
			echo '<meta http-equiv="refresh" content="1; URL=hide.php">';
			echo '<p style="padding-top:10px;"><strong>Proszę czekać...</strong><br>trwa logowanie i wczytywanie danych<p></p>';
		}
		
		// jeżeli zapytanie nie zwróci 1, to wyświetlam komunikat o błędzie podczas logowania
		else {
			echo '<p style="padding-top:10px;color:red" ;="">Błąd podczas logowania do systemu<br>';
			echo '<a href="index.php" style="">Wróć do formularza</a></p>';
		}
	}
	
	// jeżeli pole login lub hasło nie zostało uzupełnione wyświetlam błąd
	else {
		echo '<p style="padding-top:10px;color:red" ;="">Błąd podczas logowania do systemu<br>';
		echo '<a href="index.php" style="">Wróć do formularza</a></p>';    
	}
}
?> 
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>

    <body>
      <form name="form-logowanie" action="zphp.php" method="post">
          <p>Login: <p><input type="text" name="login"><br>
          <p>Hasło:</p> <input type="password" name="password">
          <input type="submit" name="zaloguj" value="Zaloguj">
      </form>
    </body>
      
    </html> 

Wyswietla mi sie blad Notice: Undefined variable: _SESSION in C:\xampp\htdocs\new\zphp.php on line 13

Czy ktos moze rzucic okiem co jest nie tak ?

0

Zanim zaczniesz korzystać ze zmiennej globalnej $_SESSION musisz uruchomić sesję.
http://php.net/manual/en/function.session-start.php

Od razu dodam, że ta funkcja powinna być odpalona zanim jakaś treść strony zostanie wysłana do użytkownika.

1 użytkowników online, w tym zalogowanych: 0, gości: 1