Zrobiłem sobie prosty mechanizm logowania oparty o sesje. Wszystko działa ładnie ale tylko w FF.
W IE sesja nie przechodzi między stronami.
Dane z pliku login.php nie trafiają już do index.php.
Funkcja print_r($_SESSION) umieszczona w index.php zwraca pusty wynik.
Czy ja coś tu robię źle?
Mechanizm wygląda następująco:
plik index.php
<?
if (!isset($_SESSION['logged']) || $_SESSION['logged']!=1
|| !isset($_SESSION['user'])) {
header('Location: login.php'); }
require('head.inc.php');
?>
<center><br>
Treść strony w html
</center>
login.php
<?
if (isset($_POST['przycisk'])) {
require_once('db_open.inc.php'); // Nawiązanie połączenia z B.D.
// Wysyłanie zapytania SQL
$zapytanie = sprintf("SELECT * FROM users WHERE login='%s' AND password='%s'", $_POST['user'], md5($_POST['pass'])); $wynik = db_query($zapytanie);
error_p('Błędna nazwa użytkownika lub hasło.', 1);
else
{
$_SESSION['logged'] = 1;
$_SESSION['uid'] = $wiersz['id'];
$_SESSION['user'] = $wiersz['name'].' '.$wiersz['surname'];
}
// Rozłączanie
// Przekierowanie na stronę główną
header("Location: index.php"); }
?>
<form action="login.php" method="post">
<table>
<tr><td>Użytkownik:</td><td><input type="text" name="user" style="width: 110px"></td></tr>
<tr><td>Hasło:</td><td><input type="password" name="pass" style="width: 110px"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" name="przycisk" value="Zaloguj"></td></tr>
</table>
</form>
</center>