我希望有人能夠幫助我解決這個問題!從PHP中的下拉菜單提交多個值
我正在PHP中開發一個web應用程序,我想從我的一個同事提交一個活動。有時候,活動是由多個同事完成的,所以我希望能夠提交該活動,但通過這種方式,所有正在進行活動的同事都能得到保存。
我決定使用下拉菜單,在php中稱爲select標籤。
<div id="placeholder">
<SELECT id="activeMember" NAME=name>
<OPTION VALUE=0>Choose
<OPTION VALUE=1>Mark
<OPTION VALUE=2>James
<OPTION VALUE=3>Emily
</SELECT>
<button type="button" name="add" onclick="Add();">+</button>
下面是javascript代碼:
var _counter = 0;
function Add() {
_counter++;
var oClone = document.getElementById("activeMember").cloneNode(true);
oClone.id += (_counter + "");
document.getElementById("placeholder").appendChild(oClone);
}
你可以看到它是如何工作在這個LINK
當提交的HTML代碼如下按下按鈕時,會調用另一個腳本,將活動保存在我的數據庫中:
$connection = mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");
$member = $_POST['name'];
$summary = $_POST['summary];
$date = date("l F d, Y");
$query = mysql_query("INSERT INTO activities (member, activitySummary, date) VALUES ('" . $member . "', '" . $summary . "', $date."')");
現在來了我的問題。當我選擇馬克和詹姆斯時,如果詹姆斯是第二個被選中的人,那麼只要我提交表格,該活動就會被保存下來。馬克保持忽略。另外,如果選擇馬克,詹姆斯和艾米莉,這項活動將只爲艾米莉得救。因此,表單僅保存上次選擇的同事的活動。
有沒有人有任何想法,我可以避免這種情況,併成功地爲一個活動保存多個同事/成員?
附註:1)**清理輸入!**,2)不要使用mysql_'函數進行新的開發。看看[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。 – Wiseguy
1)你能詳細解釋一下嗎?你說的「淨化」是什麼意思,2)你能否說出原因?一切似乎都很好。 –
當然。 1)通過在查詢中使用逐字輸入,您很容易受到[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)的影響。爲了幫助用'mysql_'庫緩解這種情況,請在查詢中使用'mysql_real_escape_string($ member)'(以及其他值)。 2)'mysql_'的擴展名是舊的,不再積極開發,並且會被棄用(很快?)。 PDO和MySQLi更新,功能更豐富,提供面向對象的使用和參數化查詢(SQL注入預防技術優於盲目字符串轉義)。這是一個評論的很多信息,但希望這是一個開始。 – Wiseguy