Php 提交后,我在所有$u帖子上都得到了未定义的索引

Php 提交后,我在所有$u帖子上都得到了未定义的索引,php,Php,我在这里有一个页面,它接收来自上一个页面的所有详细信息,并将其发布到该页面的数据库中。现在让我们假设我有多个考试(假设两个考试)。当我完成创建第一个考试并提交表单时,我突然收到下面代码中所有$u帖子的通知。为什么在我第一次考试后,我的$U帖子上都会出现这些通知?所有的通知都声明前面有$u POST的所有索引都是未定义的 下面是我的代码: <?php session_start(); if (isset($_POST['id'])) { $_SESSION['id'] = $_POST[

我在这里有一个页面,它接收来自上一个页面的所有详细信息,并将其发布到该页面的数据库中。现在让我们假设我有多个考试(假设两个考试)。当我完成创建第一个考试并提交表单时,我突然收到下面代码中所有$u帖子的通知。为什么在我第一次考试后,我的$U帖子上都会出现这些通知?所有的通知都声明前面有$u POST的所有索引都是未定义的

下面是我的代码:

<?php
session_start();

if (isset($_POST['id'])) {

$_SESSION['id'] = $_POST['id'];

}


if (isset($_POST['dateChosen'])) {

$_SESSION['dateChosen'] = $_POST['dateChosen'];

}

if (isset($_POST['timeChosen'])) {

$_SESSION['timeChosen'] = $_POST['timeChosen'];

}


$username="xxx";
$password="xxx";
$database="xxx";

mysql_connect('localhost',$username,$password);

mysql_select_db($database) or die( "Unable to select database");

  $insert = array();

  for ($i = 1, $n = $_POST['sessionNum']; $i <= $n; ++$i)
  {
    $insert[] = "' ". mysql_real_escape_string( $_POST['id'] ) . ($n == 1 ? '' : $i) . "',' ". mysql_real_escape_string( $_POST['timeChosen'] ) . "',' ". mysql_real_escape_string( date("Y-m-d", strtotime( $_POST['dateChosen'] ) ) ) . "'";
  }

  $sql = "INSERT INTO Session (SessionId, SessionTime, SessionDate) 
  VALUES (" . implode('), (', $insert) . ")";


  mysql_query($sql);

mysql_close();



?>

即使您在前面检查了
isset($\u POST[variable])
,您也没有检查代码的未来部分

您不知道之前的检查是通过了还是失败了(只有在成功写入会话时),您可能应该使用

if(isset($_POST['id']) {

    mysql_connect('localhost',$username,$password);

    mysql_select_db($database) or die( "Unable to select database");

      $insert = array();

      for ($i = 1, $n = $_POST['sessionNum']; $i <= $n; ++$i)
      {
        $insert[] = "' ". mysql_real_escape_string( $_POST['id'] ) . ($n == 1 ? '' : $i) . "',' ". mysql_real_escape_string( $_POST['timeChosen'] ) . "',' ". mysql_real_escape_string( date("Y-m-d", strtotime( $_POST['dateChosen'] ) ) ) . "'";
      }

      $sql = "INSERT INTO Session (SessionId, SessionTime, SessionDate) VALUES (" . implode('), (', $insert) . ")";


      mysql_query($sql);

    mysql_close();


} else {
   //build the form which sends in ID
}
if(isset($\u POST['id'])){
mysql_connect('localhost',$username,$password);
mysql_select_db($database)或die(“无法选择数据库”);
$insert=array();

对于($i=1,$n=$\u POST['sessionNum'];$i即使您在前面检查了isset($\u POST[variable])
,也没有检查代码的未来部分

您不知道之前的检查是通过了还是失败了(只有在成功写入会话时),您可能应该使用

if(isset($_POST['id']) {

    mysql_connect('localhost',$username,$password);

    mysql_select_db($database) or die( "Unable to select database");

      $insert = array();

      for ($i = 1, $n = $_POST['sessionNum']; $i <= $n; ++$i)
      {
        $insert[] = "' ". mysql_real_escape_string( $_POST['id'] ) . ($n == 1 ? '' : $i) . "',' ". mysql_real_escape_string( $_POST['timeChosen'] ) . "',' ". mysql_real_escape_string( date("Y-m-d", strtotime( $_POST['dateChosen'] ) ) ) . "'";
      }

      $sql = "INSERT INTO Session (SessionId, SessionTime, SessionDate) VALUES (" . implode('), (', $insert) . ")";


      mysql_query($sql);

    mysql_close();


} else {
   //build the form which sends in ID
}
if(isset($\u POST['id'])){
mysql_connect('localhost',$username,$password);
mysql_select_db($database)或die(“无法选择数据库”);
$insert=array();

对于($i=1,$n=$\u POST['sessionNum']];$i请显示您的HTML。对于
$\u POST
,您必须使用
method=“POST”
提交表单,很少有人这样做,但这是“正确”的方法-要检查页面是否已发布到,请查看$\u服务器['REQUEST\u method'],并确保它等于“POST”。请显示您的HTML。要使
$\u POST
正常工作,您必须使用
method=“POST”
提交表单,很少有人这样做,但这是“正确”的方法-要检查页面是否已发布到,请查看$\u服务器['REQUEST\u method'],并确保它等于“POST”。