簡體   English   中英

使用標題位置和會話的PHP動態URL重定向

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM