php flash не исчезнет, даже если код удален

0

Я наблюдаю за входом в систему для входа и регистрации, я использовал флеш, чтобы сказать, что пользователь был успешно зарегистрирован, и теперь я тестирую перенаправление на страницу с ошибкой, а парень в учебнике не удаляет флэш-код и флэш-память не появляется, и содержимое страницы пользовательского 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
Теги:
flash

1 ответ

0

Не уверен, правильно ли я это понимаю, но Redirect::to(404); код направляет вас на страницу 404 и включает файл 404.php.

Удаление строки Session::flash('home', 'You have been registered and can now login'); или содержимое index.php не остановит это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню