我在使用以下PHP代码时遇到了一些问题:
require '../core/connection.php';
require '../includes/functions.php';
if (isset($_SESSION['user_id'])) {
if (isset($_POST['current_user_password'])) {
$current_user_password = md5($_POST['current_user_password']);
if ($current_user_password != $_SESSION['user_password']) {
header('Location:../edit_credentials.php?edit=password&error=current_password');
} else {
$new_password = $_POST['new_user_password'];
$new_password2 = $_POST['new_user_password2'];
if ($new_password == '' || ($new_password2 == '') {
header('Location:../edit_credentials.php?edit=password&error=new_password_empty');
}
if ($new_password != $new_password2) {
header('Location:../edit_credentials.php?edit=password&error=new_password_not_equal');
} else {
$new_password = md5($new_password);
edit_user_password($user_id,$new_password);
}
}
} else {
echo 'current_user_password not set';
}
} else {
echo 'Session not set';
}
这也是功能:
function edit_user_password($user_id,$user_password){
global $db;
$user_password_data = $db->query('
UPDATE `users`
SET `user_password` = "'.$user_password.'" WHERE `user_id` = "'.$user_id.'";');
$_SESSION['user_password'] = $user_password;
$db->query($user_password_data);
header("Location:../edit_credentials.php?saved=password");
}
除此部分外,一切都有效:
if ($new_password == '' || ($new_password2 == '') {
header('Location:../edit_credentials.php?edit=password&error=new_password_empty');
}
说到密码为空的这部分,如果我用模具('test')切换重定向,它可以工作,但它不能用于重定向。你们有没有机会知道为什么这不起作用?
提前感谢您的帮助。
答案 0 :(得分:1)
您应在每次exit;
电话后添加header('Location:...');
。
否则脚本继续运行。