1

我一直在尝试,搜索,尝试,研究一整夜,看看如何在成功的 PHP 登录后让页面淡出,然后在成功淡出后重定向到受保护的页面。

这是我目前所拥有的,尽管它是我一直在尝试的众多更改中的最新更改之一:

链接:ournewlife.com/002/login.php

和代码:

<?php

session_start();

if ($_GET['login']) {
     // Only load the code below if the GET
     // variable 'login' is set. You will
     // set this when you submit the form

if (in_array($_POST['entryphrase'], array('enter', 'goin', 'entrezvous', 'opensesame'))) {
         // Load code below if both username
         // and password submitted are correct

         $_SESSION['loggedin'] = 1;
          // Set session variable

          echo "<script type='text/javascript'>";
          echo "$('#ournewform').fadeOut(2222);";  
          echo "</script>";

//        header("Location: protected.php");
         exit;
         // Redirect to a protected page

     } else echo "";
     // Otherwise, echo the error message

}

?>

<form action="?login=1" method="post" id="ournewform">
    <input type="text" id="ournewlogin" name="entryphrase" class="fontface" />
</form>

我还尝试在从单独的 .js 文件中按回车键后加载转换,但是 PHP 不会更新会话,并且当它重定向时,登录尚未得到验证,并且会将我吐回登录页面.

我在这里有什么遗漏吗?我只是想在有效登录后淡出页面,然后成功进入受保护的页面。

我现在注释掉了重定向行,以便我可以在 jQuery 上工作。

4

5 回答 5

0

你可以试试这样的。

$(document).ready(function() {
    $('#ournewform').fadeOut(2222);
    window.location ='newpage.html';
});

在您的 php 脚本中,您可以将其分配给一些变量,例如

<?php
$script = "$(document).ready(function() {
               $('#ournewform').fadeOut(2222);
               window.location ='newpage.html';
           });";

然后在您的<body>标签中,最好在页面底部,在关闭标签之前,您可以在标签内打印变量<script>,例如:

<?php if(isset($script):?>
<script type='text/javascript'><?php print $script;?></script>
<?php endif;?>

将 javascript 放在页面底部将确保在表单加载后触发淡出事件。

您还可以使用setTimeOut函数将淡出延迟几毫秒。

于 2013-02-03T08:42:09.253 回答
0

尝试将 Javascript 代码与 PHP 分开。如果你先测试条件是否满足然后注入javascript代码会更优雅:

<?php

session_start();

if ($_GET['login']) {
     // Only load the code below if the GET
     // variable 'login' is set. You will
     // set this when you submit the form

if (in_array($_POST['entryphrase'], array('enter', 'goin', 'entrezvous', 'opensesame'))) {
         // Load code below if both username
         // and password submitted are correct

         $_SESSION['loggedin'] = 1;
          // Set session variable
?>

<script type='text/javascript'>
      $('#ournewform').fadeOut(2222);      
</script>

<?php }
else echo "";
     // Otherwise, echo the error message
?>

并且不要忘记在标题部分包含 Jquery 库。

于 2013-02-03T08:46:54.020 回答
0

要达到这种效果,您需要做的是:使用 ajax 函数并登录用户,根据响应,您可以选择淡出登录框或显示错误。

于 2013-02-03T08:47:06.013 回答
0

您缺少 jquery 插件和文档就绪处理程序:

      echo "<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js'></script>";
      echo "<script type='text/javascript'>";
      echo "$(function(){";
      echo "$('#ournewform').fadeOut(2222);";  
      echo "});";
      echo "</script>";
于 2013-02-03T08:36:42.853 回答
0

我在别处寻找这个问题的答案,但几乎没有找到任何帮助。但是,我确实在这里找到了一个登录脚本:

http://codecanyon.net/item/simple-secure-login-v3/2748367?sso?WT.ac=search_item&WT.seg_1=search_item&WT.z_author=phpcodemonkey

我仍然很难淡出,但似乎这种形式使用了 ajax 等,因此它可能会有更多用处。我正在尝试在此处的另一个线程上收集解决方案:

ajax登录提交后淡出

于 2013-02-09T16:35:53.027 回答