Первое:
проверить, не являются ли данные сообщения пустыми
$testing = $this->input->post('fname');
var_dump($testing);
exit;
Второе:
вы можете пропустить keep_flashdata, в этом контексте вам это не нужно
Третий:
Проверьте настройку сеанса в config.php
, например:
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'mysession';
$config['sess_expiration'] = 86400;
$config['sess_save_path'] = 'sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = TRUE;
, проверьте autload.php
: $autoload['libraries'] = array('session', [...]);
Четвертый:
проверьте сессию flash var напрямую:
$strFstname = $this->session->flashdata('fstname');
die($strFstname);
Ваш код должен работать, я много раз использовал flashdata.