0

アプリからフォームを送信する際に問題があります。

フォームからコントローラ ページに JavaScript コードを送信する必要があります。html のコードは次のようになります。

<form method="post" action="controller/mycontroller.php">
    <textarea name="code"></textarea>
    <input type="submit" value="send" />
</form>

textareaたとえば、「He​​llo world」を送信すると、コントローラーは正常に動作しますが、サーバーから禁止されたメッセージを受け取るjavascriptようなコードを送信しようとすると、.alert(1);

javascriptコードをフィルターのような文字列としてサーバーに送信したり、.htaccessファイルで何かを許可したりするためのソリューションはありますか?

ありがとう!

再編集: テスト例: http://pruebas.intelectiva.biz/test/

4

3 に答える 3

2

最初にテキストエリアのテキストを javascript で変換して、ブレーキのようなコードを決して使用しないランダムな文字に置き換える必要があります。

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function() {
    $("#send").click(function(event) {
        event.preventDefault();

        var code = $("#code").val();

        code = code.replace(/\(/g, "^)·(");
        code = code.replace(/\{/g, "=?¿¡12");
        code = code.replace(/\</g, "++ççcsacsa");

        $("#code").val(code);
        alert (code);

        $("#form").submit();
    });
});
</script>

次に、サーバー側でテキストを目的のテキストに再変換します。

<?php
$code = $_POST['code'];
$code = str_replace('^)·(', '(', $code);
$code = str_replace('=?¿¡12', '{', $code);
$code = str_replace('++ççcsacsa', '<', $code);
echo '<script>'. $code . '</script>';
?>
于 2013-05-21T12:17:26.807 に答える
0

禁じられたエラーが発生した場合は、間違いなくパーミッション エラーです。それは以前に私に起こりました。Webディレクトリを右クリックして、ubuntuを使用している場合は、「その他の用途」のファイル「controller/mycontroller.php」のアクセス許可が「読み取り」に設定されていることを確認してください

使用しているOSを教えてください。

(ちなみに、action="controller/mycontroller.php" というときは、フォルダーコントローラーが HTML フォームと同じフォルダーにあることを意味します)

また、JavaScript を実行するには、php ファイルは次のようになります。

<?php
    echo "<script>" . $_POST['code'] . "</script>";
?>

編集:やあ友達!私のサーバーであなたの例を試してみましたが、うまくいきました。これが私のアプリです:

http://106.51.68.115/test/x.html 

フォームを別の php ファイルに送信する代わりに、同じファイルに送信してみてください。

<form method="post" action="controller/mycontroller.php">
    <textarea name="code"></textarea>
    <input type="submit" value="send" />
</form>

<?php
if(isset($_POST['code'])){
print "<script>".$_POST['code']."</script>";
}
?>

EDIT XYZ: このコードを試してみてください。PHP は関係ありません。うまくいくと思います。

<html>
<body>
<form name = "x">
<textarea id="code"></textarea></form><button onclick="document.write('<script>'+document.x.code.value+'</script>');">send</button>
</body>
</html>
于 2013-05-21T09:57:31.453 に答える
0

何を投稿しているかには依存しませんが、投稿している場所に依存していると思いますが、これaction="controller/mycontroller.php"は正しいですか?

action="http://www.mysite.com/controller/mycontroller.php"代わりに試す

.htaccessあなたが持っている場合はあなたも投稿してください

ええ、シェルからの場合は、プロジェクトフォルダーとファイルを適切なパーミッションに設定してください:

sudo chmod 755 <filename>
于 2013-05-21T09:56:52.543 に答える