2010-01-16 132 views
4

我想要一个textarea,我可以直接编辑HTML代码。提交表单后,如果textarea(带有html标签)应该保存到MySQL数据库中。我使用PHP来接收日期并将其保存到数据库。我的问题是,HTML代码没有正确发送到PHP。我没有收到HTML代码,只是文字。我怎么能解决这个问题?通过表格发送HTML代码到PHP通过表格

我的表是这样的:

<form method="post" enctype="multipart/form-data" action="form.php"> 
    <textarea name="html_code"> 
     <a href="link">testlink</a> 
    </textarea> 
    <input type=submit value="submit"/> 
</form> 

的form.php的现在应该能够显示textarea的内容

echo $_POST['html_code']; 

显示:testlink

我想:<a href="link">testlink</a>

回答

4

谢谢大家的回答。我发现了这个问题。这是Joomla。当我通过getVar得到字符串时,Joomla删除了HTML标签。我不得不使用掩码选项JREQUEST_ALLOWRAW来解决问题。

JRequest::getVar('html_code', '', 'post' , 'STRING', JREQUEST_ALLOWRAW); 
+2

嗨,多米尼克,其重要的是在你的回答中指定你正在使用Joomla等,这样人们可以意识到这个可疑的问题。 – 2010-07-11 15:30:38

+0

@托比艾伦是的,你是对的。我只是没有想到这个问题是Joomla相关的。 – dominik 2012-03-22 16:54:44

1

您是否将它回显到HTML p年龄?因为代码将被解析为一个实际的链接。

查看输出页面的来源。

+0

如果我查看HTML页面的源代码我只看到“TestLink的” – dominik 2010-01-16 15:49:58

1

您正在使用错误的编码类型。

而不是“multipart/form-data”,它应该是“text/plain”。

您不必像Doug所说的那样对数据进行编码;但是当你提交表单时它会被编码,所以在使用之前不要忘记解码。

+0

我不认为编码的问题。 PHP自动检测编码并解码需要的内容。 – Felix 2010-01-16 16:17:31

1

你的形式应该是:

<form method="post" enctype="multipart/form-data" action="form.php"> 
    <textarea name="html_code"> 
     &lt;a href=&quot;link&quot;&gt;testlink&lt;/a&gt; 
    </textarea> 
    <input type=submit value="submit"/> 
</form> 

(不,它不是搞砸他们被称为HTML entities。)

您可以使用htmlentities()在PHP来实现这一目标。