0

PHP フォームがデータベースに投稿されません。私はphpとmysqlの接続をかなりよく理解していますが、これには困惑しています。フォームで送信を押しても、ユーザーが入力した値が反映されません。日付は、ユーザーが送信した日付ではなく、1969-12-31 と表示されます。誰かがそれを助けることができれば、それは素晴らしいことです. 私のコードは次のとおりです

フォーム コードは次のとおりです。

<form method="POST" action="add_event.php" id="create_event">
<label for="event_name">Event Name:</label>
<input type="text" id="event_name"><br />
<label for="date">Date:</label>
<input class="datepicker" type="date" id="date"><br />
<label for="zip_code">Zip Code:</label>
<input type="text" id="zip_code" maxlength="5"><br />
<label for="description">Description</label>
<textarea id="description" rows="5" columns="10"></textarea>

<br>
<input type="submit" name="submit">
</form>

add_event.php 挿入コードは次のとおりです。

<?php


require_once '../app_config.php';
require_once '../database_connection.php';
require_once '../authorize.php';

session_start();

// Authorize any user, as long as they're logged in
authorize_user();

//Get the user ID of the user to show
$user_id = $_SESSION['user_id'];

$select_query = "SELECT first_name, last_name FROM users WHERE user_id = " . $user_id;

// Run the query
$result = mysql_query($select_query);
if ($result) {
$row = mysql_fetch_array($result);
$first_name = $row['first_name'];
$last_name = $row['last_name'];
}

$name = $first_name . ' ' . $last_name;
$event_name = trim($_POST['event_name']);
$date = trim($_POST['date']);
$zip_code = trim($_POST['zip_code']);
$description = trim($_POST['description']);

// $date = "2012-08-22";
$newdate = date("Y-m-d", strtotime($date));
// $event_name = "test";
// $zip_code = "22153";
// $description = "test";

$insert_sql = sprintf("INSERT INTO events " .
                              "(name, user_profile_id, event_name, date, zip_code, description) " .
    "VALUES ('%s', %d, '%s', '%s', '%s', '%s');",
         mysql_real_escape_string($name),
         mysql_real_escape_string($user_id),
         mysql_real_escape_string($event_name),
         mysql_real_escape_string($newdate),
         mysql_real_escape_string($zip_code),
         mysql_real_escape_string($description));


//insert the user into the database
mysql_query($insert_sql);

 echo $insert_sql;
?>

よろしくお願いします。

4

4 に答える 4

1

入力要素に name 属性を与える必要があります... これは、php が $_POST['name attribute'] グローバルを使用して、参照しているフィールドを識別する方法です。

たとえば...

 <form method="POST" action="add_event.php" id="create_event">
<label for="event_name">Event Name:</label>
<input type="text" name="event_name" id="event_name"><br />
<label for="date">Date:</label>
<input class="datepicker" name="date"  type="date" id="date"><br />
<label for="zip_code">Zip Code:</label>
<input type="text" id="zip_code" name="zip_code"  maxlength="5"><br />
<label for="description">Description</label>
<textarea id="description" name="description" rows="5" columns="10"></textarea>

<br>
<input type="submit" name="submit">
</form>
于 2013-10-07T16:41:00.483 に答える
1

フォームに name 属性は必要ありませんか?

例えば:

<input class="datepicker" type="date" id="date" name="date">

your 内POST['your_value']の値は name 属性の値と同じである必要があります。

それで:

$my_date = $_POST['date']
于 2013-10-07T16:37:49.023 に答える
1

フォームに name 属性が含まれていません。それがどうあるべきかは次のとおりです。

<label for="event_name">Event Name:</label>
<input type="text" id="event_name" name="event_name"><br />
<label for="date">Date:</label>
<input class="datepicker" type="date" id="date"  name="date"><br />
<label for="zip_code">Zip Code:</label>
<input type="text" id="zip_code" maxlength="5"  name="zip_code"><br />
<label for="description">Description</label>
<textarea id="description" rows="5" columns="10"  name="description"></textarea>

name 属性を持つフォーム入力要素のみがサーバーに送信されることに注意してください。ID はクライアント側でのみ使用されます。

于 2013-10-07T16:37:54.760 に答える