2013-02-28 57 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的和丢弃未设置的。