Php 我已将此表单数据发送到数据库中
我可以在数据库中插入除电子邮件字段以外的所有字段。我在第11行的C:\wamp\www\ins\u db.php中得到了以下未定义的错误索引:em 电子邮件的数据类型如下:Php 我已将此表单数据发送到数据库中,php,mysql,Php,Mysql,我可以在数据库中插入除电子邮件字段以外的所有字段。我在第11行的C:\wamp\www\ins\u db.php中得到了以下未定义的错误索引:em 电子邮件的数据类型如下: email varchar(20) not null, 表格编号: 下面是接收表单数据的完整php代码 <?php $con = mysqli_connect('localhost','root','','jobhunt'); if(!$con) { echo "Can not connect to DB"; }
email varchar(20) not null,
表格编号:
下面是接收表单数据的完整php代码
<?php
$con = mysqli_connect('localhost','root','','jobhunt');
if(!$con)
{
echo "Can not connect to DB";
}
if(isset($_POST['id']))
echo "suceecess";
if(isset($_POST['em'])){
$em = $_POST['em'];
}
else
echo "empty";
if(isset($_POST))
{
$query = "INSERT INTO seeker(sid,fname,lname,contact,email,dob,gender,address,religion,experience,qualification,created)
VALUES
('$_POST[id]','$_POST[fname]','$_POST[lname]','$_POST[contact]','$_POST[em]','$_POST[dob]','$_POST[gender]','$_POST[address]','$_POST[religion]','$_POST[exp]','$_POST[qualification]','$_POST[createon]')";
}
if (!mysqli_query($con,$query))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
您已经错过了->=
测试每个POST变量中的值。将PHP代码替换为以下内容:
<?php
$con = mysqli_connect('localhost','root','','jobhunt');
if(!$con){
echo "Can not connect to DB";
exit;
}
$keys = array('id', 'fname', 'lname', 'contact', 'em', 'dob', 'gender', 'address', 'religion', 'exp', 'qualification', 'createon');
$query = "INSERT INTO seeker(sid,fname,lname,contact,email,dob,gender,address,religion,experience,qualification,created) VALUES (";
foreach($keys as $key){
if(isset($_POST[$key])){
$query .= "'" . $_POST[$key] . "'";
}else{
$query .= "''";
}
if($key === end($keys)){
$query = ");";
}else{
$query .= ",";
}
}
if (!mysqli_query($con,$query)){
die('Error: ' . mysqli_error($con));
}else{
echo "success";
}
mysqli_close($con);
?>
作为补充说明,直接从POST变量插入数据库是一个严重的安全风险。您在HTML代码中漏掉了一个等号
<input type = "text" name "em">
应该是
<input type = "text" name = "em">
修正你的索引$_POST['id'],但更好地使用。谢谢!一开始是对的,我改了名字,但没看到标志。我编辑了它。但这不是问题,我按照你的建议改正了。但还是有错误!我如何修复它?我测试了您的给定代码,并添加了其他部分。问题是$\u POST['em']变量为空!我不知道为什么,我查过了!是的,问题是em变量未设置!但是我已经在表单中输入了它的值。请检查我的更新答案。我已经在第11行的HTML中提到,您缺少等于=的内容。是的,我已经检查了所有内容并更正了。但还是没有希望!我担心我必须完全删除电子邮件字段才能继续!不试试var_dump$_POST['em'];并检查它是否为空或notYes电子邮件字段是否为空。但是表单中有价值我看不到你当前的电子邮件中有价值。。。我猜你是在发送前自己插入的?我的意思是我已经在表单中输入了电子邮件id以便处理。但它仍然是空的!是的,我考过了。它没有值。但我不明白为什么我输入了一个值,而您绝对确定您已经将当前表单改为name=em而不是name em?
if(isset($_POST['em'])){
$em = $_POST['em'];
}
<?php
$con = mysqli_connect('localhost','root','','jobhunt');
if(!$con){
echo "Can not connect to DB";
exit;
}
$keys = array('id', 'fname', 'lname', 'contact', 'em', 'dob', 'gender', 'address', 'religion', 'exp', 'qualification', 'createon');
$query = "INSERT INTO seeker(sid,fname,lname,contact,email,dob,gender,address,religion,experience,qualification,created) VALUES (";
foreach($keys as $key){
if(isset($_POST[$key])){
$query .= "'" . $_POST[$key] . "'";
}else{
$query .= "''";
}
if($key === end($keys)){
$query = ");";
}else{
$query .= ",";
}
}
if (!mysqli_query($con,$query)){
die('Error: ' . mysqli_error($con));
}else{
echo "success";
}
mysqli_close($con);
?>
<input type = "text" name "em">
<input type = "text" name = "em">