Ich habe ein paar Seiten in meiner Anwendung. Auf der ersten Seite (create_session.php), die sich unten befindet, übergibt der Benutzer das Formular und geht auf die nächste Seite (QandATable.php). Jetzt
<form action="QandATable.php" method="post" id="sessionForm">
<p>
<strong>
Your Session ID:
</strong>
<span id="idFont">
<?php echo $id; ?>
</span>
</p>
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<p>
<strong>
Date:
</strong>
<input type="text" id="datepicker" name="dateChosen" readonly="readonly" />
<p>
<strong>
Start Time:
</strong>
<input type="text" id="timepicker" name="timeChosen" readonly="readonly" />
<p>
<input class="questionBtn" type="submit" value="Prepare Questions" name="prequestion"/>
</p>
</form>
wenn $ _POST [ ‚id‘] gleich 1 ist, dann ist es nur 1-Prüfung, aber wenn es mehr als 1 ist, dann gibt es mehrere Untersuchungen, die ist, wo das Problem auftritt.
Sagen wir, ich wollte 2 Prüfungen und ich schicke das Formular an die QandATable.php, dann hat die erste Prüfung keine Probleme, aber nachdem ich die erste Prüfung abgeschlossen habe und dann das Formular abschicken (Dieses Formular würde sich selbst vorlegen), Dann bekomme ich für die zweite Prüfung plötzlich Benachrichtigungen für alle $ _POST, die ich im Code unten habe.
<?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();
?>
Also, was ich wissen will, ist, dass, wenn ich mehrere Prüfungen haben, warum bin ich Hinweise auf alle die $ _POST ist nach der ersten Prüfung immer abgeschlossen ist? Alle Benachrichtigungen sind nicht definierte Indizes für alle Posts.
Welche "Hinweise" erhalten Sie? – Bono
@Bono Dies sind alles undefinierte Indizes für alle $ _POST. Also undefined Index 'id', 'timeChoose' und 'dateChoose' aber das passiert erst, wenn die erste Prüfung abgeschlossen ist und ich auf der Seite bin, um die zweite Prüfung zu erstellen. – user1304948
Kannst du uns die komplette Warnung geben, die php dir gibt? Ein weiterer Punkt: Sie haben Leerzeichen vor all Ihren Werten: "'". mysql_real ... Ich denke, du willst sie nicht in deiner Datenbank haben. –