2015-11-03 39 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?