【发布时间】:2012-02-07 00:01:07
【问题描述】:
我正试图找出最好的方法来做到这一点,但可能完全是想多了。
我需要用户在获取页面内容之前提交他们的电子邮件。
此时他们不需要确认,只需提交任何电子邮件即可。所以我创建了一个带有电子邮件字段的简单表单,并使用“POST”将其提交到我的流程页面
但是,我需要在提交电子邮件后将他们重定向到动态网址。
所以我希望能够在我想要重定向到的页面的 url 中放置一个变量,如下所示:
http://myurl.com/provide_email.php?url=newpage.html
在页面 provide_email.php 我放了:
<?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);
?>
但是,每次我提交页面时,它都不会重定向到带有 $dynamicurl 变量的 url。
我也试过了:
header("Location: http://$host$uri/$extra/$dynamicurl");
我做错了什么?
url 必须是动态的,因为我从 cms 创建页面,最终用户将访问。我只是希望他们必须先提交一封电子邮件,然后才能访问每个独特的页面。
【问题讨论】:
-
$dynamicurl = $_GET['url'];为什么?您试图将数据保存到会话变量中,为什么要尝试从查询中获取某些内容?session_register自 php 5.3 起已弃用 -
您测试过
http://$host$uri/$extra/".$dynamicurl的实际结果吗? -
$dynamicurl = $_GET['url'];这句话有什么用。我没有发现从查询字符串中传递了一些东西在 GET 数组中