PHP表单错误somwhere $ _POST ['SUBMIT']

时间:2016-03-26 13:33:42

标签: php html mysql forms debugging

我不知道问题出在哪里,你能帮助我吗?我无法调试这个。 我试图在任何地方发出回声,看看问题出在哪里,并在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>

3 个答案:

答案 0 :(得分:0)

请注意您的HTML中没有提到输入名称=“SUBMIT”。

改变你的:

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

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

希望这有帮助!

答案 1 :(得分:0)

首先,找不到$_POST['SUBMIT'],因为您的表单没有name属性。

您需要指定它:

<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'])) {

答案 2 :(得分:-1)

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

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

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