У меня возникла проблема с тем, что сеансы не были уничтожены после выхода из системы. (Хотя по какой-то причине он прекрасно работает в IE ..... но не в любом другом браузере (Chrome, Firefox, опера, или сафари))Сессии на самом деле не уничтожаются?
Вот код авторизации для входа
<?php
session_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="testdatabase"; // Database name
$tbl_name="users"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// email and password sent from form
$enteredEmail=$_POST['email'];
$enteredPassword=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$enteredEmail = stripslashes($enteredEmail);
$enteredPassword = stripslashes($enteredPassword);
$enteredEmail = mysql_real_escape_string($enteredEmail);
$enteredPassword = mysql_real_escape_string($enteredPassword);
$sql="SELECT * FROM $tbl_name WHERE email='$enteredEmail' and password='$enteredPassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $enteredEmail and $enteredPassword, table row must be 1 row
if($count==1){
// Register $enteredEmail, $enteredPassword and redirect to file "redirect.php"
$_SESSION['email']="email";
header('location:redirect.php');
}
else {
header("location:index.php?error");
}
?>
затем он перенаправляет на главную страницу
Я ставлю этот код в заголовок для отображения того, зарегистрирован пользователь или нет
<?php
if (!isset($_SESSION['email']) || $_SESSION['email'] == ''){
include_once('loggedout.php');
}
else {
include_once('loggedin.php');
}
?>
Я также включать эти 2 файла в верхней части когда-либо у страницы:
<?php
if ($_SESSION['email']="email") {
session_start();
}
?>
и
<?php
$connect_error= "Sorry, we\'re experiencing connection problems.";
mysql_connect('localhost', 'root', '') or die($connect_error);
mysql_select_db('testdatabase') or die($connect_error);
?>
И, наконец, это код для страницы выхода из системы, что пользователь зайдет на щелкая логаута:
<?php
session_start();
session_unset();
session_destroy();
$_SESSION = array();
?>
<html>
<head>
<title>Logged Out</title>
</head>
<body>
<p align="center">You have been successfuly logged out.</p>
<p align="center"><a href="home.php">Go back to homepage.</a></p>
</body>
</html>
Однако, после возвращения на главной странице сначала отображается так, как будто пользователь вышел из системы, но затем простая перезагрузка страницы регистрирует пользователя.
Я пробовал так много разных разрывов сеанса, но неважно, у меня такая же проблема. (да, я относительно новичок в этой всей работе php, поэтому НИКОЛАЯ помощь очень ценится) Любые идеи, что происходит и как их исправить? Спасибо заранее!
Без тщательно просматривал ваш код, вы говорите, он работает в некоторых браузерах и не другие. Это проблема кеша? –
Ну, я тестировал на нескольких компьютерах, все еще работает только в IE и имеет проблемы во всех других браузерах. :/@RyanKempt – user3817799
@ user3817799 Возможно, ваши файлы cookie не включены в другом браузере. Попробуйте включить его, поскольку сеанс также является файлом cookie –