JackShcherbakov
@JackShcherbakov

Как правильно передать 6-й аргумент функции setcookie() и как его понимать?

ВНИМАНИЕ! Ниже идет поток нубских вопросов!
Здравствуйте! Пользуюсь openserver'ом и не имею полного представления о имени домена и имени сервера. Насколько я знаю домен, предоставляемый функции setcookie() должен совпадать с окончанием имени сервера. Но какое у меня имя сервера то? asd? В качестве 6-го аргумента можно указать домен, которому будут доступны эти куки.

По этому пути находится мой "сайт" http://asd/. (что это за путь вообще? Путь к серверу? Тогда какое у моего сервера имя?)

Пишу вот так -
setcookie("cookiewithdomain", "ralph", 0, "/files.php", ".asd"); //С точкой не работает

Пишу вот так и все работает
setcookie("cookiewithdomain", "ralph", 0, "/files.php", "asd"); //Без точки  работает


На что влияет этот аргумент? И почему домен, предоставляемый функции setcookie() должен совпадать с окончанием имени сервера? Какая связь между доменом и именем сервера?

Буду бесконечно благодарен за четкий, ясный ответ.
Просьба ссылку на документацию не кидать, я ее уже видел)
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега PHP
Web developer
RTFM ru2.php.net/manual/ru/function.setcookie.php
Там есть четкое описание, что такое path, domain и какие значения туда указывать.

Просьба ссылку на документацию не кидать, я ее уже видел)

Да ладно?

Твой вопрос:
По этому пути находится мой "сайт" asd/. (что это за путь вообще? Путь к серверу? Тогда какое у моего сервера имя?)

Открой документацию и прочитай:
path
Путь к директории на сервере, из которой будут доступны cookie. Если задать '/', cookie будут доступны во всем домене domain. Если задать '/foo/', cookie будут доступны только из директории /foo/ и всех ее поддиректорий (например, /foo/bar/) домена domain. По умолчанию значением является текущая директория, в которой cookie устанавливается.

domain
(Под)домен, которому доступны cookie. Задание поддомена (например, 'www.example.com') сделает cookie доступными в нем и во всех его поддоменах (например, w2.www.example.com). Для того, чтобы сделать cookie доступными для всего домена (включая поддомены), нужно просто указать имя домена (то есть 'example.com').


Твой вопрос:
Как правильно передать 6-й аргумент

Открой документацию и прочитай:
secure
Указывает на то, что значение cookie должно передаваться от клиента по защищенному соединению HTTPS. Если задано TRUE, cookie от клиента будет передано на сервер, только если установлено защищенное соединение.
Ответ написан
Комментировать
rabbit418
@rabbit418
23 yo Designer from Ukraine
session_start();
$currentCookieParams = session_get_cookie_params();
$sidvalue = session_id();

if(!isset($_COOKIE['PHPSESSID'])) {
	setcookie(
		'PHPSESSID', //name  
		$sidvalue, //value  
		0, //expires at end of session  
		$currentCookieParams['path'], //path  
		$currentCookieParams['domain'], //domain  
		true //secure  
	);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы