此脚本可在线使用,但不能通过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。
答案 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;
}