我正在尝试使用ajax过程更改服务器上chatt.php
文件的内容。
$("#btnsend").click(function(){
var a = $("#write").val();
console.log(a); // that's ok
$.ajax({
type: "POST",
url: "ajax.php",
data: a,
dataType: "json",
success: function () {
alert("323");
}
});
});
ajax.php
$a = $_POST["a"];
$b = "chapters/chatt.php");
file_put_contents($b, $a);
没有警报,chatt.php
未更改,控制台为空。
任何帮助?
答案 0 :(得分:2)
首先添加php error_reporting()
。
在php中,您收到$_POST['a']
的未定义索引通知。你需要从ajax传递一个:
修改后的代码:
$("#btnsend").click(function(){
var a = $("#write").val();
console.log(a); // that's ok
$.ajax({
type: "POST",
url: "ajax.php",
data: "a="+a,
dataType: "json",
success: function () {
alert("323");
} });
});
正如我的其他伙伴在评论中提到的,如果你解决了这个问题,你将面临另一个问题,比如这条线的Parse错误:
$b = "chapters/chatt.php"); // unexpected bracket
旁注:
请记住error_reporting()
仅适用于开发而非制作。
答案 1 :(得分:1)
您没有发送正确的数据,请尝试:
int64_t
答案 2 :(得分:1)
您从未打扰过命名数据参数,因此$_POST['a']
不存在。 PHP期望POST数据为key=value
,并且您通过裸value
发送。
尝试
data: { a: a}
^--key
^---value
代替。
请注意,您要打开服务器直至达成完全远程攻击。如果此chatt.php
位于您网站的文档根目录中,则恶意用户可以使用您的代码将所需的 ANY php代码写入该文件,您的服务器将很乐意执行该代码对他们来说。