php динамическое перенаправление URL с использованием местоположения заголовка и сессий - PullRequest
0 голосов
/ 07 февраля 2012

Я пытаюсь найти лучший способ сделать это и, возможно, полностью обдумать это.

Мне нужно, чтобы пользователи отправили свои электронные письма, прежде чем они смогут получить содержимое страницы.

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

Однако мне нужно, чтобы они были перенаправлены на динамический URL после отправки их электронного письма.

Итак, я хочу иметь возможность поместить переменную в URL-адрес на страницу, на которую я хочу перенаправить:

<?php
session_start();

session_register('url');

$_SESSION['url'] = $_GET['url'];

?>

и выведите результат на той же странице (только для проверки).Итак, на той же странице он показывает:

newpage.html

Затем на своей странице process.php я добавляю:

<?php

session_start();

$dynamicurl = $_GET['url'];

if(empty($_GET))
    echo "No GET variables";
else
    print_r($_GET); 


$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'folder1/folder2/';
header("Location: http://$host$uri/$extra/".$dynamicurl);


?>

Однако каждый раз, когда я отправляю страницу, она не будет перенаправляться наURL с переменной $ dynamicurl.

Я также пытался:

header("Location: http://$host$uri/$extra/$dynamicurl");

Что я делаю не так?

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

1 Ответ

0 голосов
/ 07 февраля 2012

Ваш оператор отладки является проблемой:

if(empty($_GET))
    echo "No GET variables";
else
    print_r($_GET); 

начнет вывод, поэтому следующее header() не может быть выполнено.Я уверен, что ваш журнал полон warning: Cannot set header, output already started

Используйте

if(empty($_GET))
    $message "No GET variables";
else
    $message=var_export($_GET,true); 

и

echo $message;

ПОСЛЕ оператора header().

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