[英]PHP Post Echo Two Sql Entries
我需要幫助來弄清楚為什么我使用以下代碼在數據庫中收到兩個條目。 此時,它正在將完整記錄和空白記錄輸入數據庫。 不知道為什么。 誰能指出我要去哪里的正確方向? 謝謝。
表格和PHP代碼
<form method="post" action="cu.php">
<input type="text" name="name" value size="35"
placeholder="Name">  
<input type="text" name="email" value size="35" placeholder="Email">
<br><br>
<select name="dropdown">
<option value="0">Comment Type</option>
<option value="A">Accounting</option>
<option value="FAQ">FAQ</option>
<option value="GQ">General Question</option>
<option value="TS">Technical Support</option>
</select>
<br><br>
<textarea name="comments" rows="10" cols="60" style"border: 3px solid #555"
placeholder="Comments"></textarea>
<br><br>
<input type="submit" value="Submit" id="btn">
<input type="reset" value="Reset" id="btn">
</form>
</one>
</div>
<?php
if ($_POST) {
$name = $_POST['name'];
echo "User Has submitted the form and entered this name : <b>$name</b>";
echo "<br>You can use the following form again to enter a new name.";
}
$con = mysql_connect("mysql", "username", "pswd");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
/* Prevent duplicate submissions */
if (isset($_COOKIE['FormSubmitted'])) {
show_error('You may only submit this form once per session!');
}
mysql_select_db("communication", $con);
$sql = "INSERT INTO contact (name, email, cusno, dropdown, comments)
VALUES
('$_POST[name]', '$_POST[email]', '$_POST[cusno]', '$_POST[dropdown]',
'$_POST[comments]')";
if (!mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
}
mysql_close($con);
這是因為,每次頁面加載時,php都會運行您的sql插入代碼。 發生這種情況是因為您不檢查表單是否已提交,然后運行sql查詢。
這樣做:
在您的提交按鈕上添加名稱:
<input type="submit" value="Submit" id="btn" name="submit">
然后在php中,將SQL插入文件包裝在if語句中
// check if submit button is POST, then run query
if(isset($_POST['submit']))
{
$sql = "INSERT INTO contact (name, email, cusno, dropdown, comments)
VALUES
('$_POST[name]', '$_POST[email]', '$_POST[cusno]', '$_POST[dropdown]',
'$_POST[comments]')";
if (!mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
}
}
更新這行
if (!mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
}
至
if (!empty($_POST) && !mysql_query($sql, $con) ) {
die('Error: ' . mysql_error());
}
另外我想您的瀏覽器請求favicon文件,並且您的代碼可以執行兩次
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.