我想从我目前在我的网站上使用的文件管理器修改登录脚本。
当前,当登录尝试失败时(错误密码,空白字段等),错误消息存储在$errors
变量中,并且在脚本结尾处,函数将包括一个带有$errors
的file.php作为一个参数,所以错误信息可以被回显。
我不成功尝试做的是用header()+ $ errors替换这个include +参数($ errors)。
我一直是每一个线程处理这一而是围绕到目前为止,我还没有发现任何对我的作品,我需要一些帮助:/
这里是存储错误的登录脚本的一部分在$错误和消息包括file.php:
if(!isset($_SESSION['simple_auth']['username']) || isset($_GET["login"])) {
session_destroy();
session_start();
if(isset($_POST["submit"])) {
$user = gg::getUser($_POST['username']);
if (isset($user['permissions']) && !strstr($user['permissions'], 'r')
|| ($user['username'] == 'guest' && ggconf::get('allow_guests') == false)){
$errors = "Access Forbidden";
gg::writeLog('auth bad - not activated');
}
if (!isset($_POST['username']) || !isset($_POST['password']) || $_POST['username'] == '' || $_POST['password'] == ''){
$errors = "Enter username and password.";
gg::writeLog('auth bad - blank fields');
}
if (isset($user['akey']) && $user['akey'] != '' && strpos($user['akey'], 'otp-') === false){
$errors = "Please open your email and click on the link to proceed.";
gg::writeLog('auth bad - not activated');
}
if(!$errors && $user['username'] == $_POST['username'] && gg::checkPassword($_POST['password'], $user['password'])){
$this->loginUser($user);
}
if(!$errors){
$errors = "Wrong username or password.";
gg::writeLog('auth bad - wrong username or password');
sleep(1);
}
}
if (!isset($_GET["login"]) && ggconf::get('allow_guests') == true){
$user = gg::getUser('guest');
if($user){
$this->loginUser($user);
}
// reload
header('Location: '.ggconf::get('base_url'));
die;
}
gg::display("login.php", array('errors' => $errors));
exit;
}
正如你在这个代码的最后看到的是GG ::显示功能,将包括文件和它的参数,功能GG ::显示器如下:
/* DISPLAY VIEWS CONTROLLER */
public static function display($view, $params = null){
require_once ggconf::get('base_path').$view;
}
而在去年,这里是file.php里面的代码,将显示错误:)
<?php if (isset($params['errors'])):?>
<div class=>
<?php echo $params['errors'];?>
</div>
<?php endif;?>
我怎样才能让我的变量$错误与头(而不是放在require_once目前在脚本中使用?
我发现了很多线程处理这个,但没有为我工作,也请注意,我不是很有经验的PHP呢。
无论如何,我很感谢您的帮助,并且欢迎您提出任何建议。
-apatik
'头( '位置:' .gg()。'?errors ='。$ errors)'?你正在重定向到另一个页面。要么将错误存储在会话中的服务器上,要么通过URL中的查询参数将错误传递给您要重定向到的URL。 –
谢谢你的回答,我尝试了会话和和url参数,但不能使它工作。我想我可能做错了什么。在你的例子中,gg()是什么?标题的网址?在我的代码中,它只是php类 – apatik
gg只是我懒惰,没有输入ggconfetc ... –