1

私は一晩中、PHPログインが成功した後、フェードアウトした後、保護されたページにリダイレクトする方法を確認するために、検索、試行、調査を行ってきました。

これが私が現在試みている多くの変更の中で最も最近のものの1つですが、私が現在持っているものです:

リンク: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ファイルからEnterキーを押した後、トランジションをロードしようとしましたが、PHPはセッションを更新せず、リダイレクトされたときにログインはまだ検証されず、ログインページに戻ってしまいます。

ここで足りないものはありますか?効果的なログイン後にページをフェードアウトして、保護されたページに正常に移動したいだけです。

jQueryで作業できるように、現時点でリダイレクト行をコメントアウトしました。

4

5 に答える 5

0

jqueryプラグインとdocreadyハンドラーがありません:

      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

あなたはこのようなことを試みるかもしれません。

$(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を配置すると、フォームが読み込まれた後にfadeOutイベントが確実にトリガーされます。

関数を使用setTimeOutして、fadeOutを数ミリ秒遅らせることもできます。

于 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

私はこの質問に対する答えを他の場所で探しましたが、ほとんど助けが見つかりませんでした。ただし、ここでログインスクリプトを見つけました。

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ログイン送信後のfadeOut

于 2013-02-09T16:35:53.027 に答える