다음으로 백엔드가 프런트엔드의 데이터 및 사진과 어떻게 상호 작용하는지에 대해 이야기하겠습니다. 그 당시에는 팀에서 백엔드 개발을 담당했기 때문에 이 점이 많은 사람들의 관심사라고 생각합니다. 프론트엔드에 대한 자세한 내용은 여기에 게시하겠습니다. 프론트엔드 개발 중 일부 코드 스크린샷은 WeChat 애플릿의 공식 API 소개 주소입니다:
https://mp.weixin.qq.com/debug/wxadoc/ dev/api/api-network.html
WeChat과 백엔드 서버 간의 데이터 통신은 wx.request(OBJECT)를 호출하여 이루어집니다. 예를 들어 프론트엔드가 데이터를 보내는 경우입니다. 백엔드에 연결하려면 서버 PHP 작업 경로 아래의 특정 PHP 파일에 연결해야 하며 json 형식 데이터를 키-값 형식으로 캡슐화해야 합니다. 다음 코드를 참조하세요.
url은 서버의 도메인 이름입니다. 서버의 isbn.php 위치는 이전 기사에서 구입한 이미지의 상대 위치입니다. 기본 PHP 파일 경로는
/yjdata/www/
입니다. 이 폴더에 직접 배치하면 도메인 이름 뒤에 /+*.php가 바로 뒤에 와야 합니다. 관리의 편의를 위해 이 디렉터리에 폴더를 만드는 경우 뒤에 /folder name/*.php를 추가하면 됩니다. 도메인 이름.
<?php$result=$_GET["result"];/*获取前端微信小程序扫书的isbn结果*/
/*与第三方接口通信获取书本信息*/
$book_info=file_get_contents("https://api.douban.com/v2/book/isbn/:".$result);$jsondecode = json_decode($book_info,true);/*将获取到的书本信息JSON解码*/$title=$jsondecode["title"];/*将解码后书名赋值给title变量*/$author=$jsondecode["author"];/*将解码后作者赋值给author变量*/$publisher=$jsondecode["publisher"];/*将解码后出版社名赋值给publisher变量*/echo "title=".$title; /*向前端返回书名*/echo "author=".$author; /*向前端返回作者名*/echo "publisher=".$publisher; /*向前端返回出版社名*/?>
게다가 위챗 애플릿의 경우 사진은 필수인데, 사진 리소스는 서버에 저장되기 때문에 사진을 어떻게 보관하느냐가 관건입니다. 다음으로 도서 정보를 데이터베이스에 삽입하는 구체적인 과정을 설명하겠습니다. . . (사실 댓글은 매우 자세합니다.)
<?phpheader('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); /*关闭数据库连接*/?>
$_FILES["file" ]["name" ] - 업로드된 파일의 이름
$_FILES["file"]["type"] - 업로드된 파일의 유형
$_FILES["file"]["size "] - 업로드된 파일 크기(바이트)
$_FILES["file"]["tmp_name"] - 서버에 저장된 파일의 임시 복사본 이름 $_FILES["file"][" error"] - 파일 업로드 코드로 인한 오류 관련 권장 사항:
파일을 주고받는 아주 간단한 방법입니다. 수신 후 파일명을 "."으로 분할하여 접미사를 구합니다. 다음으로 접미사를 판단해야 합니다. 일반적으로 사용되는 이미지 접미사 형식인지 확인하고, 이미지 크기가 1MB 미만이면 다음 작업을 진행합니다. 이때 이미지는 캐시 영역에 있으므로 이미지 이름을 변경하여 저장해야 합니다. 책 이미지 폴더에 이 부분이 코드에 구현되어 있습니다. 또한 책에 대한 다른 정보와 함께 이미지 경로를 데이터베이스에 저장하는 것도 필요합니다. 지금까지 기본 미니 프로그램과 백엔드 간의 상호 작용에 대해 대부분 이야기했으며, 기본적으로 간단한 미니 프로그램을 완성할 수 있습니다.
위 내용은 WeChat 애플릿은 백그라운드 PHP와의 상호 작용을 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!