PHP。未定义索引

PHP。未定义索引,php,mysql,Php,Mysql,以下是php连接代码: <?php $con=mysql_connect("127.0.0.1", "root", ""); mysql_select_db("society"); if(!$con) { echo "Failed to Connect to MySql".mysqli_connect_error(); } else { echo"success"; } $query="INSERT INTO users (fn

以下是php连接代码:

<?php 

  $con=mysql_connect("127.0.0.1", "root", ""); 
  mysql_select_db("society");
  if(!$con)
  {
    echo "Failed to Connect to MySql".mysqli_connect_error();
  }
  else
  {
    echo"success";
  } 

  $query="INSERT INTO users (fname, lname, email, password)
                      VALUES('".$_POST['fname']."','".$_POST['lname']."','".$_POST['email']."','".$_POST['password']."')"; 
  mysql_query($query,$con);

?> 
试试这个

<?php 

  $con=mysql_connect("127.0.0.1", "root", ""); 
  mysql_select_db("society");
  if(!$con)
  {
  echo "Failed to Connect to MySql".mysql_connect_error();
  }
 else
 {
 echo"success";
 } 
 if(isset($_POST['fname']) && isset($_POST['lname']) && isset($_POST['email'])) { 
 $query="INSERT INTO users (fname, lname, email, password)
                    VALUES('".$_POST['fname']."','".$_POST['lname']."','".$_POST['email']."','".$_POST['password']."')"; 
    mysql_query($query,$con);
    }

检查您在查询中使用的帖子是否有值。如果返回未定义的_索引,则是因为未设置您正在使用的帖子的变量。他们现在甚至不存在

例如:

如果调试$\u POST['fname'],它将返回false或空。试试看

分辨率:

现在,我认为您正在运行此代码,而没有验证表单是否已提交。 因此,首先,您应该这样做:

if(isset($_POST) && count($_POST) > 0){     

$con=mysql_connect("127.0.0.1", "root", ""); 
        mysql_select_db("society");
        if(!$con)
        {
          echo "Failed to Connect to MySql".mysqli_connect_error();
        }
        else
        {
          echo"success";
        } 

     $query="INSERT INTO users (fname, lname, email, password) VALUES('".$_POST['fname']."','".$_POST['lname']."','".$_POST['email']."','".$_POST['password']."')"; 
    mysql_query($query,$con);
}

你的表格在哪里???你的
POST
数据来自哪里?为了警告您,
mysql\u*
API已经存在。您的表单将根据您提供的代码提交?
mysql\u connect
混合了
mysqli\u connect\u错误
,无sql注入预防,无需检查参数->请查找并使用更好的php教程。请按照以下步骤修复错误:@tal小心使用您的解决方案。因为您的解决方案是在非强制变量时强制设置变量。想象一下,你不想填写电子邮件字段?您永远不会在数据库中插入数据。。。仔细的如果以这种方式验证表单本身,则可以验证表单是否已提交。mysql扩展已弃用。缺少sql注入预防。如果参数丢失(即无声失败),则无需重复。这不是问题所在。问题是PHP错误,其根源就是我所说的。他这样做是错误的,但没有引起任何问题。这是一个普遍的问题,我保证你会定期收到这样的评论,如果答案没有反映这些话题。web上已经有足够多的站点显示这种类型的错误代码-尝试使stackoverflow成为一个更好的地方;-)是的,但这个问题与此无关。Im 200%确定:)mysql扩展已被弃用。缺少sql注入预防。如果参数丢失(即,无提示地失败),则无需重复。