我正在开发一个应用程序,现在我陷入了这个问题:我已经注册了用户,我需要一个功能来更改他的密码。 PHP中的服务器端效果很好。但是,当用户更改密码时,我需要检查数据库形式的“旧密码”输入,如果不相同,我希望发出一些Java脚本警报。 希望很清楚,我的代码在这里
我的想法是创建php变量$ oldpsw。然后将变量放入Java脚本var = oldpsw。比通过document.getElementById(oldpsw).value获取用户输入,然后比较这两个变量。有什么建议么? 顺便说一句,我是初学者:)
这是完美的php服务器端
$_SESSION['user_id'];
include('confirmations.php');
require_once('Db.php');
Db::connect( 'localhost', 'chovejslepici_db','root', 'root');
$oldpsw=Db::querySingle('
SELECT psw
FROM user
WHERE user_id = ?
',$_SESSION['user_id']);
if($_POST['oldpsw']==$oldpsw)
{
Db::query('
UPDATE user
SET psw= ?
WHERE user_id = ?
',$_POST['newpsw'], $_SESSION['user_id']);
}
这是HTML部分
<form action="pswchange.php" method="post" class="rename">
<h3 class="headline pt">Change psi</h3>
<label class="headline" for="oldpsw">Old Psw <input class="center" value="<?php echo $oldpsw ?>" type="password" name="oldpsw" id="oldpsw" placeholder="Staré heslo"></label>
<label class="headline" for="newpsw">New Psw <input class="center" type="password" name="newpsw" id="newpsw" placeholder="Nové heslo"></label>
<button class="rename-button" onclick="myFunction()" type="submit" id="submit">Změnit heslo</button>
</form>
并尝试使用此JS脚本进行验证
var oldpsw = "<?php echo $oldpsw ?>" ;
var formpsw = document.getElementById("oldpsw").value;
function myFunction() {
if (formpsw!=oldpsw) {
alert("Wrong Old Password try again.");
}
else{
alert("Password successfully changed!");
}
}
现在,我每次都收到此警报(“旧密码错误,请重试。”);不知道为什么。