PHP表单错误somhere$_POST[';提交';]


PHP form error somwhere $_POST['SUBMIT']

我不知道哪里出了问题,你能帮我吗?我无法调试此。我试着在各处放置回声,看看问题出在哪里,但它在if(isset($_POST['SUBMIT'])) { 处停止了

以下是整个php:

<?php
$conn = mysqli_connect($IP, "pavip", "", "c9") or die("Kapcsolatot nem sikerult letrehozni!");
$error = "Here's the problem: ";
$err = false;
$name = $_POST['name'];
$password = $_POST['pass'];
$email = $_POST['email'];
if(isset($_POST['SUBMIT'])) {
    echo $name;
    if(isset($_POST['email'])){
        if($_POST['name'] != "") {
            if($_POST['pass'] == $_POST['pass2'] AND strlen($_POST['pass']) < 6) {
                if($_POST['email'] != "") {
                    $name = $_POST['name'];
                    $password = $_POST['pass'];
                    $email = $_POST['email'];
                    $sql = "INSERT INTO user (username, password, email)
                    VALUES ('$name, '$password','$email)";
                }else {
                    $error .= "No email";
                    $err = true;
                }
            }else {
                $error .= "Password too short or wrong ujrairas ";
                $err = true;
            }
        }else {
            $error .= "No name ";
            $err = true;
        }
    }else {
    }
}
if($err == true){ echo '<script type="text/javascript">alert("' . $error . '"); </script>';}
?>

这是我制作的表格:

<form action="index.php" method="Post" class="register">
                <input type="text" name="name" placeholder="Name(Can be nick!)">
                <input type="pasword" name="pass" placeholder="Password">
                <input type="password" name="pass2" placeholder="Password again">
                <input type="text" name="email" placeholder="Email address">
                <input type="submit" value="Register">
            </form>

首先,由于表单没有name属性,因此找不到$_POST['SUBMIT']

您需要指定它:

<input name="SUBMIT" type="submit" value="Register"/>

其次,您将错过'$email:上的一个报价

$sql = "INSERT INTO user (username, password, email)
                VALUES ('$name, '$password','$email')";

第三,应该防止使用mysqli_real_escape_string:进行MySQL注入

$name = mysqli_real_escape_string($conn, $_POST['name']);
$password = mysqli_real_escape_string($conn, $_POST['pass']);
$email = mysqli_real_escape_string($conn, $_POST['email']);

第四,您可以考虑使用empty()来检查空字段,例如:

if(!empty($_POST['name'])) {

请注意,HTML中的任何地方都没有提到输入name="SUBMIT"。

更改您的:

<input type="submit" value="Register">

<input type="submit" value="Register" name="SUBMIT" />

希望这能有所帮助!

您没有名为"提交"的提交按钮如果你想以这种方式使用它,你需要添加至少

<input type="submit" name="SUBMIT">

最好将提交直接路由到不同的控制器功能注意,您也可以使用if($_POST)afaik