我对PHP很新,我正在尝试创建一个登录系统,其中用户名通过会话存储在PHP cookie中。所以通过视频教程我了解到我使用了session_start();如果条件满足,则启动cookie会话然后设置变量。我正在使用XAMPP来测试我的PHP,所以当我加载页面时,我收到了这个错误:
警告:session_start()[function.session-start]:open(Desktop \ xampp \ tmp \ sess_5bre7v153kb1hoftovugl77o52,O_RDWR)失败:C:\ Users ------中没有这样的文件或目录(2)第2行的Desktop \ xampp \ htdocs [文件夹] \ checkLogin.php
警告:session_start()[function.session-start]:无法发送会话cookie - 已经发送的标头(输出从C:\ Users ---- \ Desktop \ xampp \ htdocs [文件夹] \ checkLogin.php开始:2)在第2行的C:\ Users ---- \ Desktop \ xampp \ htdocs [folder] \ checkLogin.php
警告:session_start()[function.session-start]:无法发送会话缓存限制器 - 已发送的标头(输出从C:\ Users ---- \ Desktop \ xampp \ htdocs [Folder] \ checkLogin.php开始:2)在第2行的C:\ Users ---- \ Desktop \ xampp \ htdocs [Folder] \ checkLogin.php
警告:无法修改标头信息 - 已在C:\ Users ---中发送的标头(在C:\ Users ---- \ Desktop \ xampp \ htdocs [Folder] \ checkLogin.php:2处开始输出) - 第19行的\ Desktop \ xampp \ htdocs [Folder] \ checkLogin.php
警告:未知:打开(---- \ Desktop \ xampp \ tmp \ sess_5bre7v153kb1hoftovugl77o52,O_RDWR)失败:第0行的“未知”中没有此类文件或目录(2)
警告:未知:无法写入会话数据(文件)。请确认第0行的“未知”中session.save_path的当前设置是否正确(---- \ Desktop \ xampp \ tmp)**
我的XAMPP文件中有一个临时文件夹,它指定不删除此文件夹,因为它必须存在才能让PHP创建会话。 这是我的PHP代码:
<?php
session_start ();
if (isset($_POST["submit"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$check = false;
$information = fopen("user_information.txt", "r");
while (!feof($information)) {
$content = explode(":", rtrim(fgets($information, 1024)));
if ($username == $content[0] && ($password) == $content[1]) {
$check = true;
break;
}
}
fclose($information);
if ($check) {
define('BASE_URL', 'index.php');
header('Location: ' . BASE_URL);
$SESSION["username"] = $username;
}
else {
define('BASE_URL', 'login.php');
header('Location: ' . BASE_URL);
}
}
?>
谢谢
答案 0 :(得分:4)
这是配置错误。
检查php.ini文件中的以下行:
session.save_path = "/tmp"
或者在PHP脚本中:
session_save_path('/home/example.com/sessions');
该行告诉PHP将保存会话文件。
运行服务器的系统用户需要对此文件夹具有写权限。