【发布时间】:2013-07-24 10:26:51
【问题描述】:
我们将网站移至带有新 IP 地址的新服务器。什么让我困惑;网站登录会话在新服务器上不起作用,但是当我将数据库 IP 更改为旧服务器时,它们正在工作。
MySQL 版本:
- 旧服务器 = 5.1.58- 社区
- 新服务器 = 5.1.68 - 社区
起初我认为这是一个 PHP 错误,但我现在认为它不是并怀疑它与 MySQL 相关。有谁知道是什么导致了这个冲突?
调试错误:
注意:会话已经开始 - 忽略第 2 行 C:\inetpub\wwwroot\gtest\libs\products.php 中的 session_start() 注意:未定义索引:C:\inetpub\wwwroot\gtest\ 中的 uUserTypeID第 50 行的 admin\index.php 注意:未定义的偏移量:C:\inetpub\wwwroot\gtest\admin\index.php 中的 0 第 52 行 注意:未定义的偏移量:C:\inetpub\wwwroot\gtest\admin\ 中的 0第 52 行的 index.php
第 50 行:
GetUserType($_SESSION['uUserTypeID'], $UserTypeID, $UserTypeDescr, $Active_Tag);
第 52 行:
if (($UserTypeDescr[0] == 'Admin') || ($UserTypeDescr[0] == 'Report'))
代码概览:
<?php
error_reporting(E_ALL);
ini_set('display_errors', True);
session_start();
require '../libs/database.php';
require '../libs/users.php';
require '../libs/products.php';
require '../libs/quotes.php';
require '../libs/common.php';
require 'functions.admin.php';
if (!($_SESSION['uAUID']) > 0)
{
DisplayLoginForm();
}
else
{
**GetUserType($_SESSION['uUserTypeID'], $UserTypeID, $UserTypeDescr, $Active_Tag);**
**if (($UserTypeDescr[0] == 'Admin') || ($UserTypeDescr[0] == 'Report'))**
{
if (isset($_POST['eProdID']) && isset($_POST['eProdGroupID']))
{
$_SESSION['page'] = 'edit_product';
$_SESSION['page_header'] = 'Edit Product';
}
else if (isset($_POST['eProdGroupID']))
{
$_SESSION['page'] = 'edit_product_group';
$_SESSION['page_header'] = 'Edit Product Group';
}
else if (isset($_POST['eAUID']))
{
$_SESSION['page'] = 'edit_user';
$_SESSION['page_header'] = 'Edit User';
【问题讨论】:
-
您似乎多次使用
session_start()。你检查过(还包括文件等)吗? -
正如@Pieter 建议的那样,如果您已多次编写,请检查
session_start()。错误Undefined index表示$_SESSION['uUserTypeID']尚未设置!!第三个错误意味着$UserTypeDescr[]数组没有key像$UserTypeDescr[0]或$UserTypeDesc未定义为数组!!
标签: php mysql session session-variables session-state