PHP SESSION 数据在本地主机上的 WAMPserver 2.0 页面加载之间丢失

标签 php session authentication wampserver

我的网站上有一个使用 $_SESSION 变量的 PHP 身份验证系统。

表单将用户名和密码提交到文件“login.php”。它是这样处理的:

<?php include '../includes/sessionstart.inc.php'; ?>
<?php ob_start(); ?>

if($_POST){
    $q = mysql_query("SELECT id, company FROM users WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '".md5($_POST['password'])."'");
    if(mysql_num_rows($q) >= 1){
        $f = mysql_fetch_Array($q);
        $_SESSION['company'] = $f['company'];
        $_SESSION['id'] = $f['id'];
        $_SESSION['logedin'] = true;
        session_write_close();

        ob_clean();
        header("Location: index.php");

}

然后,加载 index.php 并检查 'logedin' 是否为真。

<?php include '../includes/sessionstart.inc.php'; ?>
<?php if(!isset($_SESSION['logedin'])) header('Location: login.php'); ?>

在我的生产服务器上,它继续,但在我的 Wampserver 上,它恢复到 login.php。我注意到 Wampserver 的页面加载速度非常慢,这可能与它有关。这就是我包含 session_write_close 的原因,以确保在切换页面之前保存 session 数据,但这没有帮助。

session_start.inc.php 的内容很简单:

<?php
    session_start();
?>

我过去在那里有更多的代码,但现在只有这个。在我开始使用包含文件之前,该问题也存在。

有人知道我做错了什么吗?为什么 Wampserver 不将我的 SESSION 数据传输到下一个 PHP 文件?

最佳答案

WAMP 服务器 2 - 默认情况下未为 $_SESSION var 设置设置。

PHP.ini 需要以下设置

C:\wamp\bin\apache\apache2.4.2\bin\php.ini
session.cookie_domain =
session.use_cookies = 1
session.save_path = "c:\wamp\tmp"   ;ensure the \ is used not /

session 测试 - load.php -- 加载 $_SESSION var.

<?PHP
session_start();
$_SESSION['SESS_MEMBER_ID'] = 'stored variable';
session_write_close();
header("location:print.php");
?>

print.php -- 打印 $_SESSION 变量。

<?PHP
session_start();
var_dump($_SESSION);
?>

在浏览器中运行脚本 var_dump() 应该会产生结果

转到 c:\wamp\tmp 包含 session 数据的文件将出现在这里。

关于PHP SESSION 数据在本地主机上的 WAMPserver 2.0 页面加载之间丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153465/

相关文章:

php - 如何选择 MySQL 中最常见的值?

php - 如何在php中的while循环中将值添加到单个变量

java - 为什么清除缓存后 session 会结束

django - 阻止 django 在源更改后注销

java - YouTube 数据 API : OAuth Authentication for services using V3 without user intervention

php - 如何在 Laravel 5 中有条件地要求身份验证?

php - memory_get_peak_usage() 返回整个 php 的内存还是只返回当前执行的内存?

php - 从 Woocommerce 中的我的帐户订单表中删除项目计数

php - 未定义索引 : in PHP codeigniter while sending variable

php - 使用 blowfish 加密验证 MySQL