Php 将错误获取为";未定义变量";及;未定义索引“;

Php 将错误获取为";未定义变量";及;未定义索引“;,php,Php,Rifkan,您需要概述为什么这些错误不是自解释的,以及为什么。这些错误在普通英语中的意思是: “未定义变量”表示您正在使用未定义的变量。除了说未初始化的变量将不具有您期望的值(它不存在)之外,更明确的说法是更困难的 “未定义索引”表示您正在使用一个同样尚未初始化的数组项 在这两种情况下,原因都是您需要在使用变量或数组项之前对其进行初始化 从第7行的第一个开始,$email,找出不设置$email的情况。如果: 您在表单“post”操作之外访问页面 已将不包含“电子邮件”表单元素的表单发布到

Rifkan,您需要概述为什么这些错误不是自解释的,以及为什么。这些错误在普通英语中的意思是:

  • “未定义变量”表示您正在使用未定义的变量。除了说未初始化的变量将不具有您期望的值(它不存在)之外,更明确的说法是更困难的
  • “未定义索引”表示您正在使用一个同样尚未初始化的数组项
在这两种情况下,原因都是您需要在使用变量或数组项之前对其进行初始化

从第7行的第一个开始,
$email
,找出不设置
$email
的情况。如果:

  • 您在表单“post”操作之外访问页面
  • 已将不包含“电子邮件”表单元素的表单发布到此页面
  • 如果整个页面的目的是创建一个用户,那么最好将整个逻辑打包以测试“post”方法,因为如果用户不尝试注册,您不希望运行任何逻辑

    请注意,您还需要考虑一些安全错误:

    • 一个惊人的SQL注入漏洞
    • 以明文形式存储的密码,使用户会受到二次密码重用攻击
    • 不检查用户输入的密码是否正确


    添加为wiki,因为问题实际上是重复的,如图所示,只是添加了一些内容来帮助OP解决问题。

    @RajdeepPaul我读了那篇文章,但没有任何效果。我提出了问题。让我们从第一个未定义的$email错误开始,
    $\u post['email']
    未设置。检查email输入字段是否有一个名为
    email
    @RajdeepPaul yah的名称,你可以提供你的表单代码吗?@EdvinTenovimas我在Android Studio中使用它
    <?php
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['email'])) {$email = $_POST['email'];}
    if (isset($_POST['password'])) {$pass = $_POST['password'];}
    require "init.php";
    
    $query = "select * from userinfo where email like '".$email."";
    $result = mysqli_query($con,$query);
    
    if(mysqli_num_rows($result)>0)
    {
    
    $response = array();
    $code = "reg_false";
    $message = "User Already Exist !";
    array_push($response,array("code"=>$code,"message"=>$message));
    echo json_encode(array("server_response"=>$response));
    
    }
       else
        {
        $query = "insert into userinfo     values('".$name."','".$email."','".$pass."');";
    $result = mysqli_query($con,$query);
    
    if(!$result)
    {
        $response = array();
        $code = "reg_false";
        $message = "Registration Failed, Try Again!";
        array_push($response,array("code"=>$code,"message"=>$message));
        echo json_encode(array("server_response"=>$response));
    }
    else
    {
        $response = array();
        $code = "reg_true";
        $message = "Registration Success, Login to Continue!";
        array_push($response,array("code"=>$code,"message"=>$message));
        echo json_encode(array("server_response"=>$response));
      } 
    }
    mysqli_close($con);
    ?>