在前端学习中发现PHP的$_POST无法接收Axios传送过来的post数据
print-r($_POST)显示为空
解决办法,利用"php//input"将数据读出再转换为数组
header('Access-Control-Allow-Origin: *');//允许所有连接,根据情况更改
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");//允许的方法
header("Access-Control-Allow-Headers: Content-Type, Authorization");
$data = json_decode(file_get_contents("php://input"), true);
<?php
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
$list = [
'msg'=>'',
'data'=>'',
];
function getGoods(){
$server = 'localhost';
$user = 'root';
$password = '';
$conn = mysqli_connect($server,$user,$password);
if(!$conn){
die('数据库连接失败'.mysqli_connect_error());
}else{
$sql = "use ***;";//首先选择数据库
$conn->query($sql);
$sql = "select * from goods;";
$result = $conn->query($sql);
$list = [];
foreach($result as $key => $value){
//若单个转换为JSON格式后再输出,get请求这个网址后得到的data为STRING类型
array_push($list,$value);
}
return $list;
}
$conn->close();
}
function addGoods($post){//添加
$server = 'localhost';
$user = 'root';
$password = '';
foreach($post as $key => $value){
//判断是否为数组
if(is_array($value)){
foreach($value as $k => $v){
$post[$k] = htmlspecialchars($v);
}
}
//数据处理
else{
$post[$key] = htmlspecialchars($value);
}
};
$conn = mysqli_connect($server,$user,$password);
if(!$conn){
die('数据库连接失败'.mysqli_connect_error());
}else{
$sql = "use ***;";//首先选择数据库
$conn->query($sql);
$sql = "select * from goods where gname = '{$post['gname']}';";
$conn->query($sql);
if($conn->affected_rows>0){
return '该物品已存在';
}else{
$sql = "insert into goods(gname,gprice,gnum) values(?,?,?);";
$stmt = $conn->prepare($sql);
$stmt->bind_param('sii',$post['gname'],$post['gprice'],$post['gnum']);
$stmt->execute();//执行!
if($stmt->affected_rows>0){
return '添加成功';
}else{
return '添加失败';
}
}
mysqli_close($conn);
}
}
function deleteGoods($id){//删除
$server = 'localhost';
$user = 'root';
$password = '';
$conn = mysqli_connect($server,$user,$password);
$sql = "use lzy;";
$conn->query($sql);
$sql = "delete from goods where gid= $id;";
$conn->query($sql);
mysqli_close($conn);
}
$data = json_decode(file_get_contents("php://input"), true);
if($data['gid']){
deleteGoods($data['gid']);
}
elseif($data['gname'])
{$list['msg'] = addGoods($data);}
$list['data'] = getGoods();
$json = json_encode($list,JSON_UNESCAPED_UNICODE);
echo $json;
?>