Установите cookie для перенаправления на бета-сайт при нажатии

#php #cookies

#php #файлы cookie

Вопрос:

Мне нужен сайт бета-тестирования, от которого пользователи также могут отказаться,

domain.com Там будет ссылка, позволяющая пользователям переходить beta.domain.com Я хочу, чтобы при каждом посещении они автоматически перенаправлялись на beta.domain.com но там они также могут отменить установку cookie на просто goto domain.com

Я пробовал кое-что, но просто попал в рекурсивный цикл: P

Есть идеи?

Комментарии:

1. Что вы пробовали? Используете ли вы libray? Вы должны предоставить нам дополнительную информацию, если хотите, чтобы мы предоставили нечто большее, чем просто логику, стоящую за этим.

2. Файл cookie, установленный в mutant-tractor.com недоступен по beta.mutant-tractor.com Я думаю, что это проблема. Если вы сможете установить cookie, который будет доступен на обоих сайтах, проблема будет решена

3. @mahadeb Значит, XSS также не разрешен для файлов cookie? Нужен ли мне бета-сайт в подкаталоге, а затем использовать mod_rewrite , чтобы он выглядел как beta.mutant-tractor.com ?

4. Да, вы можете сделать вот так. Помните — когда вы установите cookie, не используйте beta.mutant-tractor.com. Используйте только доменное имя, например, как — .mutant-tractor.com для обеих частей.

Ответ №1:

При входе beta.domain.com создайте cookie на уровне домена:

 setcookie("BetaUser", 1, time ()   (60*60*24*30), '/', '.domain.com');
  

Теперь, когда пользователь заходит на вашу страницу и вы находитесь на domain.com (см. $_SERVER) перенаправлении на beta.domain.com .

Когда пользователь хочет отказаться от вашего бета-тестирования, предоставьте ссылку на страницу отказа, которая отменяет установку cookie и перенаправляет обратно на domain.com .

Ответ №2:

Ссылка:

 <a href="/?switch-to-beta.php">switch to beta</a>
  

switch-to-beta.php код:

 setcookie('use_beta', '1', time() 3600*24*365*10, '/', 'domain.com');
header('Location: http://beta.domain.com/');
exit;
  

При запуске индексного файла на domain.com

 if(isset($_COOKIE['use_beta']) amp;amp; $_COOKIE['use_beta']){
  header('Location: http://beta.domain.com/');
  exit;
}
  

ссылка для остановки перенаправления на beta.domain.com

 <a href="http://domain.com/switch-to-stable.php">switch to beta</a>
  

switch-to-stable.php код:

 setcookie('use_beta', '0', time()-10000, '/', 'domain.com');
header('Location: http://domain.com/');
exit;
  

Комментарии:

1. нет проблем с XSS в отношении поддоменов и основных доменов? Т. е. мне не нужно использовать .domain.com ?

2. cookie установлен для domain.com . не имеет значения, beta.domain.com есть googe.com ли это, потому что реальное действие (перенаправление) выполняется на domain.com

3. Извините — я дал вам неправильный код. switch-to-stable.php должен быть включен domain.com , чтобы иметь возможность установить cookie, даже если поддомен beta находится не в том же домене. Также, если вы используете cookie на domain.com он виден для всех поддоменов.