PHP。未定义索引
以下是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
$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注入预防。如果参数丢失(即,无提示地失败),则无需重复。