我在从我的应用提交表单时遇到问题。
我需要将一些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/
答案 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>