查看用户名变量是否为空,如果为空,请不要转到page2.php

查看用户名变量是否为空,如果为空,请不要转到page2.php,php,html,Php,Html,我正在创建一个名为meekochat的实时聊天网站。用户在page1.php上输入自己的名字,然后被发送到page2.php开始与其他人交谈。我希望这样做,如果username变量为空,那么用户就不会被带到page2.php <!DOCTYPE html> <?php session_start(); ?> <html lang="en-US"> <head> <title>meekochat</title> &l

我正在创建一个名为meekochat的实时聊天网站。用户在page1.php上输入自己的名字,然后被发送到page2.php开始与其他人交谈。我希望这样做,如果username变量为空,那么用户就不会被带到page2.php

<!DOCTYPE html>
<?php 

session_start();
?>

<html lang="en-US">

<head>

<title>meekochat</title>
<link rel="icon" href="icon.png">
<link rel="stylesheet" type="text/css" href="style.css">
<?php 


 ?>


 </head>

 <body id="body">

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

 <input type="username" id="username" name="username" placeholder="Username">
 <input type="submit" id="submit" name="submit" value="Submit">


</form>

</body>


</html>
这是我的page2.php代码

<!DOCTYPE html>
<?php 
session_start();

?>

<html lang="en-US">

<head>

<title>meekochat</title>
<link rel="icon" href="icon.png">
<link rel="stylesheet" type="text/css" href="style.css">
<?php 

if(isset($_POST["submit"])) {

$_SESSION["username"] = $_POST["username"];

}

?>

</head>

<body id="body">

Your username is <?php echo $_SESSION["username"]; ?>

</body>


</html>

您可以在PHP或Javascript中重定向

PHP 如果您想要一种PHP方式,可以设置标题

header('Location: www.example.com');
警告:只有在未向客户端发送任何其他信息时,才能使用标题

请记住,必须在调用任何实际输出之前调用标头 通过普通HTML标记、文件中的空行或PHP发送。 使用include或require读取代码是非常常见的错误, 函数或其他文件访问函数,并具有空格或空 在调用标头之前输出的行。同样的问题 使用单个PHP/HTML文件时存在

Javascript 您可以使用以下命令重定向浏览器:

window.location = "www.example.com";
这可以在任何时候完成


来源:

在page2.php上,您应该检查用户名是否也是空的,如果是空的,您应该使用headerLocation或带有window的echo标记重定向到page1。location=您的url


我建议将auth保存在page1.php中。我为用户名输入添加了一些验证和必需属性

meekochat
不使用Javascript的一种方法是制作另一个php文件来验证:

//verify.php

<?php
    if(isset($_POST["username"])){
        include("somepath/file2.php");
        }
    else{
        include("somepath/file1.php")
        }
?>
或者更简单的方法是,在HTML中添加一个必需的属性

<input type="username" id="username" name="username" placeholder="Username" required>

其中一个解决方案是在发送请求之前用Javascript检查值。我怎么做?你的实际问题是什么?仅仅告诉我们你想要什么并不是一个恰当的问题。此外,如果用户没有填写该字段,您是否希望用户不能首先提交此表单?或者如果您希望在接收端检查此字段,然后重定向回第一页?这也是两件非常不同的事情。检查客户端和服务器端。即使这样,也有办法解决这个问题,但是尽你所能在两方面都大大减少了机会为什么不制作另一个php文件来检查名称呢?因此,page1.php中的表单操作转到auth.php,然后由auth.php决定名称是否存在,然后重定向到相应的页面。我不推荐w3schools—充满了糟糕的做法,MDN在最近几天是一个更好的资源:谢谢。我有必需的属性,但我也将使用verify.php,因为有人可以点击空格键一次并通过它。因为一个空格意味着输入框在技术上不是空的,所以用户可以不带名字进入page2.php。
<input type="username" id="username" name="username" placeholder="Username" required>