[英]php dynamic url redirection using header location and sessions
我試圖找出最好的方法來完成此操作,並且可能完全是在思考它。
我需要用戶提交電子郵件才能獲取頁面內容。
他們此時無需確認即可提交任何電子郵件。 因此,我創建了一個帶有電子郵件字段的簡單表單,然后使用“ POST”將其提交到我的流程頁面
但是,我需要在提交電子郵件后將它們重定向到動態網址。
因此,我希望能夠將一個變量放在要重定向到的頁面的網址中,如下所示:
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");
我做錯了什么?
該網址必須是動態的,因為我是通過最終用戶將要訪問的cms創建頁面的。 我只希望他們在進入每個唯一頁面之前必須先提交電子郵件。
您的調試語句是問題所在:
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()
語句之后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.