2017-02-22 19 views
3

PHP関数setcookie()とsession_set_cookie_params()の違いを理解しようとしています。setcookie()関数とsession_set_cookie_params()関数の違い

両方の機能が同じ種類のタスクを実行しているように見えますが、setcookie()を使用して名前が&のクッキーを作成することができます。

私はPHPマニュアルを理解しようとしましたが、明白な違いはありません。

おかげ

答えて

0

ますsetcookie()は、HTTPヘッダーの残りの部分と一緒に送信するクッキーを定義します。他のヘッダーと同様に、スクリプトからの出力の前にクッキーを送信する必要があります(これはプロトコルの制限です)。これには、タグや空白を含む出力の前に、この関数を呼び出す必要があります。

ますsetcookie()作業するために、あなたが(すべての要求のためにとのsession_start前session_set_cookie_params()を呼び出す必要があります)ますsetcookieのような他の()が呼び出されます。

+0

session_set_cookie_params()は、サーバー側で、クライアント側ではsetcookie()のように見えます。 – Shatru

+0

session_set_cookie_params()は、ユーザ名などのクッキーを設定するために使用するパラメータを選択することを意味します。 –

+0

設定されたクッキーは、使用するパラメータがある場合に使用されます –

0

私は、setcookie()関数とsession_set_cookie_params()関数の違いはdomain.comとsub.domain.comです。

0

クッキーの2種類があります

セッションクッキーは:これらはsession_set_cookie_params(ある)、これはあなたがブラウザを閉じると消去され、一時的なクッキーファイル、です。

永続クッキー:あなたがそれらを手動で削除するか、またはお使いのブラウザが永続的なCookieに含まれる継続期間に基づいて、それらを削除するまでこれは、いったんsetcookie()と、これらのファイルは、ブラウザのサブフォルダの1にとどまります。

$remembering_timespan = time() + 7 * 24 * 60 * 60; 
setcookie('test','username', $remembering_timespan); 
2

基本的には同じではありません:あなたは1週間保存するクッキーを持っているしたい場合たとえば

setcookie

<?php 
$value = 'something from somewhere'; 

setcookie("TestCookie", $value); 
setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */ 
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1); 
?> 

については

あなたは、上記のような名前と値自体にタイムアウトセッションを設定することができます。 session_set_cookie_paramsについて:

session_set_cookie_params( 
    $currentCookieParams["lifetime"], 
    $currentCookieParams["path"], 
    $rootDomain, 
    $currentCookieParams["secure"], 
    $currentCookieParams["httponly"] 
); 

あなたはここでパス、クッキー自体の有効期限、ルートドメイン、安全なレベルと、より多くのパラメータを設定することができますhttp://php.net/manual/en/function.session-set-cookie-params.php

PHPを介した効率的な方法は以下の通りです:

<?php 
$currentCookieParams = session_get_cookie_params(); 

$rootDomain = '.example.com'; 

session_set_cookie_params( 
    $currentCookieParams["lifetime"], 
    $currentCookieParams["path"], 
    $rootDomain, 
    $currentCookieParams["secure"], 
    $currentCookieParams["httponly"] 
); 

session_name('mysessionname'); 
session_start(); 

setcookie($cookieName, $cookieValue, time() + 3600, '/', $rootDomain); 
?> 

効率的なコーダは、パラメータグリッドをオフにしている場合にパラメータを設定する前に、パラメータを設定する必要があります。クッキー自体に期限があります。

1

session_set_cookie_params(秒)

にsession_start()は2つのことを行い、それがセッションデータを保存するのサーバー上に一時ファイルを作成し、また、ユーザーのブラウザにクッキーを送信します。このクッキーにはデフォルトの有効期限が設定されているため、session_set_cookie_params(秒)を呼び出すと、クッキーのデフォルト有効期限が定義したものに変更されます。クッキーは基本的にクライアントをセッションに向けるので、セッションにアクセスする必要があります。ますsetcookieとして()関数は、HTTPヘッダーの残りの部分と一緒に送信するクッキーを定義

セットクッキー()

関連する問題