Я наблюдаю за входом в систему для входа и регистрации, я использовал флеш, чтобы сказать, что пользователь был успешно зарегистрирован, и теперь я тестирую перенаправление на страницу с ошибкой, а парень в учебнике не удаляет флэш-код и флэш-память не появляется, и содержимое страницы пользовательского 404-ошибок все еще появляется для моей вспышки по-прежнему остается, даже если я оставлю вспышку и изменил эхо-сообщение, это повторит первый, старый.
это вспышка
Session::flash('home', 'You have been registered and can now login');
даже если эта строка и содержимое index.php будут удалены, она все равно будет перенаправлена на index.php
зарегистрировать код
if(Input::exists()) {
if(Token::check(Input::get('token'))) {
$validate = new Validate();
$validation = $validate->check($_POST, array(
'username' => array(
'required' => true,
'min' => 6,
'max' => 20,
'unique' => 'users'
),
'password' => array(
'required' => true,
'min' => 6
),
'password_again' => array(
'required' => true,
'matches' => 'password'
),
'name' => array(
'required' => true,
'min' => 2,
'max' => 50
)
));
if($validation->passed()) {
$user = new User();
$salt = Hash::salt(32);
try {
$user->create(array(
'username' => Input::get('username'),
'password' => Hash::make(Input::get('password'), $salt),
'salt' => $salt,
'name' => Input::get('name'),
'joined' => date('Y-m-d H:i:s'),
'group' => 1
));
Session::flash('home', 'You have been registered and can now login');
Redirect::to(404);
}catch(Exception $e) {
die($e->getMessage());
}
} else {
foreach ($validation->errors() as $error) {
echo $error, '<br>';
};
}
}
}
?>
<form action ="" method= "post">
<div class="field">
<label for= "username">Username</label>
<input type= "text" name= "username" id ="username" value="<?php echo escape(Input::get('username')); ?>" autocomplete="off">
</div>
<div class="field">
<label for="password">Choose a password</label>
<input type="password" name="password" id="password">
<div class="field">
<label for="password_again">Confirm password</label>
<input type="password" name="password_again" id="password_again">
<div class="field">
<label for= "name">Name</label>
<input type= "text" name= "name" value="<?php echo escape(Input::get('name')); ?>" id ="name">
</div>
<input type="hidden" name="token" value="<?php echo Token::generate(); ?>">
<input type="submit" value="Register">
</form>
redirect.php
<?php
class Redirect {
public static function to($location = null) {
if($location) {
if(is_numeric($location)) {
switch($location) {
case 404:
header('HTTP/1.0 404 Not found');
include 'includes/errors/404.php';
exit();
break;
}
}
header('Location: ' . $location);
exit();
}
}
}
404.php
this page was not found
Не уверен, правильно ли я это понимаю, но Redirect::to(404);
код направляет вас на страницу 404 и включает файл 404.php.
Удаление строки Session::flash('home', 'You have been registered and can now login');
или содержимое index.php не остановит это.