Как передавать сессии на поддомен с примерами скрипт
Как передать сессию на поддомен, есть ли способ передачи сессий на поддомен!? На сайте не предается сессия на поддомен! Способы передавать сессию на поддомены.
- Не передается сессия на поддомен! + Алгоритм передачи
- Скрипт передачи сессии на поддомен
- Код скрипта для передачи сессии на поддомен
- Скрипт запуска сессии на поддомене
- Пример передачи и запуска сессии на поддомене
- Скачать
Не передается сессия на поддомен!
Начнем с того, что сессия на поддомен никакими способами, которые я прочитал в интернете не сработали! В этом нужно разбираться отдельно!
И после некоторого раздумья я подумал!
А почему бы не попробовать передать сессию на поддомен с помощью cookie - раз уж другие способы не сработали! Сказано сделано!
Алгоритм передачи сессии на поддомен
Алгоритм передачи сессии на поддомен совершенно простой!
В момент отправки данных, например в момент авторизация вы должны создать отдельную куку, которая и будет в случае необходимости запускать сессию.
На поддомене должен находиться скрипт, который проверит существование куки для запуска сессии и запустить сессию на поддомене!
И! НО! Здесь надо уточнить, что данный скрипт подразумевает, что все манипуляции происходят на главном домене! И данные на поддомен никаким образом не пердаются!(Можно сделать и по другому, но сегодня мы рассматриваем скрипт самый простой, какой-только можно придумать! А извращаться можно до бесконечности! )
Скрипт передачи сессии на поддомен
Поскольку! Мы изначально взяли за константу, что никаким образом данные на поддомен не передаются, то значение кук будет постоянным(для данного примера должно быть постоянным)! Длаее мы это покажем, но в первых строках я должен был сказать об этом! Это будетНам понадобится какая-то форма(вообще о формах много тем), из которой будем отправлять наши данные, вернее для примера мы будем использовать checkbox(если вам требуется создавать куки скрыто):
Следующим пунктом нам потребуется способ получения данных из этой кнопки -> см.здесь, естественно, что мы выбираем post -> соберем всю форму вместе:
<input type="checkbox" name="checkbox"> запомнить меня - кнопка checkbox<br>
<input type="submit" name="submit" value="submit"><br>
</form>
Перейдем к скрипту, который будет обрабатывать создание кук для сессии на поддомене, в данном примере у нас переменная
Далее идут проверки! Если кнопка checkbox была нажата выводим результат - кнопка checkbox нажата - ПРИВЕТ МИР!:
Далее- если куки не существуют:
Если мы прошлом проверки, то мы внутри скрипта и создаем куки и отправляем результат в переменную $example(если вы знаете, то там будет либо TRUE, либо FALSE):
И в зависимости от результат в переменной $is_Cookie выводим текстовое сообщение либо куки созданы, либо нет... соберем выше рассказанный скрипт:
$password = 'my_password';
if($_POST[ 'checkbox'])
{
$send .= 'кнопка checkbox нажата - ПРИВЕТ МИР! ';
if (!$_COOKIE['Test'])
{
$is_Cookie = @SetCookie ( 'Test' , $password, time()+(365*24*60*60), "/", $_SERVER["HTTP_HOST"], 0);
if (!$is_Cookie)
{
$send .= "<br>Куки Test не созданы - ошибка";
}
else
{
$send .= "<br>Куки Test благополучно созданы";
}
}
else
{
$send .= "<br>Куки Test уже существуют";
}
}
?>
Теперь мы должны как-то вывести результат работы скрипта, перед формой ставим :
echo $send;
if($_COOKIE['Test']){ echo '<br>чему равны куки из Test = '. $_COOKIE['Test']; }
?>
Код скрипта для передачи сессии на поддомен
Далее нам остается собрать весь код передачи сессии на поддомен в виде скрипта прямо здесь:
<?
$password = 'my_password';
if($_POST[ 'checkbox'])
{
$send .= 'кнопка checkbox нажата - ПРИВЕТ МИР! ';
if (!$_COOKIE['Test'])
{
$is_Cookie = @SetCookie ( 'Test' , $password, time()+(365*24*60*60), "/", $_SERVER["HTTP_HOST"], 0);
if (!$is_Cookie)
{
$send .= "<br>Куки Test не созданы - ошибка";
}
else
{
$send .= "<br>Куки Test благополучно созданы";
}
}
else
{
$send .= "<br>Куки Test уже существуют";
}
}
?>
<?
echo $send;if($_COOKIE['Test']){ echo '<br>чему равны куки из Test = '. $_COOKIE['Test']; }
?>
<form method="post" action=""><input type="checkbox" name="checkbox"> запомнить меня - кнопка checkbox<br>
<input type="submit" name="submit" value="submit"><br>
</form>
Скрипт запуска сессии на поддомене
На поддомене проверяем... если куки существуют:
Создаем условие - если сессии на поддомене не существует:
Запускаем сессию на поддомене:
Скрипт запуска сессии в сборе:
{
if(!$_SESSION['Test'])
{
$_SESSION['Test'] = $_COOKIE['Test'];
}
}
Данный скрипт - это совсем упрощенная версия, показать принцип работы! Если требуется на поддомене запускать несколько сессий, либо производить какие-то проверки, то в первом скрипте в куки сохраняем больше информации, например через разделитель, пусть это будет нижнее подчеркивание(например). А на поддомене значение кук разделяем с помощью explode. Не забываем про шифрование!
Пример передачи и запуска сессии на поддомене
Для того, чтобы увидеть в живую пример работы скрипта передачи сессии на поддомен нам нужно:
Открываем поддомен, на который будем передавать сессию:
Специально зайдите на эту страницу, чтобы увидеть - какая страница - без запуска сессии....
Вы должны увидеть вот такую картину:
На второй странице пример разместим выше приведенный код запуска сессии на поддомене:
Нажимаем по кнопке создать куки.
И далее открываем ту страницу поддомена, которую вы видели в подпункте 2... и вы должны увидеть результат....
Проверено на 3 браузерах - всё работает.
Если вдруг, по каким то причинам не сработало, значит проблема на вашей стороне.
Либо в вашем браузере не передались куки.
Либо ... я не знаю почему
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже: