允许在PHP中使用Method Post发送Javascript代码

时间:2013-05-21 09:52:48

标签: php apache post

我在从我的应用提交表单时遇到问题。

我需要将一些JavaScript代码从表单发送到控制器页面。 html中的代码如下:

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

如果我发送textarea“Hello world”,例如,控制器工作正常,但如果我尝试发送一些javascript代码,如alert(1);,我会收到来自服务器的禁止消息

javascript代码作为字符串发送到服务器的任何解决方案,如过滤器或允许.htaccess文件上的内容?

谢谢!

RE-编辑: 测试示例:http://pruebas.intelectiva.biz/test/

3 个答案:

答案 0 :(得分:2)

您必须首先使用javascript转换textarea的文本,将代码(如brakets)替换为您永远不会使用的随机字母。

<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>';
?>

答案 1 :(得分:0)

它不取决于您发布的内容,但我认为这取决于您发布的位置,您确定此action="controller/mycontroller.php"是否正确?

尝试action="http://www.mysite.com/controller/mycontroller.php"而不是

如果你有一个

,也可以发布你的.htaccess

是的,如果来自shell:

,请将您的项目文件夹和文件置于正确的权限
sudo chmod 755 <filename>

答案 2 :(得分:0)

如果您收到禁用错误,那么肯定是权限错误。 它早先发生在我身上。只需右键单击您的web目录,如果您使用的是ubuntu,请确保“其他用途”文件“controller / mycontroller.php”的权限设置为“read”

你能告诉我们你正在使用哪种操作系统吗?

(顺便说一句,当你说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>";
}
?>

编辑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>