2016-03-22 19 views
0

関数の助けを借りてJavaScriptでパスワードを検証したいと思います。PHP変数をJavaScriptにコールバックで渡す

成功した場合は、変数(ブール値、真または偽)を返信し、コールバックに応じてPHPファイル内の何かを実行します。

しかし、これは機能しません。

PHPファイル:ここに私のコードですupdate.phpを

<input href="javascript:void(0);" role="button" ype="submit" value="Submit" onclick="ValidatePassword()>' 

JAVASCRIPT:私はこのajaxコールで、それならば、パスワードを確認し、私のJavascript機能で

ValidatePassword()成功した場合は、結果をphp関数にコールバックする必要があります。

$.ajax({ 
    type: "POST", 
    url: "checkpw.php", 
    data: dataString, 
    cache: false, 
    success: function(response) 
    { 
     if (result != -1) 
     { 
      $("#passwd").val(''); 

      // RETURN TO PHP FILE update.php -> PW IS VALID 
     } else { 
      // RETURN TO PHP FILE update.php -> PW IS INVALID 
     } 
    } 
}); 

PHPファイル:

update.phpを今私はphp機能でコールバックを使用するように:

<?php 

if (passwordCallback == true) 
... 
else 
... 

?> 

私は復帰へajax成功関数の中で何をすべき私のphpファイルの値ですか?

+0

あなたはjson_enodeを使用するか、単にupdate.phpをして '失敗' の '成功' をエコーすることができ、使用レスポンス –

+1

また、 'result:'を使用している間は 'success:function'のパラメータが' response'であることに注意してください。 –

+0

@Devs:この場合、jsonまたはechoを使用する方法を説明できますか? – Philies

答えて

1

私はコメントで示唆したように、これが正しくコード化されていないと、セキュリティ上の問題が発生する可能性があります。それが正しくコード化されていれば、それは一度だけ行う必要があるときにパスワードチェックを2回行うことになります。

あなたは何ができるか代わりに

は次のとおりです。

$.ajax({ 
    type: "POST", 
    url: "checkandupdate.php", //Combination of both 
    data: dataString, 
    cache: false, 
    success: function(response) 
    { 
     if (result != -1) { 
      $("#passwd").val('');  
     } 
    } 
}); 

ファイルcheckandupdate.php

<?php 
require "checkpw.php"; // Or whatever you need to do to validate the password 
// At this point "checkpw.php" determined if the password is valid and(ideally) you can check the outcome 
//Assume we store the outcome of the check in $passwordIsValid as a boolean indicating success 
if ($passwordIsValid) { 
    //Do whatever you need to do when the password is valid 
    echo "1" 
} 
else { 
    // Do whatever you need to do when the password is invalid 
    echo "-1"; 
} 
?> 
1

のようなJavaScript関数を記述するためにあなたの必要性:今、あなたは簡単にあなたの要求成功でそれを呼び出すことができます

sendReturnToPHP function(url,result) 
    { 
$.ajax({ 
    type: "POST", 
    url: url, 
    data: JSON.parse(result), 
    cache: false, 
    success: function(response) 
    { 
    } 
}); 
    } 

関連する問題