0

我正在编写一个必须与 SO 具有相同功能的网站。我的服务器使用 Litespeed,它提高了运行 php 文件的速度。

当我尝试以常规形式发送 php 代码时,一切似乎都很好,数据被发送到操作文件而不解释变量内的代码。但是,当我尝试使用 jQuery$.post方法在评论文本区域中发送相同的数据时,我收到了Forbidden 403错误。Litespeed 服务器在路上阻止了数据。我不知道为什么会发生这种情况,为什么$_POST在使用 ajax 时会自动评估数据?

这种情况并不是每次都会出现,只是在某些情况下才会出现,例如:

this is a new message which presents this php code: <?php mysql_query("SELECT * FROM my_table"); ?>

请注意,如果我从我的消息中删除<?phpand ,就可以了。?>我已经尝试过使用encodeURI()方法,但这并没有改变任何东西。

是否有任何设置必须应用于.htaccess不自动评估 $_POST 数据?

或者我应该在发送评论之前替换打开和关闭标签?

稍后编辑

这就是我现在设法解决此问题的方法,但我仍在等待以下建议.htaccess

$but.prev('textarea').val().replace(/(<\?php)/gi,'-?php ').replace(/(<\?)/gi,'-? ').replace(/\?>/gi,' ?-');

在服务器端

str_replace(array('-?php','?-','-?'), array('`<?php','?>`','`<?'), $_POST['comment']);
4

0 回答 0