【问题标题】:PHP and MySQL SessionPHP 和 MySQL 会话
【发布时间】:2013-07-24 10:26:51
【问题描述】:

我们将网站移至带有新 IP 地址的新服务器。什么让我困惑;网站登录会话在新服务器上不起作用,但是当我将数据库 IP 更改为旧服务器时,它们正在工作。

MySQL 版本:

  1. 旧服务器 = 5.1.58- 社区
  2. 新服务器 = 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


【解决方案1】:

检查您包含的文件/代码结构。此错误的常见原因是:

session_start(); 
 /* Random Code here /* 
session_start(); 

只是session_start(); 的重复行所以我建议查看您收到此错误消息的包含文件/主页,并检查多个session_start();

【讨论】:

  • 谢谢解决,我用if(!isset($_SESSION)) { session_start(); }
猜你喜欢
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多