Php 错误通知:出现未定义的索引
我有三个复选框,用户应该选中一个或两个选项 当我选中2个选项时,会显示一条错误消息Php 错误通知:出现未定义的索引,php,html,mysql,Php,Html,Mysql,我有三个复选框,用户应该选中一个或两个选项 当我选中2个选项时,会显示一条错误消息 $workshop1Day1 = $_POST["workshop1Day1"]; $workshop2Day1 = $_POST["workshop2Day1"]; $workshop3Day1 = $_POST["workshop3Day1"]; $requete = "INSERT INTO Participant ( NameSurname,workshop1Day1,wor
$workshop1Day1 = $_POST["workshop1Day1"];
$workshop2Day1 = $_POST["workshop2Day1"];
$workshop3Day1 = $_POST["workshop3Day1"];
$requete = "INSERT INTO Participant ( NameSurname,workshop1Day1,workshop2Day1,workshop3Day1)
VALUES ('$NameSurname', '$workshop1Day1', '$workshop2Day1', '$workshop3Day1')";
$result = @mysql_query($requete);
错误:
Notice: Undefined index: workshop3Day1
然后我尝试了以下代码(例如:如果没有选中复选框3),同样的错误会出现
$workshop1Day1=' ';
$workshop2Day1='';
$workshop3Day1='';
$workshop1Day1 = $_POST["workshop1Day1"];
$workshop2Day1 = $_POST["workshop2Day1"];
$workshop3Day1 = $_POST["workshop3Day1"];
if (isset($workshop1Day1)&& isset($workshop2Day1)&& !isset($workshop3Day1))
{
$requete = "INSERT INTO Participant ( NameSurname,workshop1Day1,workshop2Day1,workshop3Day1)
VALUES ('$NameSurname', '$workshop1Day1', '$workshop2Day1', '$workshop3Day1')";
$result = @mysql_query($requete);
我知道isset是解决方案,但如何解决呢?您会收到警告,因为您没有在源变量上运行isset,而只是在分配给它的对象上运行 此行(
$workshop3Day1=$\u POST[“workshop3Day1”];
)将引发警告,因为该数组索引不存在。相反,在该行中使用isset,然后在if条件中使用该行的结果。大概是这样的:
$workshop1Day1 = isset($_POST["workshop1Day1"]) ? $_POST["workshop1Day1"] : 0;
$workshop2Day1 = isset($_POST["workshop2Day1"]) ? $_POST["workshop2Day1"] : 0;
$workshop3Day1 = isset($_POST["workshop3Day1"]) ? $_POST["workshop3Day1"] : 0;
然后从您的
if
条件中删除isset
。您在此处得到错误:$\u POST[“workshop3Day1”]
,因为它未设置*提示*提示*思考*它*您正在使用并且应该使用。您还容易受到现代API的影响,因为它会使您更容易使用。未在html表单中选中的复选框的可能重复项不会随数据一起提交,因此您试图使用不存在的$\u POST值,因此会出现错误。