2010-11-13 5 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

Precheck: Если вы получаете какие-либо «заголовки, уже отправленные ...», то у вас есть выходной файл уже на странице, который предотвращает настройку сеанса.

В противном случае попробуйте отладки шагов, как:

1) Делает echo $row['lifemember'] внутри цикла в то время, так что вы знаете реальную ценность того, что было получено с БД.

2) В блоке else измените его на $_SESSION['MemberType'] = 'Hello'; Затем посмотрите, напечатан ли Hello или нет?

+0

Прохладный приветствия, устанавливающий сеанс как нечто другое, похоже, сработало. Я предполагаю, что что-то останавливает его, когда оно возвращается к нулю. – Matt

Смежные вопросы