gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:07:05 25 4
gpt4 key购买 nike

我的网站上有一个使用 $_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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com