Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建一个链接,将用户发送到另一个页面,然后将该页面转移到与该链接关联的另一个页面?_Php_Html - Fatal编程技术网

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

Php 如何创建一个链接,将用户发送到另一个页面,然后将该页面转移到与该链接关联的另一个页面?,php,html,Php,Html,如何创建一个链接,将用户发送到另一个页面,然后将该页面转移到与该链接关联的另一个页面 我想创建一个html URL列表,当单击其中任何一个URL时,它会将用户发送到中间页面,询问用户是否同意条款和条件。如果他们这样做了,他们就会转到与他们单击的链接对应的页面。与此图类似。 我不知道它叫什么过程。我打算使用HTML和PHP。一种经常使用的方法如下: intermediary-page.php?proceedTo=some/url/to-go-next.php 在intermediate-pag

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

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


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

一种经常使用的方法如下:

intermediary-page.php?proceedTo=some/url/to-go-next.php
在intermediate-page.html或php或任何页面上执行必要的验证,并将用户重定向到proceedTo GET variable中可用的url

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

链接1->第1页检查用户是否已经接受条款?不然后:-> 中间人?proceedTo=page1->要求用户接受!认可的?然后:->第1页用户 你现在接受条件了吗?对然后:->呆在这里

这种方法的优点是:

您可以非常确定,即使用户绕过了中间页面,直接前往最终目的地,她也会被扔回中间页面,就好像您正在验证用户一样。 您不需要创建像href=intermediate.php?next=abc.php这样的链接,只需使用简单的href=abc.php,它将自行处理重定向。
经常使用的方法如下:

intermediary-page.php?proceedTo=some/url/to-go-next.php
在intermediate-page.html或php或任何页面上执行必要的验证,并将用户重定向到proceedTo GET variable中可用的url

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

链接1->第1页检查用户是否已经接受条款?不然后:-> 中间人?proceedTo=page1->要求用户接受!认可的?然后:->第1页用户 你现在接受条件了吗?对然后:->呆在这里

这种方法的优点是:

您可以非常确定,即使用户绕过了中间页面,直接前往最终目的地,她也会被扔回中间页面,就好像您正在验证用户一样。 您不需要创建像href=intermediate.php?next=abc.php这样的链接,只需使用简单的href=abc.php,它将自行处理重定向。 第一页:

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

<?php

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

?>
第一页:

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

<?php

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

?>

您可以在URL中获取用户变量。乙二醇


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

您可以在URL中获取用户变量。乙二醇

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

第一个HTML页面

intermediate.php

第一个HTML页面

intermediate.php

HTML

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
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>
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&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">
<p>Your T&C here</p>
<input type="checkbox" name="agree" value="agreed" />
<input type="submit" value="go" />
</form>
<?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>
HTML

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
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>
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&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">
<p>Your T&C here</p>
<input type="checkbox" name="agree" value="agreed" />
<input type="submit" value="go" />
</form>
<?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>
您的HTML链接:

<a href="/links.php?page=1">Link 1</a>
<a href="/links.php?page=2">Link 1</a>
其他选择是:

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

header('Location: ' . $pages[$page]);
注意:在使用$page变量之前,请尝试保护它。

您的HTML链接:

<a href="/links.php?page=1">Link 1</a>
<a href="/links.php?page=2">Link 1</a>
其他选择是:

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

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

注意:在使用$page变量之前,请尝试保护它。

不要写我知道我可以用谷歌搜索它。这里的人会讨厌这一点,会说你没有试着为自己找出答案。提示:列出这些页面,给每个页面一个ID,在URL中传递该ID,在中间页面上检索它作为GET参数,然后在提交和接受带有条款的表单后重定向到真实的URL。不要写我知道我可以用谷歌搜索它。这里的人会讨厌这一点,会说你没有试着为自己找出答案。提示:列出这些页面,给每个页面一个ID,在URL中传递该ID,在中间页面上检索它作为GET参数,然后在提交和接受带有条款的表单后重定向到真实的URL。好吧,这不是很安全,假设您实际上是以p的形式传递重定向URL

参数,因此,如果要将重定向URL作为参数传递,则可以忽略接受术语。如果您关心安全性,那么在每个目标页面中嵌入身份验证/用户验证。担心URL是否可见与模糊性相关。这不是很安全,因为您实际上是将重定向URL作为一个参数传递,因此,如果您将重定向URL作为一个参数传递,则术语接受可以绕过编辑并不重要。如果您关心安全性,那么在每个目标页面中嵌入身份验证/用户验证。担心URL是否可见与模糊性的安全性有关。好吧,这不是很安全,因为您实际上是将重定向URL作为参数传递的,因此可以绕过术语接受这只是一个简单的示例,如果你想让它更安全,你可以为此编写一些逻辑…他可以在url中加入'somepage',然后函数将其转换为'somepage.php',可以做很多事情来改善这一点,这只是一个简单的例子…好吧,这不是很安全,因为你实际上是在传递重定向url作为参数,因此,可以绕过术语接受这只是一个简单的例子,如果你想使其安全,你可以为此编写一些逻辑…他可以在url中放入“somepage”,然后函数将其转换为“somepage.php”,可以做很多事情使其更好,同样,这只是一个简单的例子……这是如何将用户重定向到目标页面的?@xFortyFourx您否决了它吗?你不能只是重定向。阅读OP的帖子。他需要人们同意这些条款和条件。所以点击那个链接,你就在正确的页面上了。很抱歉,我的疏忽:我建议不要使用这种方法。首先,您需要处理所有这些非语义链接。第二,是什么禁止用户直接访问page1.html?这如何将用户重定向到目标页面?@xFortyFourx您是否否决了它?你不能只是重定向。阅读OP的帖子。他需要人们同意这些条款和条件。所以点击那个链接,你就在正确的页面上了。很抱歉,我的疏忽:我建议不要使用这种方法。首先,您需要处理所有这些非语义链接。第二,是什么禁止用户直接访问page1.html?我尝试了上面的方法,但对我无效。需要帮忙吗?它没有转移到目标目的地,它的剩余部分在中间。php@PannyMonium是的,它只会打印到下一页的链接,您还想要什么?是否要在中间页面停留几秒钟,然后自动重定向?我希望在选中“条款和条件”框并单击“转到”按钮时,它会将用户带到基于上一页的目标页面。您好。我是按你的方式做的。它现在正在重定向。谢谢在上面的示例中,问题是在重定向target.php之后。它把我带到了URL——可以在inter.php中找到。如何防止target.php将我重定向到inter.php中的find?@PannyMonium它就在那里,$\u SESSION['prev\u link']=http://source_url;. 把它换成你想要的。此外,target.php正在重定向,因为用户尚未同意t&C。我尝试了上述方法,但对我无效。需要帮忙吗?它没有转移到目标目的地,它的剩余部分在中间。php@PannyMonium是的,它只会打印到下一页的链接,您还想要什么?是否要在中间页面停留几秒钟,然后自动重定向?我希望在选中“条款和条件”框并单击“转到”按钮时,它会将用户带到基于上一页的目标页面。您好。我是按你的方式做的。它现在正在重定向。谢谢在上面的示例中,问题是在重定向target.php之后。它把我带到了URL——可以在inter.php中找到。如何防止target.php将我重定向到inter.php中的find?@PannyMonium它就在那里,$\u SESSION['prev\u link']=http://source_url;. 把它换成你想要的。此外,target.php正在重定向,因为用户尚未同意t&C。