На моем сайте формы вводятся через AJAX и проверяются с помощью sessionid.Я знаю, что это не оптимально, но это работает для нас.Если у реферера нет идентификатора сеанса, он перенаправляется обратно на «другую страницу».Мне нужно разрешить некоторым внешним URL-адресам напрямую обращаться к форме.мы устанавливаем sessionid на странице со ссылкой на форму.
Вот что мы имеем сейчас на странице формы:
<?php
$code = $_GET['sessionid'];
if(strcmp( $code , 'XXXXX' ) != 0) {
header("Location: http://www.domain.com/anotherpage.php");
}
?>
Мне нужно разрешить некоторым внешним доменам прямой доступ кстраница формы, и у меня возникают проблемы с этим: (я помещаю его выше тега head на странице формы)
<?php
$code = $_GET['sessionid'];
$referrer = $_SERVER['HTTP_REFERER'];
if(strcmp( $code , 'XXXXX' ) !=0) {
header("Location: http://www.domain.com/anotherpage.php");
} else {
if (preg_match("/site1.com/",$referrer)) {
header('Location: http://www.domain.com/desiredpage.php');
}
}
?>
это все еще возвращает меня к "anotherpage.php", какие-либо идеи?
******** РЕДАКТ. ******* спасибо за помощь, это работает и я просил.Теперь я вижу, что я спросил, не совсем правильно.Это добавляет URL с = sessionid? = XXXXX.Это не проблема на моем сайте, потому что я загружаю контент с помощью .jquery .load, чтобы URL не менялся.Я не хочу, чтобы sessionid был виден, и теперь это так.Могу ли я а) как-то «обрезать» URL-адрес или б) разделить две функции, чтобы они были исключительными?