php cookie для перенаправления, чтобы впервые показывать посетителям бета-страницу - PullRequest
1 голос
/ 10 апреля 2011

Фон.

domain.com = сайт, который собирается войти в бета-версию LAUNCH.domain.com = страница-заставка и текстовое поле, где кто-то может ввести код приглашения в

auth_check.php - на котором launch.domain.com публикует сообщения при отправке

если введенные данные на заставке совпадают с auth_checkphp, то пользователь перенаправляется на domain.com

если пользователь никогда не был на domain.com, его отправляют на launch.domain.com

проблема.

когда я ввожу код для launch.domain.com, он отправляет меня на domain.com, поэтому он работает нормально.

НО cookie не сохраняется. после того, как я закрываю браузер и снова открываю его, чтобы вернуться на domain.com, меня отправляют на launch.domain.com

вот мой код.

auth_check.php

<?php
 $invite_code = "getaccess";   ----that is the code that must be entered in to form
 $site_url = "http://www.domain.com";  --- main domain.... 
 $thank_you_url = "http://www.domain.com/register.php";   ---- page they get sent to after entering the correct code

 if(isset($_POST['invite_code']) && $_POST['invite_code'] == $invite_code) {
  setcookie("can_see","true");  ----- invite code is the name of the text field

  header("Location: ".$thank_you_url);
  exit;
 }

 header("Location: ".$site_url);
 exit;
?>

index.php

<?php
 $register_url = "http://www.launch.domain.com";

 if(!$_COOKIE['can_see']) {
  header("Location: ".$register_url);
  exit;
 }
?>

форма работает нормально. так что я оставлю это

Я только что проверил это в последний раз, и он отлично работает в Internet Explorer - cookie установлен в Chrome и IE, но не хранится

любой вход был бы великолепен !!

большое спасибо

Ответы [ 3 ]

1 голос
/ 10 апреля 2011

Файл cookie, вероятно, сохраняется, но, поскольку адрес другой - "domain.com" и "launch.domain.com" - он не отправляется обратно на сервер.

Что вы можете сделать, это добавить параметр к setcookie, чтобы файл cookie действовал для всего домена и любых поддоменов:

setcookie("can_see", "true", 0, "/", ".domain.com");

Устанавливает имя файла cookie равным «can_see», значение «истинно», дату окончания срока действия «всякий раз, когда браузер закрыт» (он же файл cookie сеанса), путь файла cookie к корню домена домен для куки как ".domain.com" (с ведущим периодом). Это сделает так, чтобы все субдомены (www, launch, ftp, mail и т. Д.) Могли читать cookie.

0 голосов
/ 10 апреля 2011

В своем первоначальном ответе вы сказали, что субдомен и домен могут быть проблемой, поэтому я просто переместил содержимое субдомена запуска на domain.com/launch, добавил строку кода, и она работает.

я изменил 0 на время () + (60 * 60 * 24 * 365).

, кажется, работает нормально.

спасибо, чувак.

0 голосов
/ 10 апреля 2011

См. документы setcookie , но в основном, если вы не дадите истечение срока действия, это файл cookie сеанса и будет очищен при закрытии браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...