0
ここにページがあり、前のページのすべての詳細を受け取ってこのページのデータベースに投稿します。今私は複数の試験があると言うことができます(2つの試験を言うことができます)。最初の試験の作成を終えてフォームを自分自身に提出すると、私は突然、以下のコードの$ _POSTすべてに気付きました。私の最初の試験の後、私の$ _POSTのすべてにこれらの通知が届くのはなぜですか?すべての通知では、その前に$ _POSTを持つ索引はすべて未定義であると述べています。あなたは、あなたがコードの将来の部分にチェックされていない以前のisset($_POST[variable])
をチェックしますかにもかかわらず
<?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();
?>
あなたのHTMLを表示してください。 '$ _POST'が機能するためには、' method = "post" ' –
という形式でフォームを提出して、最初のページを投稿する必要がありますか? –
これはほとんどありませんが、ページがPOSTされているかどうかを確認するには、$ _SERVER ['REQUEST_METHOD']を見て、それが "POST"と同じであることを確認してください。 –