SOと同じ機能が必要なWebサイトをコーディングしています。私のサーバーはLitespeedを使用しています。これにより、phpファイルの実行速度が向上します。
通常の形式でphpコードを送信しようとすると、すべてが正常であるように見えます。データは、変数内のコードを解釈せずにアクションファイルに送信されます。$.post
しかし、jQueryメソッドを使用してコメントtextareasで同じデータを送信しようとすると、Forbidden403エラーが発生します。データは、Litespeedサーバーによって道路上でブロックされます。なぜこれが起こっているのかわかりませんが、$_POST
ajaxを使用するとデータが自動評価されるのはなぜですか?
この状況は毎回発生するわけではありませんが、場合によっては次のようになります。
this is a new message which presents this php code: <?php mysql_query("SELECT * FROM my_table"); ?>
メッセージを削除しても問題ないことに注意してください<?php
。?>
私はすでにencodeURI()
メソッドを使おうとしましたが、これは何も変わりません。
.htaccess
$ _POSTデータを自動評価しないために適用する必要のある設定はありますか?
または、コメントを送信する前に、開始タグと終了タグを置き換える必要がありますか?
後で編集
これは私が今これを解決することができた方法ですが、私はまだ提案を待ってい.htaccess
ます:
$but.prev('textarea').val().replace(/(<\?php)/gi,'-?php ').replace(/(<\?)/gi,'-? ').replace(/\?>/gi,' ?-');
およびサーバー側
str_replace(array('-?php','?-','-?'), array('`<?php','?>`','`<?'), $_POST['comment']);