2015-10-13 114 views
0

我正在使用下面的php代碼來創建和存儲cookie。繼續執行PHP代碼之前的用戶操作

if ($logged_in_user['slots'] > $this->devices_model->count_devices($logged_in_user['id'])) { 
//HERE SHOULD BE PLACED WHAT I NEED 
     $cookie = array(
      'name' => 'kolass_app', 
      'value' => md5(uniqid($logged_in_user['id'], true)), 
      'device' => $this->agent->browser() . ' ' . $this->agent->version(), 
      'expire' => time() + (10 * 365 * 24 * 60 * 60), 
     ); 
     $this->input->set_cookie($cookie); 
     $data['user_id'] = $logged_in_user['id']; 
     $data['device'] = $cookie['device']; 
     $data['value'] = $cookie['value']; 
     $this->devices_model->add_device($data); 
     redirect(base_url()); 
    } 

如何在繼續創建和保存Cookie之前獲取用戶操作是或否。

我正在使用Codeigniter

回答

0

您無法在PHP腳本中與用戶進行交互。你需要做的是首先執行第一部分(if),然後向用戶顯示他們可以選擇是或否的頁面。如果他們選擇是,請將它們發送到執行其餘代碼的頁面。但要小心,如果有人打開多個選項卡,然後在所有選項卡上選擇「是」,則需要在第二頁上輸入if,以獲得比實際能夠獲得的更多「插槽」。

0

使用

<?php 
if ($logged_in_user['slots'] > $this->devices_model->count_devices($logged_in_user['id'])) { 

?> 
    <script> 
    function myFunction() { 
     var r = confirm("Are You sure??"); 
     if (r == true) { 
      <?php 
       $cookie = array(
        'name' => 'kolass_app', 
        'value' => md5(uniqid($logged_in_user['id'], true)), 
        'device' => $this->agent->browser() . ' ' . $this->agent->version(), 
        'expire' => time() + (10 * 365 * 24 * 60 * 60), 
       ); 

       $this->input->set_cookie($cookie); 
       $data['user_id'] = $logged_in_user['id']; 
       $data['device'] = $cookie['device']; 
       $data['value'] = $cookie['value']; 
       $this->devices_model->add_device($data); 
       redirect(base_url()) 
      ?> 

     } else { 
      alert('Not Served'); 
     } 
    } 
    </script> 
<?php 
} 
else 
{ 
    echo 'Not Loged In'; 
} 
相關問題