我编写的网站必须具有与SO相同的功能。我的服务器使用Litespeed,它可以提高运行php文件的速度。
当我试图以常规形式发送php代码时,一切似乎都没问题,数据被发送到动作文件而不解释变量中的代码。但是,当我尝试使用jQuery $.post
方法在评论textareas中发送相同的数据时,我得到禁止403 错误。 Litespeed服务器在路上阻止数据。我不知道为什么会发生这种情况,为什么在使用ajax时会自动评估$_POST
数据?
这种情况并非每次都出现,但仅在某些情况下,例如:
this is a new message which presents this php code: <?php mysql_query("SELECT * FROM my_table"); ?>
请注意,如果我从邮件中删除<?php
和?>
,则表示没问题。我已经尝试使用encodeURI()
方法,但这不会改变任何内容。
是否有任何必须在.htaccess
中应用的设置才能自动评估$ _POST数据?
或者我应该在发送评论之前替换open和close标签吗?
稍后修改
这就是我现在设法解决此问题的方法,但我仍在等待.htaccess
的建议:
$but.prev('textarea').val().replace(/(<\?php)/gi,'-?php ').replace(/(<\?)/gi,'-? ').replace(/\?>/gi,' ?-');
并在服务器端
str_replace(array('-?php','?-','-?'), array('`<?php','?>`','`<?'), $_POST['comment']);