2011-11-20 7 views
1

私はCodeIgniterとTwitterとFacebookを使って自分のサイトにユーザーログイン機能を設定しようとしています。私はそれがCodeIgniter Cookieは設定されませんが、セッションは機能していますか?

//Setup a guid 
$guid = uniqid(); 

//Setup a random cookie and point it to db user 
$cookie = array(
    'name' => 'TheCookieName', 
    'value' => $guid, 
    'expire' => 100, 
    'domain' => BASE_URL, 
    'secure' => TRUE 
); 

    set_cookie($cookie); 

    var_dump(get_cookie('TheCookieName')); // bool(false) 

私の自動ロードファイルが

$autoload['helper'] = array('paging_helper','url','cookie'); 

十分に簡単ですが動作しないクッキーを設定しようとすると

私は明らかに些細な何かが欠けていますか?どんな手掛かり?あなたは、同じインスタンスにクッキーを設定し、アクセスすることはできません

おかげ

答えて

2

を参照してください。

はこのようにそれをやって試してみてください。

//Setup a guid 
$guid = uniqid(); 

//Setup a random cookie and point it to db user 
$cookie = array(
    'name' => 'TheCookieName', 
    'value' => $guid, 
    'expire' => 86500, // have a high cookie time till you make sure you actually set the cookie 
    'domain' => '.example.org', // the first . to make sure subdomains isn't a problem 
    'path' => '/', 
    'secure' => TRUE 
); 

    set_cookie($cookie); 

は、新たな要求がなされてきたまではクッキーが利用可能になることはありませんことを覚えておいてください。
Cookieセットアップで指定されたドメインの別のページにリダイレクトし、Cookieを再度確認します。

+0

BASE_URLを何も設定せずにCIがそれを理解できるようにした後、何らかの理由で、配列として渡す代わりに、set_cookie($ param、$ param、$ param、$ etc)のような関数を呼び出さなければなりませんでした。理由は分かりませんが、動作します。 –

+0

奇妙な音... set_cookie()の代わりにsetcookie()を使用していないと確信していますか? – Repox

+0

@Repox localhost/folder_name /でコードをテストしている場合は、ドメインにする必要がありますか? – Suleman

1

。 Cookieを設定した後、またはリフレッシュする必要があります。 var_dumping get_cookieが常にfalseを返すのはそのためです。残りの引数も設定する必要があります。 おそらくあなたが期待するか、どのようなクッキーの初期化が必要とするものが含まれていない、問題はCI定数の一部ではないドメイン変数 BASE_URL、内おそらくsetcookie

+0

ため安全な=> TRUEを設定してください。また、set_cookie()はCodeIgniter関数であり、ネイティブのPHP setcookie()ではないことに注意してください。 –

+0

@SeanHJenkins var_dumping $ _COOKIE ["TheCookieName"]を試すことができます – Mob

2

私はクッキーがまだ偽でリダイレクトする場合でもあなたはHTTPSのみ

関連する問題