获取文本框的内容,从中创建.txt文件并将其存储到数据库中

时间:2012-03-02 19:02:25

标签: php mysql forms file

我创建了一个表单,要求用户在第一个文本字段中插入名称,并在第二个文本字段上写入一些内容(某些信息)。 这是我的表单代码:

echo "<form method='post' action='insert.php?selected=$openFolder&id=$student'>
       Information name:</br> <input name='infoName' type='text' /><br />
       Information:<br />
       <textarea name='text' rows='15' cols='60'>
       </textarea><br />
       <input type='submit' name='submit' value='Submit Information'/>
       </form>";

到目前为止一切顺利。

现在提交表单时,我需要创建一个文件:

文件名 - &gt;用户在“infoName”文本字段中插入的名称

然后将“text”文本字段的内容插入此文件并将整个文件存储到我的数据库中。

这是我的代码:

if (isset($_POST['submit']))    
{    
//Make sure that a file name is given by the user    
if (!$_POST['infoName'])    
{    
echo "<center><font color='red'>You must complete the Information name field</font></center>";            
}     
else    
 {    
$informationName = $_POST['infoName'];
$informationContent = $_POST['text'];

$newFile = fopen($informationName,"w");         
$content = fwrite($newFile,$informationContent  . "\n");
$content = addslashes($content);        
fclose($newFile);

$theSize = filesize($informationName);

if(!get_magic_quotes_gpc())    
{    
  $informationName = addslashes($informationName);    
}    

$query = "INSERT INTO $openFolder (studentID, name, size, type, content, insertedBy ) ".
   "VALUES ('$student','$informationName', '$theSize', 'txt', '$content', '$username')";

mysql_query($query) or die('Error, query failed');                                      


}    
}        

我的问题:
1)文件是正确创建的,存储在我的数据库中,但没有正确的内容。出于某种原因,我没有将文本插入文件......

2)超出了我的数据库中存储的文件,在我的目录中创建了另一个文件,我不希望这种情况发生。

请帮帮我。随意对我的代码进行任何更改! 请告诉我我做错了什么!

1 个答案:

答案 0 :(得分:0)

我看到原因是陈述$content = addslashes($content);fwrite返回写入的字节数,而不是数据本身。 正确的陈述应该是$informationContent = addslashes($informationContent);,并且应该在if(!get_magic_quotes_gpc())条件之内。还可以按照建议更改查询和替换变量。

还要确保检查fwrite的返回值。如果没有写入(=== FALSE),请不要继续进行并报告错误。许多错误都很难调试(就像这种情况),因为我们经常编写假设编程。 :)