Php POST未定义变量,但请求有效

Php POST未定义变量,但请求有效,php,html,mysql,Php,Html,Mysql,我收到以下所有变量的错误消息undefined variable: if(isset($_POST['nome'])){ $name = $_POST['nome']; } if(isset($_POST['email'])){ $email = $_POST['email']; } if(isset($_POST['password'])){ $password = $_POST['password']; } 如果我使用REQUEST而不是POST,它会工作

我收到以下所有变量的错误消息undefined variable:

if(isset($_POST['nome'])){
    $name = $_POST['nome'];
}

if(isset($_POST['email'])){
    $email = $_POST['email']; 
}


if(isset($_POST['password'])){
    $password = $_POST['password']; 
}
如果我使用REQUEST而不是POST,它会工作,但是我读到,对于用户表单使用POST更好

以下是我的全部php代码:

<?php
 define('DB_HOST', 'localhost');
 define('DB_NAME', 'class_rate');
 define('DB_USER', 'root');
 define('DB_PASSWORD', 'vB42lL&69_r');

 $con = mysqli_connect(DB_HOST, DB_USER);
    if(!$con){
        die("Databese Connection Failed" . mysqli_error($con));
    }
 $db = mysqli_select_db($con, DB_NAME);
    if(!$db){
        die("Databese Selection Failed" . mysqli_error($con));
    }



   function NewUser($con, $db){

            if(isset($_POST['nome'])){
        $name = $_POST['nome'];
    }

    if(isset($_POST['email'])){
        $email = $_POST['email']; 
    }


    if(isset($_POST['password'])){
       $password = $_POST['password']; 
    }

    $query = "INSERT INTO users (nome_user,email_user,passw_user) VALUES ('$name','$email','$password')"; 
     $data = mysqli_query($con, $query)or die(mysqli_error($con)); 
    if($data) { 
        echo "YOUR REGISTRATION IS COMPLETED..."; 
    }
 }

function SignUp($con,$db){
     if (!empty($_POST['email'])) {
      $query = mysqli_query("SELECT * FROM users WHERE email_user = '$_POST[email]' AND passw_user = '$_POST[password]'") or die(mysqli_error($con));

       if(!$row = mysqli_fetch_array($query) or die(mysqli_error($con)) ){
            NewUser($con,$db);
       }
}

   else{
      echo "Email already registered!";
    }
}

   if($_SERVER['REQUEST_METHOD'] == "POST"){
      SignUp($con,$db);
   }


 ?>

正如所有人所说,您的php脚本对于所有类型的攻击都是完全易受攻击的。请使用Php PDO&不要避免编码安全性。
关于你的问题:

改变这个

<button type='submit' ></button>


确保所有这些内部表单标签。 当使用一些java脚本时,按钮是首选的,但在您的代码中我没有看到任何java脚本,所以请避免使用它。
希望它能有所帮助。

正如所有php脚本所说,它完全容易受到各种类型的攻击。请使用Php PDO&不要避免编码安全性。 关于你的问题:

改变这个

<button type='submit' ></button>


确保所有这些内部表单标签。 当使用一些java脚本时,按钮是首选的,但在您的代码中我没有看到任何java脚本,所以请避免使用它。
希望有帮助。

$query=mysqli\u query("选择…
有一件事是不会触发的。永远不要存储纯文本密码!PHP提供并请使用它们。如果您使用的是5.5之前的PHP版本。请确保在散列之前在这些密码上使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。您的脚本可能会受到攻击。请查看w发生了这种情况。偶数。请改用。您遇到了一些间距问题,这将破坏代码。应该是
id=“nome”name=“nome”
这些间距问题在几行上。
var\u转储($\u请求);
var\u转储($\u POST);
可能会提示您发生了什么。
$query=mysqli\u query("选择…
有一件事是不会触发的。永远不要存储纯文本密码!PHP提供并请使用它们。如果您使用的是5.5之前的PHP版本。请确保在散列之前在这些密码上使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。您的脚本可能会受到攻击。请查看w发生了这种情况。偶数。请改用。您遇到了一些间距问题,这将破坏代码。应该是
id=“nome”name=“nome”
这些间距问题在几行上。
var\u转储($\u请求);
var\u转储($\u POST)
可能会提示您发生了什么。您是否在表单中使用java脚本或任何验证?不,我应该使用吗?在您的表单中更改密码名称=通过,电子邮件名称=电子邮件。\n.在php脚本中更改相同的内容并查看结果。在您的表单中更改密码名称=通过,电子邮件名称=电子邮件。\n.在php脚本中更改相同的内容并查看结果。在php.In文件中,还要检查post_max_size定义为哪个值。它应该是8M(注意M)。您是否在表单中使用java脚本或任何验证?否,我应该使用吗?在您的表单中更改密码名称=通过,电子邮件名称=电子邮件。\n.在php脚本中更改相同的内容并查看结果。在您的表单中更改密码名称=通过,电子邮件名称=电子邮件。\n.在php脚本中更改相同的内容并查看结果。在您的php.in文件中,还检查post\u max\u size是否为def它应该是8M(注意M)。
 <input type='submit' value='submit' />