我有一个有textarea输入的表单。这个文本区域将有一些自定义"标签"我想做的,类似于SO&#textarea中的*运算符,根据它的使用方式进行处理和解释为斜体或粗体。
最终目标是处理这长串文本,进行所需的任何格式修改,然后将其写入数据库表。但是,我不确定如何处理这个问题。
我的第一个想法是使用$ _POST,但我不确定在这个数组中存储非常大的字符串是一个好主意,因为我找不到任何关于它有多少数据的信息。存储在这个数组中。是否有一些将大量数据传输到另一个页面的最佳做法?我应该使用jQuery吗?如果是这样,怎么样?
答案 0 :(得分:3)
$_POST
。 $_POST
的默认限制已经足够高,可以处理大多数用户输入,缺少文件上传。如果您需要它大于8MB,则可以在php.ini
文件中的Web服务器上更改它。我有一个类似的应用程序,在测试中我没有问题将> 64MB粘贴到我的textarea。
我还会考虑稍微改变操作顺序。我会做以下一种或另一种:
1)不是在插入数据库之前格式化文本,而是在返回浏览器的过程中对其进行格式化。这样,如果您更改输入的格式化方式,则可以将原始数据应用于其中。在显示数据时,服务器的工作量会多一些,但是您可能会更容易维护应用程序。
2)将格式化文本和原始文本存储在数据库中。这样可以提高速度,因为每次调用时都不必将其格式化为用户,并且还允许您以某种编码费用构建更改数据格式的方法。
编辑:在评论中声明 pal4life ,您希望避免执行任何用户输入。从本质上讲,如果您的方法是将输入保存到文件中,然后使用include()
或require()
进行调用,则可能会遇到严重的安全漏洞。攻击者可以上传<?php var_dump($conn);
或更糟糕的代码。我相信您可以放心readfile()
,但浏览器仍然容易受到攻击者可能放置的任何潜在JavaScript的攻击。</ p>
答案 1 :(得分:0)
使用$ _POST是一个非常好的开始方式,如果它变大,那么8MB就会改变php.ini。如果它变得更大,你可以开始切片你的字符串并通过jQuery将块发送到你的web服务器并在之后连接它们。
但是在第一次运行时我更喜欢标准方式并使用$ _POST。