PHP $_POST获取的数据显示 Undefined array key 是什么原因呢

yxy
  • 1
新手上路,请多包涵

前端代码

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse){        
    console.log("收到来自content-script的消息:");
      var pageinfo=new Array(request.msg);
      console.log(pageinfo);
    var rep=$.ajax({
          type:"post",
         url:"http://127.0.0.1/mysqlhelper.php",
         dateType:"json",
         async:true,
         date:{'pageinfo':pageinfo},
             error: function(request) {
                             console.log("Connection error");
                         },
                success: function(res) {
                             console.log(res);
                         }
         });
});
 

PHP代码

 
$pageinfo=$_POST['pageinfo'];
$pageinfoarr=explode('@',$pageinfo);
print_r($pageinfoarr);
$servername="127.0.0.1";
$username="root";
$password="Yaoxiuyi@123";
$conn=new mysqli($servername,$username,$password);
if($conn->connect_error){
    die("could not connect:".mysql_error());
}
echo"connect successfully";
$idval=$pageinfoarr[0];
$sql="select * from skulink where id='{idval}'";
$result=$conn->query($sql);
if($result->rows>0){
    while($row=$result->fetch_assos()){
        echo"id:".$row["id"];
    }
    }else{
        echo"0 results";
    }
 
?>

控制台提示
收到来自content-script的消息:
background.js:6 ['636364439288@蓝盘间金主图款@柠檬黄@黑盘@蓝盘银色@黑盘绿圈@蓝盘银带@20144']
Warning: Undefined array key "pageinfo" in D:\webroot\phplearn\mysqlhelper.php on line 5

Array
(
[0] =>
)
connect successfully

Warning: Attempt to read property "rows" on bool in D:\webroot\phplearn\mysqlhelper.php on line 22

0 results

回复
阅读 2.5k
2 个回答

@imPage 所说,应该是 data

- date:{'pageinfo':pageinfo},
+ data:{'pageinfo':pageinfo},

其次就是,PHP 虽然已经做了很多事儿,但是目前 PHP 尚不能 “自动处理” JSON 格式的数据,你需要自行处理一下,像下面这样。

- dateType:"json",
- data:{'pageinfo':pageinfo},
+ data: $.param({'pageinfo':pageinfo}),

这样处理后,你才能在后台使用 $_POST 取到 pageinfo。

当然,你也可以不处理前端的,直接处理后端。

$data = json_decode(file_get_contents('php://input'), true);

var_dump($data);

你确定是date不是data?

宣传栏