使用ajax

时间:2016-02-02 20:59:18

标签: php jquery ajax

我正在尝试使用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未更改,控制台为空。

任何帮助?

3 个答案:

答案 0 :(得分:2)

首先添加php error_reporting()

Error Reporting Manual

在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代码写入该文件,您的服务器将很乐意执行该代码对他们来说。