php - 从一个页面到另一个页面的会话不起作用
问题描述
我有一个 PHP 网站,更新到 5.3 后会话不工作,移动到另一个页面时会话过期。
我已经尝试了以下但没有任何结果
- 更改了会话路径 session.save_path
- 更改 cookie 路径“session.cookie_path”
- 删除所有现有会话
- 将会话文件夹权限更改为 777
- 在所有页面的顶部添加了 session_start()。
请帮我解决这个问题。
解决方案
虽然您没有共享任何代码来理解问题 ->
简单,适合初学者。
<?php
session_start();
//after checking the login credentials
$_SESSION['logged_in'] = true;
if($_SESSION['logged_in'] = true){
header('Location: /directory/home.php');
}else{
echo "You must login";
}
在其他页面 /directory/home.php -> 这里首先检查会话是否设置为启动
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
if(session_id() == '') {
session_start();
}
if($_SESSION['logged_in'] = true){
echo "You are Login";
}else{
echo "You must login";
}
推荐阅读
- laravel - 如何将信息、错误、警告、紧急错误写入不同的文件而不是 laravel.log
- angular - 参数 url 不执行获取方法表单服务器
- javascript - 我可以在变量上创建任何触发器吗?
- wordpress - 运送到不同地址复选框到单选按钮
- mysql - 是否真的需要在使用它的所有表中将列定义为外键
- java - 具有存在和不存在元素的硒断言
- php - Drupal 中的 node_save 在将值存储到 MySQL 数据库时出现问题
- ruby-on-rails - Wicked_pdf 错误:无法生成 PDF!命令错误:致命:期望 3 个参数并得到:5
- c# - 替换 PL/SQL 中的特殊 XML 字符
- amazon-s3 - 如何在 s3api 中传递变量以使用 lastmodified 过滤对象?