我有PHP
项目,用户可以登录并在忘记密码时申请新密码。我还有init.php
,它指示用户在使用新密码登录后更改密码页。
INIT.PHP
中用于重定向用户的代码如下:
$current_file = explode('/', $_SERVER['SCRIPT_NAME']);
$current_file = end($current_file);
if (logged_in() === true) {
if (user_active($user_data['username']) === false) {
session_destroy();
header('Location: index.php');
exit();
}
if ($current_file !== 'user.php?p=change_password' && $user_data['password_recover'] == 1) {
header('Location: user.php?p=change_password&force');
exit();
}
}
$current_file
只给我user.php
,当然这还不够。我也试过$_SERVER['REQUEST_URI']
给了我/user.php?p=change_password
这很好。但仍然行不通。我收到错误The page isn't redirecting properly
总结一下。如果用户请求了新密码,我需要将用户重定向到user.php?p=change_password&force
。
提前致谢
答案 0 :(得分:0)
您可能会陷入重定向循环。这就是我认为发生的事情:
user.php?p=change_password&force
$current_file !== 'user.php?p=change_password'
的if语句仍为真答案 1 :(得分:0)
$current_url = explode('/', $_SERVER['REQUEST_URI']);
$current_url = end($current_url);
if (logged_in() === true) {
if (user_active($user_data['username']) === false) {
session_destroy();
header('Location: index.php');
exit();
}
if ($current_url !== 'user.php?p=change_password' && $user_data['password_recover'] == 1) {
header('Location: user.php?p=change_password');
exit();
}
}
此解决方案有效