【问题标题】:Redirect based on input values in PHP?基于PHP中的输入值重定向?
【发布时间】:2015-10-03 08:52:02
【问题描述】:

我有两个输入,一个名为 name,另一个名为 pass。 我想做类似下面的伪代码:

IF name="NAME1" AND pass="PASS1" THEN REDIRECT TO profil.php

【问题讨论】:

  • 请注意,作为一项安全功能,这是一个坏主意。任何人只需在浏览器中输入profil.php 的地址并在不知道namepass 的正确值的情况下访问它。

标签: php redirect if-statement input


【解决方案1】:

我有 2 个输入,一个名为:“name”,另一个:“pass”。

使用POST/GET or SESSIONS 获取字段,然后使用header(); 进行重定向。

一个例子:

<form method = "POST" action = "">
Name:<input type = "text" name = "name">
Pass:<input type = "text" name = "pass">
<input type = "submit" name = "sub" value = "submit">
</form>

重定向:

<?php
if(isset($_POST['sub'])){
$name = $_POST['name'];
$pass = $_POST['pass'];

if($name === 'NAME1' AND $pass === 'PASS1'){
header("Location:profil.php");
}else
echo "Credentials not matched.";
}
?>

请记住,header() 必须在任何其他输出之前调用(即,在任何 HTML 代码或任何 echo 之前)。

PHP Manual: header

【讨论】:

  • 正如这段代码所示,header 调用出现在实际内容之后。这是行不通的。也许它们是两个独立的代码块?然后,您可以在它们之间用 HTML 注释分隔它们 (&lt;!-- --&gt;)。
  • @Anders 在发布之前进行了尝试和测试,效果很好。如果您能想到更好地编辑它,请成为我的客人! ^_^
  • header 的棘手之处在于它们可能工作得很好,然后突然停止工作,除非你正确使用它们。为您的答案添加了一点警告(当然,如果您愿意,您可以恢复它)。谢谢!
猜你喜欢
  • 2023-03-23
  • 2011-06-23
  • 2011-10-25
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 2015-09-01
相关资源
最近更新 更多