作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的网站上有一个使用 $_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/
我是一名优秀的程序员,十分优秀!