通过Form将Textarea中的HTML代码发送给PHP

时间:2010-01-16 15:45:38

标签: html forms post joomla textarea

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

我的表格如下:

<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 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

您是否将其回显到HTML页面?因为代码将被解析为实际链接。

查看输出页面的来源。

答案 2 :(得分:1)

您使用的编码类型错误。

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

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

答案 3 :(得分: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

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