2011-03-31 62 views
0

這是我在codeigniter控制器中使用的代碼,這似乎不適合我。 contact.php =控制器論壇提交CodeIgniter的限時?

function send() 
{ 
$this->load->library('session'); 

$this->session->set_userdata('lastsent', microtime()); 

if(microtime() >= $this->session->userdata('lastsent') + 60000000) 
{ 
// here I have all my send email code, that works. 
... 
$data['message'] = 'Email was sent, thank you.'; 
$this->load->view('contact', $data); 
} 
else 
{ 
$data['message'] = 'Please wait 60 seconds.'; 
$this->load->view('contact', $data); 
} //timeout check 

} //send() 
+1

我不知道這是你說的問題,但'set_uesrdata'應該接收2個參數:'$ this-> session-> set_userdata('some_name','some_value');''或數組 – BigFatBaby 2011-03-31 13:02:54

回答

1

你忘了在會話中添加數據:

$this->session->set_userdata('lastsent', 'Your data here'); 

如:

$this->session->set_userdata('lastsent', microtime()); 

編輯:使用time(),而不是microtime()嘗試(microtime中是不支持無處不在,時間是) 函數send()

{ 
    $this->load->library('session'); 

    $this->session->set_userdata('lastsent', time()); 

    if(time() >= $this->session->userdata('lastsent') + 60) 
    { 

     $data['message'] = 'Email was sent, thank you.'; 
     $this->load->view('contact', $data); 
    } 
    else 
    { 
     $data['message'] = 'Please wait 60 seconds.'; 
     $this->load->view('contact', $data); 
    } 

} 
+0

是的你是對的,它缺少microtime()。但是,當我使用該代碼時,它仍然不會發送任何電子郵件。不使用時間限制檢查它的工作原理很好。 – EMC 2011-03-31 13:04:38