2017-05-31 9 views
0

login.phpにログインを作成しようとしています。私が提出すると、ファイルvalidaton.phpにリダイレクトされます。ユーザー名とパスワードは、このような単純な機能で自分のデータベースに存在した場合PHP - リダイレクトした後に関数を実行

は今、私がチェック(もっとありますが、それは私の質問を約あるものです):

validation.php

$result = $conn->query('SELECT * FROM db WHERE username = '.$username.' AND password = '.$password); 

if ($result->num_rows == 1){ 
    //Continue 
    header("Location: welcome.php"); 
} else { 
    // Go back to Login 
    header("Location: login.php"); 
} 

ユーザーが存在せず、else文が実行されるとします。

validation.phpからリダイレクトされた直後にlogin.phpに機能を実行する方法はありますか?

たとえば、「このユーザーは存在しません」と警告したいと思います。リダイレクト後のlogin.phpにあります。

login.php

if(redirect happened){ 
    alert("This user doesn't exist!"); 
} 

それは英語で私の質問を説明するのは難しいのですが、私は自分のベストを試してみましたが、任意のヘルプは高く評価されるだろう!ありがとう。

+0

$ _SESSION変数に見てみましょう:) – ThisGuyHasTwoThumbs

+0

何を正確に意味するのですか? @ThisGuyHasTwoThumbs – Syno

+1

あなたがリダイレクトする前に '$ _SESSION ['redirected_to_login'] = true;'を入れると、ログインページで 'if($ _SESSION ['redirect_to_login']){// some code} 'http://php.net/manual/en/book.session.php – ThisGuyHasTwoThumbs

答えて

2

はい、可能です。 header()にパラメータを追加する必要があります。あなたがチェックすることができ、今

$result = $conn->query('SELECT * FROM db WHERE username = '.$username.' AND password = '.$password); 

if ($result->num_rows == 1){ 
    //Continue 
    header("Location: welcome.php"); 
} else { 
    // Go back to Login 
    header("Location: login.php?redirect=1"); 
} 

if($_GET['redirect'] == 1) { 
// redirect happened. execute some code or JS here. 
} 
+0

ありがとうございます。うわー、それは簡単です...しかし、私はこれについて考えたことはありません::) – Syno

+0

これは、リダイレクトパラメータが与えられていないときにエラーをスローします..パラメータが以下のように与えられているかどうか確認したいかもしれません: if(isset { } } } –

+0

あなたはようこそ。ハッピーコーディング! –

2

あなたは

validation.php

session_start(); 
$result = $conn->query('SELECT * FROM db WHERE username = '.$username.' AND password = '.$password); 

if ($result->num_rows == 1){ 
    //Continue 
    header("Location: welcome.php"); 
} else { 
    // Go back to Login 
    $_SESSION['msg'] = "User not found"; 
    header("Location: login.php"); 
} 
としてセッションを使用することができます。ここ

は、あなたがこれを行うことができる方法であります

login.php

session_start(); 
if(isset($_SESSION['msg'])) 
{ 
    // code for show message 
} 
+0

ありがとうございました! – Syno

+0

不要な問題を避けるために、私のコードの後に​​login.phpのセッションを 'session_destroy();'で破壊します。 – Syno

0

実際にあなたのための多くのオプションがあります。最も基本的なものは、GET-Requestを使用しています。あなたのようなものを使用してそのパラメータを受け取ることができ

header("Location: login.php?exist=no"); die();

、ログインページ上:たとえば次のようなものを使用することができ

if(isset($_GET['exist']) && $_GET['exist'] === 'no'){ 
    echo "User does not exist!"; 
} 
関連する問題