2015-11-03 69 views
2

我有一個表單,得到驗證的JavaScript。在其中一條if語句中,在最後一個條件(當其他所有條件都被驗證時),我想將我的PHP腳本更新爲其中一個密碼。試圖從Javascript調用PHP腳本如果語句

這是最後的驗證:

function passwordCheck() { 
    var password = '<?php echo $password; ?>'; 
    if (document.passwordform.inputedPassword.value == password) 
    { 
     if (document.passwordform.Password1.value == document.passwordform.Password2.value) 
     { 
      ********************************************************* 
     } else 
     { 
      document.getElementById("equalpasswords1").innerHTML = "Passwords should be equal"; 
      document.getElementById("equalpasswords2").innerHTML = "Passwords should be equal"; 
     } 
    } else 
    { 
     text = "Insert a correct password"; 
     document.getElementById("editpassword").innerHTML = text; 
    } 
    return true; 
} 

而且我想插入我的PHP腳本調用其中的明星們。我怎麼能這樣做?我讀過你不能將PHP插入到JavaScript中,所以它必須是一個外部PHP文件。我的SQL更新代碼是這一個:

<?php    
$x = $_POST['Password2']; 

define('DB_NAME', 'Students'); 
define('DB_USER', 'Students'); 
define('DB_PASSWORD', 'Password'); 
define('DB_HOST','HOST'); 

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if (!link) { 
    die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if (!$db_selected) { 
    die('Can\'t use'. DB_NAME. ': ' . mysql_error()); 
}  


$result = "UPDATE `1956218_students`.`Students` SET `Password` = '$x' WHERE `Students`.`StudEmail` = '$email' "; 
if (!mysql_query($result)) { 
die('error: ' .mysql_error()); 
} 

?> 
+3

你必須使用AJAX。 – Barmar

+1

這也適用於SQL注入。 – chris85

+0

你正試圖讓人們輸入他們當前的密碼,但你卻以純文本的形式回顯密碼......你想在那裏防止什麼?你也很容易受到SQL注入攻擊,你應該散列你的密碼。 – Mike

回答

0

你需要認識到,在客戶端執行的JavaScript(瀏覽器),而PHP代碼在服務器端執行。

所以,你需要做的另一個請求到服務器,讓PHP代碼能夠處理/處理它(驗證密碼,準備一些應對 - 理想JSON格式等)。

你可能想要做這樣的事情:
How to validate a username/password via JQuery/Ajax?