我很抱歉 - 经过两个小时的查看和评论等等,我找到了一个引用重定向域的小包含。不知怎的,这让其他一切都失去了。我仍然不确定为什么,但通过将该文件修复到新域我能够修复它。再次感谢您的帮助和时间回复我!
我对PHP中的会话非常熟悉,但我不知道为什么这些会话变量不会粘在我拥有的这个登录系统上。当我登录时,我成功发送到索引页面,但其中的任何页面都被踢回登录页面,并且当我重新加载索引页面时。我已经在索引页面上回显了会话变量$ _SESSION ['login']以确保其值已被准确地结转,并且它的是那里..
...代码已删除
答案 0 :(得分:1)
我疯狂的猜测,但通常是我在Linux下遇到会话时遇到的问题。
检查php.ini中的session.save_path
。如果您的系统中存在路径并且在您的系统中不存在,请创建它,例如session.save_path = "/var/lib/php/session"
。我猜测PHP无法创建会话文件,因此会话不会持续跨页面。给文件夹一个写权限,试试0777
(但它不是最好的权限,因为它允许所有用户)。 HTH!
答案 1 :(得分:0)
为什么在登录期间破坏会话?这可能是一个原因。
session_start();
session_unregister('login');
session_write_close();
session_start();
session_destroy();
您可能只需调用session_start()并清除'login'会话值:
<?
$ERRBG="";
$ERRMSG="";
session_start();
$_SESSION['login'] = null;
require_once("db/mysql_connect.php");
.......
答案 2 :(得分:0)
在起始
的php页面中只使用一次session_start()不要使用session_destroy()。
如果要删除会话变量,请使用unset
函数。
如果要删除所有变量,请使用session_unset
函数
使用session_destroy()作为注销操作
答案 3 :(得分:0)
请执行以下步骤:
<?php
之后的页面顶部使用session_start()一次。我认为会话在你的测试索引中开始,但在你的其他页面中没有
向我报告结果!