2017-01-06 9 views
2
$("#btnok").click(function(){ 
var pass = $('#inputpass').val(); 
$.ajax({ 
    url: 'passpro.php', 
    type: 'post', 
    data: {'pass': pass}, 
    success: function(data) { 
     $('#info').text(data); 
    } 
}); 
}); 

上記は正常です。パスワードが存在する場合はindex.phpにリダイレクトし、そうでない場合はメッセージをエコーし​​ます。条件付きリダイレクトが機能しません。

これが正常に動作rowCount == 0場合passpro.php

include ("params.php"); 
include ("$config"); 

$pass = $_POST['pass']; 

try { 
$stmt = $db->prepare('SELECT id FROM passwords WHERE pass = :pass'); 
$stmt->execute(array(
':pass' => $pass 
)); 

if ($stmt->rowCount() > 0) { 
    header("Location: index.php"); // this line doesn't work 
    exit(); 
} 
else{ 
    echo ('UNKNOWN PASSWORD'); 
} 
} 
catch(PDOException $e) { 
    echo $e->getMessage(); 
} 

、すなわち私がメッセージUNKNOWN PASSWORDを得たが、私が得たものを代わりにリダイレクトのrowCount > 0場合 - index.phpのhtmlコードが#info divの内側に書かれました!

+0

を説明してきたので、私は説明を入れていませんでしたPHPの 'header()'はあなたがajax呼び出しを行うときにそのようにリダイレクトします。代わりに結果(json?)を返し、それに基づいてjavascriptでリダイレクトを行う必要があります。 – jeroen

+3

ヘッダーを使用してAJAXリクエストに何もしない場合は、代わりにJSコードを使用してlocation.hrefをリセットする必要があります – Lucero

答えて

1

Passpro.php

​​

メインのJavascript

$.ajax({ 
    url: 'passpro.php', 
    type: 'post', 
    data: {'pass': pass}, 
    success: function(data) { 
     if(data == 'true') 
     { 
      window.location.href = "http://stackoverflow.com"; //or whatever 
     } 
    } 
}); 

あなたの質問にコメントした者は、すでにあなたが使用することはできません

関連する問題