2

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

我想创建一个 html URL 列表,当单击其中任何一个时,它会将用户发送到一个中间页面,该页面询问用户是否同意条款和条件。如果他们这样做,他们将被转移到与他们单击的那个链接相对应的那个页面。与此图类似。 在此处输入图像描述

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。

4

6 回答 6

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>
于 2013-02-05T10:03:00.527 回答
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:目标.php

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

编辑:编辑显示 T&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>
于 2013-02-05T10:04:22.393 回答
1

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

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

于 2013-02-05T10:01:13.427 回答
0

一个使用很多的方法是这样的:

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

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

之后,这取决于您的要求。您想要安全还是确保用户已接受条款和条件或其他什么?然后你应该像这样在每个页面上执行额外的验证:

链接 1 -> 第 1 页(检查用户是否已经接受了条款?否?那么:) -> intermediary?proceedTo=page1 ->(要求用户接受!接受?然后:) -> 第 1 页(用户有现在接受条款了吗?是吗?然后:) -> 留在这里...

这种方法的优点是:

  1. 您很确定即使用户绕过了中间页面并直接前往最终目的地 - (s)他也会被扔回中间页面(就像您正在验证用户一样)。
  2. 您不需要创建类似 的链接href="intermediary.php?next=abc.php",而只需使用href="abc.php"将自行处理重定向的简单链接。
于 2013-02-05T09:59:26.467 回答
0

第一页:

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

中介页面:

<?php

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

?>
于 2013-02-05T10:00:04.520 回答
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注意:在使用之前尝试保护变量。

于 2013-02-05T10:08:30.493 回答