Witam, przeszukałem forum ale nie znalazłem odpowiedzi.
Mam problem z przekazywaniem zmiennych za pomocą sesji.
Problem dotyczy systemu logowania.
index.php<?
$nonauth = "";
if (($auth = $_GET['auth']) == 'none') $nonauth = "podałeś błędny login lub hasło";
if (($auth = $_GET['auth']) == 'empty') $nonauth = "podaj login i hasło";
?>
.
.
<body>
.
.
<? echo "<p style=color:red;><b>".$nonauth."</b></p>" ?></p>
<form method="post" action="doit.php">
<p>login:
<input type="text" name="user" />
<p>haslo:
<input type="password" name="pass" /></p>
<p><input type="submit" name="submit" value="zaloguj" /></p>
</form>
</body>
doit.php<?
$_SESSION['username'] = $_POST['user'];
$_SESSION['pass'] = $_POST['pass'];
$_SESSION['authuser'] = 0;
if ($_SESSION['username'] == NULL or $_SESSION['pass'] == NULL) {
header('Location: <a href="http://www.strona.pl/cms/index.php?auth=empty');" target="_blank
">http://www.strona.pl/cms/index.php?auth=empty');</a> exit;
}
//sprawdza czy podany login pasuje do hasla z bazy
$user = $_SESSION['username'];
include ('conn.php');
$zapytanie = "SELECT pass FROM osoby WHERE login ='".$user."'";
$odp = mysql_query($zapytanie);
while ($row = mysql_fetch_row($odp)) {
$pass_db = $row[0];
}
//sprawdzenie hasla
if($pass_db == $_SESSION['pass']) {
$_SESSION['authuser'] = 1;
header('Location: <a href="http://www.strona.pl/cms/cms.php');" target="_blank">http://www.strona.pl/cms/cms.php');</a>
}else
{
header('Location: <a href="http://www.strona.pl/cms/index.php?auth=none');" target="_blank
">http://www.strona.pl/cms/index.php?auth=none');</a> exit();
}
?>
cms.php<?
?>
.
.
<body>
.
.
<? echo "zalogowany jako: ".$_SESSION['username']; ?> .
.
</body>
Problem:
Po poprawnym zalogowaniu (hasło sprawdzone w bazie, więc $_session['username'] musi być ustawione) przy próbie wyświetlenia wartości w cms.php z okazuje się, że session['username'] ma wartość NULL.
Wystarczy jednak, że źle podam hasło lub login i wpiszę prawidłowe wartości wszystko pięknie cieka.
Pytanie:
Jak to jest możliwe?(IMG:
http://forum.php.pl/style_emoticons/default/questionmark.gif)
Gdzie mój błąd??
Proszę o pomoc