2010-11-13 102 views
0

嗨,伙计们,我根据设置的会话变量(它查看数据库中的值,然后决定是否清空会话或命名它)来执行一系列if语句, 。具有会话总是被命名问题,无论在数据库中的记录是否为“0”或没有米运行mysql时,查询工作正常下面的代码:PHP中的会话变量

在session_start();

$_SESSION['MemberType'] = ''; 

mysql_select_db($database_choices, $choices); 

$query = "Select lifemember from registrants where username = '" . $_SESSION[kt_login_user] . "'"; 
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); 

while($row = mysql_fetch_array($result)) 
{ 
    if ($row['lifemember'] == '1') 
    { 
     $_SESSION['MemberType'] = 'LifeMember'; 
    } 
    else if($row['lifemember'] == '0') 
    { 
     $_SESSION['MemberType'] = ''; 
    } 
} 

回答

1

预检:如果您正在收到任何'Headers already sent ...',那么您在页面上已经有一些输出已阻止会话的设置

否则尝试调试步骤,如:

1)做一个echo $row['lifemember'] while循环中,让你知道什么一直从数据库获取真正的价值。

2)在else块中,将其更改为$_SESSION['MemberType'] = 'Hello';然后,看看是否打印出Hello?

+0

酷炫的欢呼声,将会话设置为别的东西似乎已经奏效。我想有些东西是停止它被设置为空。 – Matt 2010-11-13 11:19:57