PHP脚本在线工作,但没有脱机

时间:2010-11-07 13:02:37

标签: php

此脚本可在线使用,但不能通过WAMP ...

离线
function current_user()
    {
        static $current_user;
        if(!$current_user)
        {
            if($_SESSION['userID'])
            {
                $userID = intval($_SESSION['userID']);
                $query = "SELECT * 
                          FROM `users`
                          WHERE `id` = $userID";
                $data  = mysql_query($query);
                if(mysql_num_rows($data))
                {
                    $current_user = mysql_fetch_assoc($data);
                    return $current_user;
                }
            }
        }
        return $current_user;
    }

调用此函数时,出现以下错误消息...

Notice: Undefined index: userID in C:\wamp\www\alpha\_includes\session.php on line 38

第38行是$userID = intval($_SESSION['userID']);

仅在未设置userID SESSION变量时才会出现此错误。那个以及当我的离线测试计算机(运行WAMP)通过页面调用该函数时。


作为旁注,这不是我的剧本。感谢Think Hosamin Membership的Jim Hoskins。

3 个答案:

答案 0 :(得分:3)

这是一个通知,而不是错误。修复:

if (isset($_SESSION['userID']) && $_SESSION['userID'])

答案 1 :(得分:3)

您在一台服务器上启用了通知,但在另一台服务器上启用了通知。此通知只是告诉您正在尝试读取不存在的数组元素。

相反,试试这个

if(isset($_SESSION['userID']))

答案 2 :(得分:0)

if($_SESSION['userID'])更改为if(isset($_SESSION['userID']))首先检查会话变量'userID'是否在我们使用之前设置。

试试此代码

function current_user()
    {
        static $current_user;
        if(!$current_user)
        {
            if($_SESSION['userID'])
            {
                $userID = intval($_SESSION['userID']);
                $query = "SELECT * 
                          FROM `users`
                          WHERE `id` = $userID";
                $data  = mysql_query($query);
                if(mysql_num_rows($data))
                {
                    $current_user = mysql_fetch_assoc($data);
                    return $current_user;
                }
            }
        }
        return $current_user;
    }