PHP“标题”与HTML“动作”相同吗?

时间:2016-08-02 08:28:11

标签: php html

这是我几天来的问题。当我做的时候

<form action = "something.php" method="post">

它始终有效,但是当我尝试在PHP中使用标题进行切换时,我遇到了一些问题。我要做的是检查输入数据是否写入,如果没有,则回显某个短语,但如果所有内容都写入,则登录。

<?php 
$usernameErr = $passwordErr = "";

if (isset($_POST['submit'])) {
if(empty($_POST["uid"])){
    $usernameErr = "Username required";
};

if(empty($_POST["pwd"])){
    $passwordErr = "Password required";
} ;
if(!empty($_POST["uid"]) and !empty($_POST["pwd"])) {
    header("Location: login.php");
};
};  

?>

<form name="frm" method="post">
<input type = "text" name = "uid"  placeholder = "Username"; >
<?php echo         $usernameErr; ?> <br>
<input type = "password" name = "pwd"  placeholder = "Password" ; >
<?php echo $passwordErr?> <br>
<input name="submit" type="submit" id="submit" onclick="action()" value="submit" >
</form>
<?php

if (isset($_SESSION['id'])){
echo $_SESSION['id'],"  ", "You've succesfully logged in";
} else {
    echo "youre not logged in";
}
?>

1 个答案:

答案 0 :(得分:0)

没有

  • 表单action属性包含网页将您重定向到表单后重定向到的URL。 (MDN Docs - Form
  • php header()函数向客户端浏览器发送headerheader("Location: http://www.example.com/");还会将HTTP状态代码设置为302 - Redirect,这会导致浏览器重定向到标头中添加的新位置。

注意:关于在PHP中重定向:https://stackoverflow.com/a/768472/4257747

tl; dr:请记住在任何打印之前使用header()。添加die()标题后,立即使用exit()Location

作为最后一点。您的代码虽然不是很好,但应该最终重定向到login.php。您遇到的问题究竟是什么? 如果要显示“已登录”消息,则应将其显示在login.php文件中。