2013-02-05 56 views
2

如何創建一個鏈接,將用戶發送到另一個頁面,然後轉到另一個與鏈接相關的頁面?如何創建一個鏈接,將用戶發送到另一個頁面,然後轉到另一個與鏈接相關的頁面?

我想創建一個html URL列表,當他們中的任何一個被點擊時,它將用戶發送到中間頁面,詢問用戶他們是否同意條款和條件。如果他們這樣做,他們會轉到與他們點擊的鏈接對應的頁面。與此圖相似。 enter image description here

Link 1 ==> Intermediary Page ==> Page 1, 
Link 2 ==> Intermediary Page ==> Page 2, 
Link 3 ==> Intermediary Page ==> Page 3, 
Link 4 ==> Intermediary Page ==> Page 4, 
Link 5 ==> Intermediary Page ==> Page 5 

我不知道它叫什麼過程。我打算使用HTML和PHP。

+0

不要寫我知道我可以谷歌它。這裏的人會討厭這個,並會說你沒有試圖找出你的自我。 – Will

+0

編輯。感謝:-) –

+0

提示:製作這些頁面的列表,爲每個頁面分配一個ID,在URL中傳遞該ID,在該中間頁面上將其作爲GET參數進行檢索,然後在提交包含條款的表單後重定向到一個真實的URL接受 –

回答

0

展示時使用的很多的一種方法是這樣的:

intermediary-page.php?proceedTo=some/url/to-go-next.php 

在中介-page.html中(或PHP或其他)頁面執行必要的驗證和用戶重定向到proceedTo提供的網址GET變量。

之後,它取決於您的要求。你想要安全嗎?還是確保用戶已經接受了條款和條件?然後,你應該像這樣在每個頁面上進行額外的驗證:???

鏈接1 - >第1頁(檢查用戶是否接受條款已沒有那麼:) - > 中介proceedTo = 1頁 - > (要求用戶接受認可呢:) - >第1頁(用戶 接受了條款,現在是那麼:) - >留在這兒......

這種方法的優點是!???

  1. 您是相當肯定,即使用戶已經繞過ŧ他中間頁面,直奔最後的目的地 - (s)他將被扔回到中間頁面(就像你在認證用戶一樣)。
  2. 您不需要創建鏈接,如href="intermediary.php?next=abc.php",而只需使用簡單的href="abc.php"即可自行處理重定向。
+0

好吧,這不是很安全,因爲你實際上將重定向URL作爲參數傳遞,因此可以繞過接受條款 –

+0

如果您將重定向URL作爲參數傳遞,則無關緊要。如果您關心安全性 - 然後在每個目標頁面中嵌入認證/用戶驗證。擔心URL的可見性與安全性有關。 – Oleg

0

第一頁:

<a href="intermediary.php?next_page=somepage.php">link to Intermediary Page</a> 

中介頁:在URL

<?php 

$next_page = $_REQUEST["next_page"]; 
header("Location: " . $next_page); 

?> 
+0

好吧,這不是非常安全,因爲你實際上是通過重定向URL作爲參數,所以接受條款可以繞過 –

+0

這只是一個簡單的例子,如果你想使它安全,你可以爲它寫一些邏輯目的... – Develoger

+0

他可以只是把'somepage'的網址,然後功能把它變成'somepage.php' – Will

2

第一個HTML頁面

<a href="intermediary.php?q=1">Link 1</a> 
<a href="intermediary.php?q=2">Link 2</a> 
<a href="intermediary.php?q=3">Link 3</a> 
<a href="intermediary.php?q=4">Link 4</a> 
<a href="intermediary.php?q=5">Link 5</a> 

中介。PHP

<?php 
$link = (int)$_GET["q"]; 
?> 
<a href="page<?=$link?>.html">I agree to the terms and conditions</a> 
+0

如何將用戶重定向到目標頁面? – KBN

+0

@xFortyFourx你是否贊成它?你不能只做一個重定向。閱讀OP的帖子。他需要人們「同意條款和條件」。因此,點擊該鏈接並點擊右側的頁面。 – Antony

+0

對不起,我的疏忽:) – KBN

1

HTML

<a href="inter.php?target=1">Some page</a> 
<a href="inter.php?target=2">Some page</a> 
<a href="inter.php?target=something_else">Some page</a> 

PHP:inter.php

<?php 
session_start(); 
$link='#'; 
switch($_GET['target']) { 
case 1: 
     $link = "http://nexttarget.com"; 
     break; 
case 2: 
     $link = "http://nexttarget2.com"; 
     break; 
case "something_else": 
     $link = "http://nexttarget3.com"; 
     break; 
} 
$_SESSION['prev_link'] = "http://source_url"; 
?> 

<form action="<?php echo $link; ?>" method="post"> 
<p>Your T&C here</p> 
<input type="checkbox" name="agree" value="agreed" /> 
<input type="submit" value="go" /> 
</form> 

PHP:target.php

<?php 
session_start(); 
if(!isset($_POST['agreed']) || $_POST['agreed'] != 'agreed'){ 
header("Location: ".$_SESSION['prev_link']); 
exit; 
} 
?> 
Your target page content here 

編輯:編輯,以示出了T &Ç頁面,而不是直接重定向。

編輯2現在中間頁面將在同意/單擊複選框後自動重定向。

PHP:inter.php

<?php 
session_start(); 

$link='#'; 
switch($_GET['target']) { 
    case 1: 
    $link = "http://nexttarget.com"; 
    break; 

    case 2: 
    $link = "http://nexttarget2.com"; 
    break; 

    case "something_else": 
    $link = "http://nexttarget3.com"; 
    break; 
} 
$_SESSION['prev_link'] = "http://source_url"; 
?> 

<form action="<?php echo $link; ?>" method="post" id="tc_form" > 
    <p>Your T&amp;C here</p> 
    <input type="checkbox" name="agree" value="agreed" onclick="javascript: this.parentNode.submit();" id="check" /> 
    <label for="check">I agree to the T&amp;C.</label> 
</form> 
+0

我試過上面的但它不適合我。請幫忙嗎?它沒有轉移到目標目的地它剩餘的在inter.php –

+0

@PannyMonium是的,它只會打印到下一頁的鏈接,你還想要什麼?你想留在中間頁面幾秒鐘,然後自動重定向? – KBN

+0

我希望在檢查條款和條件框並單擊「去」按鈕時,它會根據上一頁將用戶帶到目標頁面。 –

0

你的HTML鏈接:

<a href="/links.php?page=1">Link 1</a> 
<a href="/links.php?page=2">Link 1</a> 

你的PHP代碼中links.php

<?php 

$page = !empty($_REQUEST['page']) ? $_REQUEST['page'] : null; 

if (!empty($page)) { 

    switch ($page) { 

     case 1: 
      header('Location: abc.php'); 
      break; 

     case 2: 
      header('Location: xyz.php'); 
      break; 
    } 
} 

其他的選項是:

$pages[1] = 'abc.php'; 
$pages[2] = 'xyz.php'; 

header('Location: ' . $pages[$page]); 

注意:在使用變量之前,嘗試保護變量$page

相關問題