这篇文章将为大家详细讲解有关微信小程序如何与后台PHP进行交互,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:接下来将讲后台如何与前台进行数据及图片之间的交互,相
这篇文章将为大家详细讲解有关微信小程序如何与后台PHP进行交互,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体如下:
接下来将讲后台如何与前台进行数据及图片之间的交互,相信这一点是很多人所关注的,因为当时我实在团队中负责后台开发,因此对前端不是特别了解,这里我会贴出前端开发时的部分代码截图,微信小程序的官方api介绍地址是:
https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-network.html
微信与后台服务器之间的数据通信是调用wx.request(OBJECT)
实现的,官方api接口里有对此说明,
例如前台向后台发送数据,需要链接服务器php作用路径下的具体php文件,并以key-value形式封装JSON格式数据,请看以下代码:
url是服务器的域名及isbn.php在服务器的位置,这个位置是相对位置,在我上一篇购买的镜像里默认php文件路径为:
/yjdata/www/ ,这就意味着直接放在这个文件夹下的php只需要在域名后直接/+*.php即可,如果为了方便管理在这个目录下建了一个文件夹则在域名后/文件夹名字 $book_info=file_get_contents("Https://api.douban.com/v2/book/isbn/:".$result); $jsondecode = json_decode($book_info,true); $title=$jsondecode["title"]; $author=$jsondecode["author"]; $publisher=$jsondecode["publisher"]; echo "title=".$title; echo "author=".$author; echo "publisher=".$publisher; ?>
具体的注释都写得很详细,向前台返回数据则直接用echo即可,一般开发都要与数据库打交道,因此,后台程序就需要依据前台传来的数据对数据库进行操作,这一部分其实也就是接受前台的数据,执行对应的数据库操作,这一部分只要是讲到php数据库操作的都会有,这里我不再进行过多阐述。
此外,对于一个微信小程序来说,图片是必不可少的,而图片资源都是存储在服务器中的,因此如何对图片进行存储是一个关键。接下来将结合一个书本信息的具体插入数据库的过程来进行讲解。。。(其实注释特别详细)
<?php
header('content-type:application/json;charset=utf8');
$Mysql_server_name="localhost";
$mysql_username="root";
$mysql_passWord="123456";
$mysql_databasename="zhishu";
$conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_databasename);
$bookname=$_POST["bookname"];
$authorname=$_POST["authorname"];
$bookintroduce=$_POST["introduce"];
$bookholder_name=$_POST["openid"];
$bookclass=$_POST['classification'];;
date_default_timezone_set('PRC');
$time=(string)date("Y-m-d-h-i",time());function UNIOname($a) {
$a=explode('-',$a);
$a=implode('',$a);
return $a;
}
$time=Unioname($time);
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);//将图片名字以.分割成两个字符串
$extension = end($temp); // 获取图片后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 1024000) // 小于 1MB
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0) {
echo "错误:: " . $_FILES["file"]["error"] . "<br>";
} else {
// 判断当期目录下的 upload 目录是否存在该文件 // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
if (file_exists("bookimage/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " 文件已经存在。 ";
} else {
// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下 move_uploaded_file($_FILES["file"]["tmp_name"], "bookimage/".$_FILES["file"]["name"]);
$oldname = "bookimage/" . $_FILES["file"]["name"];
$newname = "bookimage/" . $time .$bookholder_name.".".$extension;
rename($oldname, $newname);
$sql_num="select * from book";
$reasult=mysqli_query($conn,$sql_num);
$reasult_num=mysqli_num_rows($reasult); $sql_insert="insert into book (book_id,bookname,authorname,book_intro,bookclass,bookholder_openid,bookpicture_path,is_CunZai,ChengJiao_num) VALUES ($reasult_num+1,'$bookname','$authorname','$bookintroduce','$bookclass','$bookholder_openid','$newname','1',0)";
if( mysqli_query($conn,$sql_insert))
{
echo "插入书籍成功!";
}
else
{
echo "插入失败";
}
}
}
}
mysqli_close($conn);
?>
首先使用$[FILE]
全局数组接受文件,其拥有的几个属性如下:
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件发送及接收方式,接收到以后对文件名字进行以“.”进行分割,这是为了获取后缀,接下来要对后缀进行判断,看是否是常用的图片后缀格式,如果是并且图片大小小于1MB,则进行接下来的操作,此时图片位于缓存区,因此必须将图片改名后存于图书图片的文件夹下,这一部分在代码里有实现,此外,还需要将图片的路径与该图书其他信息一起存到数据库里。到这里基本小程序与后台大部分能用到的交互我都在这里讲了,基本可以完成一个简单的小程序。
关于“微信小程序如何与后台PHP进行交互”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
--结束END--
本文标题: 微信小程序如何与后台PHP进行交互
本文链接: https://lsjlt.com/news/70844.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0