【发布时间】:2016-02-03 01:35:11
【问题描述】:
我有一个通过 javascript 验证的表单。在其中一个 if 语句中,在最终条件下(当其他所有内容都已验证时),我想放置我的 PHP 脚本,该脚本使用其中一个密码更新 SQL。
这是最后的验证:
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());
}
?>
【问题讨论】:
-
你必须使用 AJAX。
-
这也对 SQL 注入开放。
-
你试图让人们输入他们当前的密码,但你却以纯文本的形式将密码回显到页面......你试图阻止什么?你也容易受到 SQL 注入的攻击,你应该对你的密码进行哈希处理。
-
请不要介意 SQL 注入和纯文本,我稍后会处理。我现在只想让它工作
-
随心所欲,但总的来说这是一种糟糕的编码方式。首先,当您有新鲜的想法时,第一次做对就容易得多。其次,您实际上可能完全忘记了回去做某事。第三,如果您确实记得修复它,那么您仍然在做双倍的工作,而不是一开始就做好。
标签: javascript php html forms validation