Codeigniter 3 flashdata problemi
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());
}
}
}
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.