2017-02-08 19 views
0

私の問題は、パスワードとユーザー名が正しいときにメッセージが表示されないということです。それから私のページはforedeck.phpに行きます。この部分は良いですが、Webページを変更する前に私のメッセージが表示されないのはなぜですか?パスワードの場合、またはunsernameが正しくない場合、2番目のメッセージが表示されます。私は最初に問題があります: echo "alert( 'ConnexionRéussite'); header()はすぐにリダイレクトを実行しますので、メッセージが表示されない

<?php 
    $msg = ''; 

    if (isset($_POST['login']) && !empty($_POST['username']) 
     && !empty($_POST['password'])) { 

     if ($_POST['username'] == 'foredeck' && 
      $_POST['password'] == 'foredeck1') { 
      $_SESSION['valid'] = true; 
      $_SESSION['timeout'] = time(); 
      $_SESSION['username'] = 'tutorialspoint'; 
       $msg ='Connexion Réussite'; 
      echo $msg= "<script type='text/javascript'>alert($msg)</script>"; 

     header("location: foredeck.php"); 

     }else { 
      $msg='Identifiant ou Mot de Passe incorrecte'; 
      $msg = "<script type='text/javascript'>alert('$msg')</script>"; 
     } 
    } 
?> 
+2

ここで '$ msg'を出力しましたか?私は 'echo $ msg'のようなものは見ません。また、ヘッダーのリダイレクトを設定し、タイマーでjavascriptを使用してからユーザーをリダイレクトするため、最初のエコーはスキップされます。 – Jer

+0

私のコードを編集します –

答えて

1

、ブラウザ上で実行され、JavascriptPHP実行サーバー、ここで期待しているように、コードはステップバイステップで作業します。ここでPHPコードはJavaScriptコードの前に実行されます。これはJSコードが実行される前にリダイレクトされる理由です。

  • ヘッダ(location: foredeck.phpを)削除:

    次の方法でこの問題を解決することができます。

  • window.location = 'foredeck.php';をjavascriptに入れてください。

これはアラートを最初に作成し、それをフォードバックにリダイレクトします。

+0

誰かがすでに問題を解決していますが、 –

0

問題があります。

header("refresh:5; url=wherever.php"); 

私はこれがあなたを助けてくれることを願っています!

+0

私の投稿を編集しました –

+0

本当にではなくthx @ C0dekid –

2

alert()のJSより前にPHP header(location)が実行されるため、アラートは表示されず、ページはリダイレクトされます。だからではなく、header(location)

<?php 
     $msg = ''; 

     if (isset($_POST['login']) && !empty($_POST['username']) 
     && !empty($_POST['password'])) { 

     if ($_POST['username'] == 'foredeck' && 
      $_POST['password'] == 'foredeck1') { 
      $_SESSION['valid'] = true; 
     $_SESSION['timeout'] = time(); 
     $_SESSION['username'] = 'tutorialspoint'; 
     echo "<script type='text/javascript'>alert('Connexion Réussite'); 
window.location.href='foredeck.php'; 
</script>"; 



     }else { 
     $msg = "<script type='text/javascript'>alert('Identifiant ou Mot de Passe incorrecte')</script>"; 
     } 
    } 
    ?> 

のアラートが最初に表示され、[OK]を押したときにリダイレクト(JSのコードをリダイレクト)<script>window.locationを使用..基本的に

+0

ありがとうございました@affa –

+0

@ A.Vようこそ.Good luck :) – affaz

関連する問題