2015-03-25 58 views
-1

我試圖查看使用CodeIgniter設置的cookie的內容。我可以在服務器端正確轉儲cookie數組的內容,但無法在瀏覽器中的檢查器中查看它們(如此在客戶端)。無法在瀏覽器中查看cookie(codeigniter)

我使用CodeIgniter版本3,如果有幫助。 這是我設置cookie的代碼:

if ($email === $admin_email && $password = $password) { 

      echo 'credential match'; 

      $this->load->helper('cookie'); 

      if ($remember_me == '1') {        

       $email = $this->input->post('email'); 
       $password = $this->input->post('password'); 
       $remember = $this->input->post('remember_me'); 

       $cookie1 = array(
        'name' => 'email', 
        'value' => $email, 
        'expire' => '86400', 
        'domain' => base_url(), 
        'path' => '/admin/', 
        'prefix' => 'myprefix_', 
        'secure' => TRUE 
       ); 

       $this->input->set_cookie($cookie1); 
       echo "<pre>"; 


       var_dump($cookie1); 
       echo"</pre>"; 
       echo 'Checked'; 
      } 

     } 
    return TRUE; // if credential matches 
    } else { 
     return False; 
    } 

這裏是爲了澄清我的意思是圖像: cookie

+3

至於密碼:這是一個完全不同的問題,第一個問題。嘗試閱讀網站,如http://jeremykendall.net/2014/01/04/php-password-hashing-a-dead-simple-implementation/或https://www.bentasker.co.uk/blog/security/ 201-爲什麼你應該問你的密碼是如何存儲以供指示的。 – 2015-03-25 12:17:24

+0

爲什麼我沒有在瀏覽器中獲取cookie名稱和值? – 2015-03-25 14:04:42

+0

你得到了什麼輸出?我能想到的唯一原因會導致它不顯示你的var_dump,如果它沒有達到內部的if語句,所以如果$ remember_me不等於*字符串*'1'。您輸出的圖像是頂部圖像還是您想要獲取的圖像? – 2015-03-25 14:10:50

回答

1

解決,標誌着「安全」 => FALSE

   // set cookie 
        $cookie = array(
        'name' => 'email', 
        'value' => $email, 
        'expire' => '86500', 
        'domain' => '.xyzsoftsolutions.com', 
        'path' => '/admin', 
        'prefix' => 'admin_', 
        'secure' => FALSE 
       ); 

       $this->input->set_cookie($cookie); 
1

要設置該Cookie可能存儲在服務器端。在客戶端(在您的瀏覽器中),您可以看到瀏覽器發送給服務器的引用,因此它知道您是誰(會話)。服務器然後使用它來查找會話的cookie,以便您可以在代碼中訪問它。這些值本身存儲在服務器上:不在瀏覽器中。

因此,獲取cookie值的唯一方法是從服務器以PHP(在服務器上處理)打印它們。

如果您要使用Javascript/Jquery存儲cookie,那麼它通常會存儲在客戶端,從而顯示在您的檢查器中。

編輯:更好地看待您的最新圖片,看起來您在cookie中設置了一條路徑。嘗試刪除該行,然後查看它是否有效。如果你設置了一個路徑,那麼cookie將只會顯示在具有該路徑的頁面上(因此在本例中爲localhost/admin/*)。我不完全確定CI如何處理Cookie,但由於「SECURE」條目的原因,它也可能不會將其存儲在客戶端,因此您可以嘗試禁用它。

+0

我使用的是http:// localhost:8080/ ,當我嘗試在該數組中傳遞域名及其下面的屬性時,我無法在瀏覽器中查看cookie值和名稱。 請一次查看下面的圖片 http://i.stack.imgur.com/4b8nT.png – 2015-03-25 15:27:26

+0

您可能將客戶端的值(例如,使用Javascript)存儲在cookie中。在那種情況下,它將被存儲在那裏。 – 2015-03-25 15:28:39

+0

看看你的最新形象,請看看我的編輯。 – 2015-03-25 15:47:04