<?php
$cdata = $_GET['cdata'];
$cfile = "./output/$ip/output.css";
$cout = fopen($cfile, 'w') or die("1");
fwrite($cout, $cdata) or die("Could not write to " . $cfile);
echo("Wrote CSS to " . $cfile . " successfully.<br />");
fclose($cout);
?>
当我在我的网络服务器上执行此操作时,它会告诉我它已成功(或者我没有发现错误),但它会写出我想要的部分内容。这是我告诉它写的内容(通过url传递为$_GET['cdata']
):
body{background: #000; color: #FFF;}
这就是我从文件中获取的内容
body{background:
请注意,最后有一个空格,所以我假设磅(#)导致问题,但不知道为什么或如何修复它。
这不是我的整个代码,只是一个片段,我认为错误在哪里。我希望这是足够的信息,如果不是请问,我会尝试抛出其他任何东西。提前谢谢。
解
由于我使用jQuery的$ .post()方法来发送数据,所以我需要做的就是用encodeURIComponent()包装正在发送的数据,这似乎已经完成了。谢谢@xbonez指出我正确的方向。
答案 0 :(得分:4)
您需要对您的网址属性进行编码,网址中的#被视为哈希值而不会被发送到服务器。例如
var args = 'cdata='+encodeURIComponent('body{background: #000; color: #FFF;}');
答案 1 :(得分:0)
获取请求是从网址获取值。您可能希望base64将它们编码到url中或使用Post变量。例如:隐藏的输入表单类型。