我最近将我的网站移到了我网站的主域。
我发现当我登录我的网站时,帐户页面显示但是当我刷新或进行ajax调用时会话丢失,请将我退出。我的帐户页面上有一个iframe,我最近刚安装了SSL。
为什么我的会话会丢失?或者有什么方法可以找到错误的类型?
我的php信息是:
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
我在进行错误报告时遇到的错误是:
<b>Notice</b>: Undefined index: adminsess in <b>/home/onclick1/public_html/admin.php</b> on line <b>35</b><br />
<br />
<b>Notice</b>: Undefined index: secure in <b>/home/onclick1/public_html/admin.php</b> on line <b>36</b><br />
<br />
提供错误的代码很简单:
<?php
session_start();
ini_set('error_reporting', E_ALL);
require "connectTo/db.php";
if(!isset($_SESSION['adminsess']) || !isset($_SESSION['secure']) ){
//exit(); *comment out to give error*
}
我已经浏览了我的代码并发现当我在索引页面上添加header()重定向时,错误似乎只发生(无法存储会话数据)。我在网站上重定向已登录用户的代码如下:
如果使用重定向标头..它只是循环并且不加载页面
<?php
session_start();
error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);
//print_r($_SERVER);
//exit;
$TheIp=ip2long($_SERVER['REMOTE_ADDR']);
$ip= trim($TheIp);
include('mobile.php');
require "db.php";
$_SESSION['secureip'] = $ip;
if(isset($_SESSION['adminsess']))
{
$ipVistor = $ip;
$ipVistorSalt= $ipVistor."28257esfgs";
$ip=md5($ipVistorSalt);
$userAgent=$_SERVER['HTTP_USER_AGENT'];
$userAgentSalt=$userAgent."jk2hgkj22352523s";
$agent=md5($userAgentSalt);
if(isset($_SESSION['secure']) && $_SESSION['secure']==$ip)
{
if (isset($_SESSION['secure2']) && $_SESSION['secure2'] == $agent)
{
//header("Location: https://www.site.com/admin?Welcome");
exit();
}
}
}
?>
任何帮助/信息都会很棒。提前致谢 !
即使我把它放在页面的顶部,它也会尝试加载index2.php但只是保持循环...这是服务器问题吗? (index2只是索引的副本)。
<?php
header("Location: https://www.site.com/index2.php");
exit;
答案 0 :(得分:1)
尝试更改会话名称:
session_name("foo");
或者在运行时配置中:
session.name foo
确保您正在呼叫session_start()
并且ajax呼叫不在另一个域上。