2017-02-22 43 views
3

Я пытаюсь понять разницу между функциями PHP setcookie() и session_set_cookie_params().Разница между функциями setcookie() и session_set_cookie_params()

Похоже, что обе функции выполняют одни и те же задачи, но setcookie() может использоваться для создания файла cookie с именем & значение.

Я попытался понять руководства по PHP, но никаких явных различий в нем не было.

Благодаря

ответ

0

SetCookie() определяет куки для отправки вместе с остальными заголовками HTTP. Как и другие заголовки, файлы cookie должны быть отправлены до выхода из вашего скрипта (это ограничение протокола). Это требует, чтобы вы отправляли вызовы этой функции до любого вывода, включая и теги, а также любые пробелы.

для SetCookie() работать, вам нужно позвонить session_set_cookie_params() для каждого запроса и перед session_start() и другие, как SetCookie() называются.

+0

Похоже, session_set_cookie_params() предназначен для серверной и setcookie() для клиентской стороны.? – Shatru

+0

session_set_cookie_params() означает выбор параметров, которые мы используем для установки cookie, это может быть наше имя пользователя или что-то еще. –

+0

set cookie используется, когда есть параметр, который будет использоваться –

0

Я думаю, может быть разница между функциями setcookie() и session_set_cookie_params() - это домен domain.com и sub.domain.com.

0

Есть два типа печенья:

сессия печенье: эти session_set_cookie_params() и это временные куки-файлы, которые удаляются при закрытии браузера.

Стойкое печенье: Это SetCookie() и эти файлы остаются в одном из вложенных папок вашего браузера, пока вы не удалите их вручную или ваш браузер удаляет их в зависимости от продолжительности периода, содержащегося в упорном печенье.

Например, если вы хотите, чтобы куки были быть сохранены в течение 1 недели:

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

В основном это не то же самое.

Для 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() делает две вещи, он создает временный файл на сервере для хранения данных сессии, а также отправляет куки в браузер пользователя. Этот файл cookie имеет время истечения по умолчанию, поэтому вызов session_set_cookie_params (seconds) изменит время истечения срока действия файла cookie по умолчанию на то, что вы определяете. Файл cookie в основном указывает клиента на их сеанс, поэтому требуется доступ к сеансу.

Набор печенья()

где, как SetCookie() функция определяет куки для отправки вместе с остальной частью заголовков HTTP.