微信小程序与PHP的交互——简单登录实现

前语:去年参加的大学生创新创业训练计划,项目是班务管理微信小程序开发,(大一时候我学的数据库是MySQL)所以有一些数据需要通过小程序录入并且保存到数据库,完成开发后,写一篇关于微信小程序PHP交互博客。

环境准备:

  1. LNMP(Linux、NGINX、MySQL、PHP)
  2. 备案过的域名——如果仅仅测试用可以在微信开发者工具勾选“不检验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书”。

举个例子:实现简单登录操作。

login.js(部分)

/**
 * 登录按钮实现
*/
loginHandle: function(){
console.log('输入的账号'+this.data.username)
console.log('输入的密码'+this.data.password)
wx.request({
  url: 'https://个人域名/WeChatConnect/login.php',
  method:'post',
  data:{
    username:this.data.username, //发送的数据,成功就写入存储
    password:this.data.password
  },
  header:{
    "Content-Type": "application/x-www-form-urlencoded"
  },
  /**
   * 获取数据库成功
   */
  success:function(res){
    console.log('获取数据库密码'+res.data)
    if (res.data != null && res.data != "无法匹配!"){
      wx.showToast({
        title: '登录成功',
        duration: 2000
      }),
      wx.setStorageSync('loginUser', res.data.username)
      wx.setStorageSync('realname', res.data.realname)
      wx.switchTab({
        url: '/pages/mine/mine',
      })
    } else{
      wx.showModal({
        title: '错误',
        content: '密码验证失败\r\n请检查账号密码后重试',
        showCancel: true
        })
    }
  },
})
}

解释一下,我们这里使用的是微信小程序的wx.request方法来向PHP接口调起请求,然后设置头部信息(header);方法使用POST,之所以用post方法传输是因为post方法在传输的时候浏览器地址栏不会显示传输的参数信息,但是get会;data部分就传两个参数——用户名跟密码。

connect.php

<?php
header("Content-type: text/html; charset=utf8");
//1. 声明字符编码

$host='127.0.0.1';//数据库ip,这PHP文件是存服务器,所以本机ip就行了,其他服务器就填真实ip

$user='ILoveLinkinPark';//用户名,自己实际情况设置

$password='ILoveLinkinPark';//密码,自己实际情况设置

$dbName='WXDatabase';//要连接的数据库名

$con =new mysqli($host,$user,$password,$dbName);//数据库连接
/*
if (!$con) {
  echo "系统异常,连接数据库失败";
}*/
?>

这里的连接文件是在和数据库同一个机器,所以是127.0.0.1回环地址。如果是其他服务器,填写其他服务器的ip地址,并且记得开启访问权限。

login.php

<?php
include 'connect.php';//调用connect.php文件

$username=$_POST["username"];//接收js传过来的参数
$password=$_POST["password"];


if ($con->connect_error){//判断数据库连接是否正常
die("连接失败:".$con->connect_error);
}else {
  $sql="select * from user where username='$username'and password='$password';";//根据传入的参数查询数据库中的数据
  $res=$con->query($sql);
  $data=$res->fetch_array(PDO::FETCH_LAZY);
  
  if (json_encode($data["password"]) == '"'.$password.'"') { //json_encode($data["password"]) == "'"+$password+"'"
  	// code...
  	echo((json_encode($data)));
  }
  else{
  	// echo((json_encode($data)));
  	echo("无法匹配!");
  }
}

?>

首先是引用connect.php文件,然后获取微信小程序js传的参数——用户名和密码,判断连接正常之后,我们再执行MySQL里面的SQL语句,进行查询。

SELECT * FROM 表名 WHERE username = '$username' AND password = '$password';

如果账号密码都正确,就返回查询得到的数据小程序端——包括数据库的记录真实姓名(realname)。

 

 

这里是简单的例子,如果看不懂,或者需要源码可以私聊我,经常在线。

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值