2013-02-28 26 views
0

我有一個用PHPHTML表單

下面產生在我account.php $ student_id數據由會話設置,我發現是相關聯的所有file_names形式與該student_id。我使用php生成了一個HTML表單,其中該學生的每個file_name都以複選框的格式顯示,每個複選框下面都有一個描述輸入。

<?php 
$find = mysql_query("SELECT file_name FROM chemlab_files WHERE student_id = 
'$student_id'") or die ("Could not search!"); 
while($row = mysql_fetch_array($find)){ 
$file_name = $row['file_name']; 
$_SESSION['file_name'] = $file_name; 
echo "<label class='checkbox'><input type='checkbox' name='file_name[]'  
value='{$file_name}'>$file_name</label><br><input type='text' name='description[]'  
value='' placeholder='description'>"; 
} 
?> 

這是現在我有它的麻煩不插入,但插入空格不勾掉

if(is_array($_POST['description'])){ 
foreach(str_replace('#', '', $_POST['description']) as $strip){ 
       $description_backslash = $strip . '/'; 
       $description = mysql_real_escape_string($strip); 
       $query = "INSERT INTO file_list(description) VALUE ('$description')"; 
       $q= mysql_query($query) or die ('Error posting data'); 
       //print_r($description); 
       //print '<br>'; 
      } 
+2

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-02-28 01:20:13

+0

當我們處於這種狀態時,您也可能會受到HTML注入/ XSS的攻擊。找到一個可以逃脫你的模板引擎。 – Eevee 2013-02-28 01:32:35

回答

0

複選框未選中,沒有得到複選框的handler.php的一部分發送到服務器,所以如果不是所有的複選框都被選中,複選框索引和file_name輸入之間會出現不匹配。

爲了避免這樣的問題,你將不得不指標添加到您的表單字段,讓你知道什麼description屬於哪個file_name並且是能夠循環在description的和丟棄未設置的。