Предполагаемое перенаправление URL при отправке формы - PullRequest
0 голосов
/ 19 августа 2011

Я работаю на сайте WordPress, на котором есть статическая страница сжатия с плагином «SplashScreen».

Пользователь может выбрать один из двух вариантов:

A.) Введите свой адрес электронной почтыв форме для перехода на сайт.

B.) Нажмите на ссылку, расположенную под полем, которая позволяет им обойтись без предоставления своей электронной почты.

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

Я хочу, чтобы они были перенаправлены непосредственно на эту страницу.предполагаемая страница после заполнения формы или нажав на ссылку обхода.Я искал повсюду это, и все, что я могу найти, это информация о том, как перенаправить пользователя обратно на его страницу после входа в систему. Я знаю, как это сделать, это немного сложнее.

Сжатиеpage - это простая статическая HTML-страница, которая использует Javascript для установки файлов cookie, поэтому страница отображается только один раз:

function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
 }

function setsplash() {
var exp = new Date();
var expDays = 365;
exp.setTime(exp.getTime() + (expDays * 24 * 60 * 60 * 1000));
setCookie("splash", "1", exp, "/");
}

И:

<input class="sub-btn-join" type="submit" value="" onclick="setsplash()">

Я открыт для любых работ, ноJavascript или JQuery было бы идеально.Надеюсь, один из вас может помочь мне в этом.Я потратил много времени на это.

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Это можно сделать в три этапа:

  1. Временно сохранить запрос URL-адреса пользователя в том же файле cookie.Запрошенный URL-адрес можно получить с помощью PHP http://$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; или JavaScript (document.URL).
  2. Обработайте проверку всплеска, как вы уже это делали, с помощью файла cookie "всплеск".
  3. Еслиисходный URL-адрес не является домашней страницей / заставкой, снова используйте PHP для перенаправления на него.

    <?php
        header( 'Location: http://www.example.com/the_page_we_first_wanted.html' ) ;
    ?>
    
0 голосов
/ 19 августа 2011

Хотя я не вижу в вашем вопросе кода, который куда-то перенаправит пользователя, его можно перенаправить на нужную страницу, отправив заголовок redirect с новым Location.Исходное местоположение может быть прочитано из $ _SERVER ['HTTP_HOST'] и $ _SERVER ['REQUEST_URI'].Они должны быть размещены на странице ссылок / целевой страницы перенаправления, что может означать, что вам придется отредактировать SplashScreen-Plugin, чтобы отправить это:

header('Location: '.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);

Помните, что заголовки не могут быть отправлены, когда какой-либо другой контент уже был отправлен.

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