Php 错误通知:出现未定义的索引

Php 错误通知:出现未定义的索引,php,html,mysql,Php,Html,Mysql,我有三个复选框,用户应该选中一个或两个选项 当我选中2个选项时,会显示一条错误消息 $workshop1Day1 = $_POST["workshop1Day1"]; $workshop2Day1 = $_POST["workshop2Day1"]; $workshop3Day1 = $_POST["workshop3Day1"]; $requete = "INSERT INTO Participant ( NameSurname,workshop1Day1,wor

我有三个复选框,用户应该选中一个或两个选项

当我选中2个选项时,会显示一条错误消息

    $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值,因此会出现错误。