2014-11-10 2 views
-2

Мой login.php выглядит следующим образом:JavaScript и PHP сессий

if ($count == 1){ 
 
$_SESSION['username'] = "1"; 
 
    if (isset($_SESSION['username'])){ 
 
     ob_start(); 
 

 
     $url = 'main.php'; 
 

 
     while (ob_get_status()) 
 
     { 
 
      ob_end_clean(); 
 
     } 
 
     header("Location: $url"); 
 
    } 
 
} 
 
else { 
 
    $_SESSION['username']=''; 
 
}

и когда я успешно войти, main.php перенаправляет меня login.php вместо запуска цикла игры.

<?php 
 
if(!(isset($_SESSION['username']) && $_SESSION['username']!='')) { 
 
    echo "<script>window.location.href=\"login.php\"</script>"; 
 
} 
 
else { 
 
echo "<script defer>reload();</script>"; 
 
} 
 
?>

Спасибо.

+0

В вас 'if' вы делаете что-то вроде' if (1! = 1 AND 1 = 1) ' – GuyT

ответ

2

попробовать вместо

<?php 
session_start(); 

if(empty($_SESSION['username'])) { 
echo "<script>window.location.href=\"login.php\"</script>"; 
} 
else { 
echo "<script defer>reload();</script>"; 
} 

Empty проверки

"" (an empty string) 0 (0 as an integer) 0.0 (0 as a float) "0" (0 as a string) NULL FALSE array() (an empty array) $var; (a variable declared, but without a value)

или делать $_SESSION['username']=='' чек.

+0

Эй, спасибо за ответ, но он по-прежнему перенаправляется даже в том, что я вошел в систему успешно. –

+0

Вы начали сеанс на main.php ?? –

+0

Когда я это сделаю, я получаю: Предупреждение: session_start(): Не удается отправить ограничитель кеша сессии - уже отправленные заголовки –

1

Я думаю, что ваш основной код PHP должен измениться, как это ..

<?php 
if(!(isset($_SESSION['username']) && $_SESSION['username']=='')) { 
    echo "<script>window.location.href=\"login.php\"</script>"; 
} 
else { 
echo "<script defer>reload();</script>"; 
} 
?> 

здесь вы проверяете $_SESSION['username']!=''

нужно изменить, что ..

if(!(isset($_SESSION['username']) && $_SESSION['username']=='')) 
+0

, он по-прежнему перенаправляется, даже если это успешный логин –

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