PHP表单不会发布到我的数据库中

时间:2013-10-07 16:31:36

标签: php mysql database forms

我的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 个答案:

答案 0 :(得分:2)

问题是您没有命名输入字段。如果将名称属性添加到html代码中的输入,则在提交表单后,该值将存储在php中的$ _POST数组中。正确的HTML代码应为:

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

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

我不确定您是否需要输入上的ID以用于其他任何内容,否则您应该重新添加它们。有关html表单的更多信息,请访问:http://www.w3schools.com/html/html_forms.asp

答案 1 :(得分:1)

您的表单中是否需要一些名称属性?

例如:

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

POST['your_value']中的值必须与name属性的值相同。

这样:

$my_date = $_POST['date']

答案 2 :(得分:1)

您的表单中未包含任何名称属性。这是应该如何:

<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属性的表单input元素才会被发送到服务器。 ID仅在客户端使用。

答案 3 :(得分:1)

你需要给你的输入元素一个名字属性......这就是php使用$ _POST ['name属性'] global来识别你所指的字段的方式。

所以例如......

 <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>