如何创建将用户发送到另一个页面的链接,然后将该页面转移到与该链接相关联的另一个页面?

时间:2013-02-05 09:53:28

标签: php html

如何创建一个链接,将用户发送到另一个页面,然后转移到与该链接相关联的另一个页面?

我想创建一个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。

6 个答案:

答案 0 :(得分: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>

intermediary.php

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

答案 1 :(得分:1)

您可以在URL中使用GET变量。例如http://www.mysite.com/intermediary-page?page=page1

因此,这将链接到中介页面。然后在该页面上,您将看到一个查看URL page=page1.最后一部分的函数。然后该函数将用户重定向到正确的页面。

答案 2 :(得分: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&amp; C页面而不是直接重定向。

编辑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>

答案 3 :(得分:0)

一种经常使用的方法是这样的:

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

在intermed-page.html(或php或其他)页面上,您执行必要的验证并将用户重定向到proceedTo GET变量中可用的网址。

之后,这取决于您的要求。您想要安全性还是确保用户已接受条款和条件或其他内容?然后,您应该在每个页面上执行其他验证,如下所示:

  

链接1 - &gt;第1页(检查用户是否已经接受了这些条款?没有?然后:) - &gt;   中介?proceedTo = page1 - &gt; (要求用户接受!接受?然后:) - &gt;第1页(用户   现在接受了这些条款?是?然后:) - &gt;留在这儿......

这种方法的优点是:

  1. 您很确定即使用户绕过中间页并直接前往最终目的地 - (s)他也会被抛回中介页面(就像您在验证用户一样)。
  2. 您不需要创建href="intermediary.php?next=abc.php"之类的链接,而只需使用简单的href="abc.php"来处理重定向。

答案 4 :(得分:0)

第一页:

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

中介页面:

<?php

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

?>

答案 5 :(得分:0)

您的HTML链接:

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

您在links.php中的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变量。