新信息:目前最好的方法是设置文本区域可以有多少个字符的限制。
我还没试过,但我认为如果我要在数据库中保存一个模板,那就更好了。在模板中,我会预先确定数据的预定义区域(类似于小部件)。在文本区域,我显示具有默认数据的预定义区域的模板,用户修改当前使用他们自己的数据设置的区域,并且在提交PHP时收到类似$ _POST = array(' area1' =>& #39;某些数据',' area2' =>'某些数据' ...);。将每个字符的限制设置为1000到3000之间。
我有一个标准的textarea
<textarea name="message" class="form-control" id="message"><?php echo $message; ?></textarea>
$ message - 包含一个用户不会在textarea中修改的HTML模板
当我在PHP脚本中提交表单时,我会捕获$ _POST并打印值
var_dump($_POST);
出于某种原因,$ _POST [&#39; message&#39;]会返回&#39; [&#34; message&#34;] =&gt; string(0)&#34;&#34;&#39;
可能与POST大小有关,但我不太确定,因为我有8M而且应该绰绰有余。我还注意到,当我在Title中有38个字符(这是存储在POST中的变量之一)并且消息长度超过3355时,$ _POST会中断。
我还在我的PHP.ini中查找了一个PHP.ini变量&#34; max_input_vars&#34;,我没有设置它。
我的表单代码:
<form action="" class="" method="post" id="add_newsletter">
<div class="form-group">
<label class="control-label">Message<span class="required">*</span></label>
<textarea name="message" class="ckeditor form-control message" id="message"><?php echo $message; ?></textarea>
<div class="form-actions">
<button type="submit" class="btn green">Send</button>
</div>
</div>
</form>
<script type="text/javascript" src="../plugins/ckeditor/ckeditor.js"></script>
<script type="text/javascript">
CKEDITOR.replace( 'message' );
</script>
如果我在加载表单后返回消息textarea中的文本,则返回正确的POST值。
存储在$ message变量中的HTML消息是5854个字符,包含在:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<div style="max-width: 800px; margin: 0; padding: 30px 0;">
<img src="../img/email-header.png" /><br/><br />
Some text is here
</div>
</body>
</html>