如何创建一个链接,将用户发送到另一个页面,然后转移到与该链接相关联的另一个页面?
我想创建一个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。
答案 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&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&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;留在这儿......
这种方法的优点是:
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
变量。