v2.5.2
Giriş yap

Codeigniter 3 flashdata problemi

howlberg
423 defa görüntülendi

Form ile user/register a post atıyorum ve geride error döndürüyorum set_flashdata ile fakat anasayfada flashdata ile erroru yazdırıp f5 attığımda error hala sayfada kalıyor, yanlıs mı kullanıyorum acaba ?


    <form action="user/register" method="post">
        <?php if ($this -> session -> flashdata ('errors')) : ?>
        <ul>
            <?=$this -> session -> flashdata ('errors');?>
        </ul>
        <?php endif; ?>
        <input type="text" name="user_email" placeholder="[email protected]">
        <input type="password" name="user_password" placeholder="****">
        <input type="hidden" name="form_process" value="register">
        <button type="submit">Kayıt Ol!</button>
    </form>
    public function register ()
    {

        if ( $this -> input -> method () && $this -> input -> post ('form_process') === 'register') {

            $this -> form_validation -> set_error_delimiters ('<li>', '</li>');

            $this -> form_validation -> set_rules ('user_email', 'email', 'required|trim|valid_email', array (
                'required' => 'Lütfen e-posta adresi giriniz',
                'valid_email' => 'Geçerli bir e-posta adresi giriniz'
            ));

            $this -> form_validation -> set_rules ('user_password', 'şifre', 'required|trim|min_length[5]', array (
                'required' => 'Lütfen şifre giriniz',
                'min_length' => 'Şifreniz 3 karakterden daha kısa olamaz'
            ));

            if ( $this -> form_validation -> run () == TRUE ) {

                $this -> session -> set_flashdata ('success', 'Kayıt başarılı, Lütfen giriş yap!');

                redirect (base_url());

            }else {

                $this -> session -> set_flashdata ('errors', validation_errors());

                redirect (base_url());

            }

        }

    }
Cevap yaz
Cevaplar (2)
adorratm
866 gün önce

Sanırım php 7 ve sonrasında flashdata özelliği 5.6 da olduğu gibi çalışmıyor. Ama basit yöntemi var flashdata olarak tanımladığınız errors ve success mesajlarını if içerisinde gösterdikten sonra hemen alt satırda tekrardan set_flashdata ile null değer ile tanımlayıp f5 ettiğinizde tekrar gözükmemesini sağlayabilirsiniz.