【问题标题】:JavaScript and PHP sessionsJavaScript 和 PHP 会话
【发布时间】:2014-11-10 11:18:15
【问题描述】:

我的 login.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>";
}
?>

谢谢。

【问题讨论】:

  • 在你if 你正在做类似if (1!=1 AND 1=1)

标签: javascript php session authentication


【解决方案1】:

尝试一下

<?php
session_start();

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

Emptychecks

"" (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']==''检查。

【讨论】:

  • 嘿,感谢您的回复,但即使我成功登录,它仍然会重定向。
  • 你在 main.php 上开始会话了吗??
  • 当我收到:警告:session_start():无法发送会话缓存限制器 - 标头已发送
  • &lt;?php打开后在页面顶部添加session_start
  • 我做到了,页面运行正常,但我没有看到重新加载的任何输出。
【解决方案2】:

我认为你的主要 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']==''))

【讨论】:

  • 即使登录成功,它仍在重定向
猜你喜欢
  • 2012-12-02
  • 2010-12-17
  • 1970-01-01
  • 2019-04-24
  • 2017-07-08
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多