Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单php“;未定义索引“;表单提交时出错_Php_Mysql - Fatal编程技术网

简单php“;未定义索引“;表单提交时出错

简单php“;未定义索引“;表单提交时出错,php,mysql,Php,Mysql,除了$fname、$mname和$lname之外,我在每个$\u POST项目中都会遇到此错误。我不明白为什么。我一直在寻找解决方案,isset的建议是最常见的,但我已经尝试了几种不同的形式,它仍然不适合我 注意:未定义索引:第13行C:\xampp\htdocs\php\signin.php中的邮政编码 注意:未定义索引:第15行C:\xampp\htdocs\php\signin.php中的homephone 注意:第16行C:\xampp\htdocs\php\signin.php中的未定

除了
$fname
$mname
$lname
之外,我在每个
$\u POST
项目中都会遇到此错误。我不明白为什么。我一直在寻找解决方案,isset的建议是最常见的,但我已经尝试了几种不同的形式,它仍然不适合我

注意:未定义索引:第13行C:\xampp\htdocs\php\signin.php中的邮政编码

注意:未定义索引:第15行C:\xampp\htdocs\php\signin.php中的homephone

注意:第16行C:\xampp\htdocs\php\signin.php中的未定义索引:mobphone

signin.php


注册CWON
名字:

中名:
姓氏:
出生日期:
地址:
城市:
声明: 新南威尔士州 昆士兰 维克 沙特阿拉伯 华盛顿州 新界 助教
国家:
首选联系人: 家庭电话:

流动电话:

电邮:

家庭号码:
手机号码:
电邮地址:
邮政编码:
职业:
业余爱好:
兴趣: 筹款人 国内志愿工作 外国志愿服务 所有这些

条款和条件


注册CWON时事通讯





请参见
$
$\u POST
数组中。把它们全部去掉

 $dob=$_POST['$dateofbirth'];
              ^------------------ That (Remove them all)
编辑:

您需要更改邮政编码的名称,因为它反映了移动电话

 <label for="postcode">Postcode:</label>
 <input type="number" name="postcode" required min="1000" max="9999" placeholder="4-digit"><br />
邮政编码:

现在将它们更改为

$homephone=$_POST['homenumber']; //<--- Should be homenumber.`
$mobphone =$_POST['mobnumber'];
$postcode =$_POST['postcode'];

$homephone=$\u POST['homepnumber']// 在尝试访问参数之前,需要检查并确保存在值。这将确保在您尝试使用它们之前设置好它们。这可以使用函数完成。例如:

// check values exist before using them
if(isset($_POST['$dateofbirth'])){
    $dob=$_POST['$dateofbirth'];
}
此外,SQL易受注入攻击。在查询中使用参数之前,确实应该先清理参数。为此,建议使用参数化查询或查询

请注意,最终错误不包括
$
,因此删除该错误不会完全解决问题。

更改:

$dob=$_POST['$dateofbirth'];
致:


所有人都一样。

您没有名为“homephone”和“mobphone”的输入,只有“homenumber”和“mobnumber”

$homephone=$_POST['homenumber'];
$mobphone=$_POST['mobnumber'];

检查每个帖子字段是否设置得如此明显和隐藏($\u POST['field\u name']):3我已经删除了它们,现在只剩下您在上面编辑的问题中看到的三个错误。Fox,请按照@YUNOWORK对您的问题的要求发布HTML代码。@Fox,希望您做了更改,但在检查请求变量之前始终使用isset构造…@Fox,使用筛选变量以避免SQLInjection。您忘记了从字段名中ommit“$”。谢谢,尽管出现了错误,您还是很快回答了。现在我只剩下三个类似的错误。关于消毒,你是对的,但我只是在玩插入虚拟网站来学习。至于检查值,我不完全确定如何用我的技能水平来检查。我将阅读它。编辑以建议检查值的方法;)
// check values exist before using them
if(isset($_POST['$dateofbirth'])){
    $dob=$_POST['$dateofbirth'];
}
$dob=$_POST['$dateofbirth'];
$dob=$_POST['dateofbirth'];
$homephone=$_POST['homenumber'];
$mobphone=$_POST['mobnumber'];