微信墙服务器地址,一面微信墙的诞生(3) 用户端界面的创建

a69c7c821ba3

在用户发表留言之前,需要进入登录状态。在微信平台中,登录应该是一个自动的过程:用户只需要进行一次授权,往后的登录都由后台自己来处理。

在 client 文件夹下新建 index.php :

登录流程

首先要处理自动登录这一流程,在没有接入微信平台之前,我们可以先这样做:用户进入客户端时自动登录我们的测试帐号 abcdefg,方法很简单,直接给 session 赋值即可。

session_start();

if(!isset($_SESSION['wall_open_id'])){

//未登录时自动登录abcdefg

$_SESSION['wall_open_id']='abcdefg';

//预留:后期需要跳转到微信授权页

}

$openid=$_SESSION['wall_open_id'];

提取用户信息

登录之后,我们就可以用 openid 从数据库拉取当前用户的信息:

//获取当前用户数据

require('../util/database.class.php');

$db=Db::getInstance();

$user=$db->find("SELECT * FROM user where openid='$openid'");

if(empty($user))

die('用户不存在');

构造界面

将之前的 php 语句块封闭,在下面直接编写 html 代码。初步的界面只有三个部分:

用户的昵称

输入文本域

提交按钮

由于我们的界面是要在手机上跑的,所以要加上移动显示屏的适配:

整体HTML代码:

欢迎使用微信墙

欢迎您:<?php echo $user['nickname'];?>

留言

a69c7c821ba3

图3-1 Chrome浏览器开发者工具中的效果

将数据发送给服务器

导入 jQuery

在 head 部分导入 jQuery CDN,也可以下载到本地服务器上引用:

编写 post 脚本

在 body 中编写 javascript 语句,当按钮被触发时,将文本域的数据发送给服务器,并 alert 返回的信息:

$(document).ready(function(){

$('#post-button').click(function(){

$.post('../server/new.php',{

content:$('#message').val()

},function(response){

var data=JSON.parse(response); //解析json数据

alert(data.message);

})

});

});

a69c7c821ba3

图3-2 发送消息测试

a69c7c821ba3

图3-3 消息已经显示在数据库

完整代码

/client/index.php

session_start();

if(!isset($_SESSION['wall_open_id'])){

//未登录时自动登录abcdefg

$_SESSION['wall_open_id']='abcdefg';

//预留:后期需要跳转到微信授权页

}

$openid=$_SESSION['wall_open_id'];

//获取当前用户数据

require('../util/database.class.php');

$db=Db::getInstance();

$user=$db->find("SELECT * FROM user where openid='$openid'");

if(empty($user))

die('用户不存在');

?>

欢迎使用微信墙

欢迎您:<?php echo $user['nickname'];?>

留言

$(document).ready(function(){

$('#post-button').click(function(){

$.post('../server/new.php',{

content:$('#message').val()

},function(response){

var data=JSON.parse(response); //解析json数据

alert(data.message);

})

});

});

至此,我们完成了从数据库提取用户信息、向消息服务端发送留言两大过程。

a69c7c821ba3

图3-3 已经完成的部分

下一步我们将完成消息的推送功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pg数据库json数据类型_PostgreSQL与开发者起舞—让数据库更好服务于开发

写在前面的话&#xff1a;本文内容有对应50分钟视频讲解&#xff0c;有兴趣可以访问PG与开发者共舞。很多数据库的对比的活动都是基于数据库本身的一些的底层的功能以及纯数据库方面的对比&#xff0c;等等。更多方面数据库是要为应用来服务的&#xff0c;而生产应用的大部分都…

系统启动 之 Linux系统启动概述(2)

博客&#xff1a;http://blog.csdn.net/younger_china/article/details/51615916 Linu系统启动是一个”冗长乏味”的过程,那么我们现就需要去经历一下这个冗长乏味的生活。我们按照如下流程来分析&#xff1a; 1. 史前时代&#xff1a;BIOS 计算机在上电那一刻几乎是毫无用处的…

python 全文搜索 句子_python新玩法:用python进行文章摘要拿取,只需要一行代码

前言今天为大家介绍一个python算法TextRank,实现从长篇中快速抽取精准摘要。TextRank是一种基于图形的文本处理排序算法。PageRank通常用作其底层的图排序模型。当然&#xff0c;其他的图排序模型也可以与之结合。TextRank算法不需要深入的语言和专业知识&#xff0c;因为它是一…

Django小项目简单BBS论坛

开发一个简单的BBS论坛项目需求&#xff1a;1 整体参考“抽屉新热榜” &#xff0b; “虎嗅网” 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数、点赞数展示 5 在线用户展示 6 允许登录用户发贴、评论、点赞 7 允许上传文件 8 帖子可被置顶 9 可进行多级评论知识必备&#x…

时间转年月日_编程中常见的时间格式

时间格式前端和后端时经常会遇到各种各样的时间格式&#xff0c;这些格式在编写程序的时候都需要去使用不同的处理方式&#xff0c;这里集中写一下。先说一下各种不同的时间格式。类型名格式说明ISO 8601一般&#xff1a;2020-12-05T05:33:19Z 东八区&#xff1a;2004-05-03T17…

外星人台式机无盘服务器,可以拎走的“台式机” Alienware Area-51m评测

Alienware外星人这个品牌曾经一度是游戏笔记本领域的执牛耳者&#xff0c;自从1996年创立以来&#xff0c;品牌宗旨就是提供最强的PC性能&#xff0c;最有个性的设计和最好的服务。凭借着强悍的配置、创新的黑科技和酷炫的灯效&#xff0c;其一度是业内高端和高品质的代名词。但…

法流程图_世界五大学习方法之西蒙学习法

世界五大学习方法之西蒙学习法摘要&#xff1a;西蒙学习法为6个月可以掌握任何一门学问&#xff0c;它的本质是广义动量定理。广义动量定理通过调整力量、方向、作用点和时间来增加成果。西蒙学习法使用了降低问题难度方法中的一种&#xff1a;拆分。本节分为四个部分&#xff…

生成word_Word如何生成目录?3个步骤轻松掌握!

在使用Word编写长篇文档时&#xff0c;我们经常会给内容生成一个目录&#xff0c;有了目录&#xff0c;无论是阅读还是查找内容&#xff0c;都非常方便。Word生成目录是一项核心功能&#xff0c;这是每个使用Word的人&#xff0c;必须要掌握的一项技巧。如果你还不会这项技巧&a…

启动go服务_内网穿透工具 FRP公网服务端、内网客户端快速配置文件说明

内网穿透工具 FRP 公网服务端、内网客户端 frps.ini 、frpc.ini 配置文件常用设置展示及说明公网服务端 frps.ini 配置文件常用设置公网服务端配置文件&#xff1a;frps.ini[common]bind_port 7000# vhost_http_port 参数来设置 HTTP 访问端口&#xff0c;此处示例&#xff1a…

设置dns_2019让你的网速飞起来,你需要……设置正确DNS服务篇

有时候上网明明网络连接正常&#xff0c;但网页访问却很慢&#xff1f;平时会不会经常听到一些老司机说&#xff0c;网络很慢啊可以修改一下DNS啊&#xff01;什么是DNS&#xff1f;又为什么会对网速产生影响呢&#xff1f;跟着小编的教程一起来学习一下吧~PART 1 什么是DNS&am…

5 随窗口改变大小_C4D默认界面两个关于坐标轴的窗口有什么区别

前言在一开始学习C4D的时候&#xff0c;就有这个疑问&#xff0c;为什么明明物体的属性都有了一个坐标属性的窗口了&#xff0c;还要有一个和坐标相关的窗口在默认的界面呢&#xff0c;后边在使用的过程中才慢慢理解了额外的坐标管理器窗口的作用&#xff0c;这一篇文章我们来看…

MySQL数据查询新人须知

MySQL 是一个开放源码的小型关系型数据库管理系统。 针对不同的用户&#xff0c;MySQL 一共分为两个不同的版本&#xff1a; MySQL Community Server&#xff08;社区版服务器&#xff09;。 MySQL Enterprise Server&#xff08;企业版服务器&#xff09;。 目前 Internet …

(硬 核)Navicat for MySQL 介 绍( 入 门 须 知 )

Navicat for MySQL 是一款流行的 MySQL 图形化管理工具以下是 Navicat for MySQL 工作界面使用 Navicat for MySQL 连接 MySQL 服务器鼠标左键单击“连接”按钮&#xff0c;出现“新建连接”窗口。分别输入连接名、MySQL 服务器主机地址、服务 端口号、用户名和密码&#xff0c…

小明一家过桥_【练习】用python解决小明一家过桥问题

import randomlist1[] #存放所有遍历的结果#等待过桥的人员bridge1{小明:1,弟弟:3,爸爸:6,妈妈:8,爷爷:12}#过桥后的人员bridge2{}#判断未过桥的人是否空了(全部过完后&#xff0c;程序停止&#xff0c;看总共用了多长时间)len1len(bridge1)print(len1)#while True:print(初始情…

WGZX:javaScript 学习心得--1

标签&#xff1a; javascriptiframedreamweaver浏览器htmltable2008-09-11 10:50 1071人阅读 评论(0) 收藏 举报分类&#xff1a;UI&#xff08;21&#xff09; 1&#xff0c;document.getElementById方法只能获取到一个对象&#xff0c;即使有多个同名的对象&#xff0c;也只取…

PHP----练习-----新闻管理----增删改查

练习-----新闻管理 题目要求如下&#xff1a; 做法&#xff1a; 【1】建数据库 【2】封装类文件--------DBDA.class.php 1 <?php2 class DBDA3 {4 public $fuwuqi"localhost"; //服务器地址5 public $yonghuming"root";//用户名6 public …

mysql query cache 关闭_为什么要关闭MySQL query cache-Fun言

MySQL的query cache大部分情况下其实只是鸡肋而已&#xff0c;建议全面禁用。当然了&#xff0c;或许在你的场景下还是挺好的&#xff0c;还能发挥作用&#xff0c;那就继续使用吧&#xff0c;把本文当做参考就好。不过&#xff0c;可能有的人人为只需要把 query_cache_size 大…

Java 基础之java运算符

运算符&#xff0c;顾名思义就是用于计算的符号。按功能分为&#xff1a;赋值运算符、算术运算符、关系运算符和逻辑运算符按操作数的个数分类&#xff1a;单目运算符、双目运算符、三目运算符运算符的目&#xff1a;运算符能连接操作数的个数称为运算符的目运算符的优先级&…

直流电机调速仿真作业

本次调速仿真采用PID调节。首先要确定PID中的各项设计参数&#xff0c;仿真过程中采用临界比例度法确定了大概的Kp值。在若干次调整的过程中&#xff0c;发现加入微分环节后调整时间略有上升&#xff0c;故采用PI调节。调整参数确定为Kp75,Ki22。控制器部分的程序如下图所示。原…

Java运算符优先级和表达式及数据类型转换

计算机程序在处理数据时会进行大量的计算&#xff0c;而数据的运算则需要借助运算符和表达式来完成。表达式是指由操作数和运算符组成的用于完成某种运算功能的语句子表达式Y X * ( Z 10 ) 表达式 其中Y、X、Z、10 称为操作数&#xff0c;、*、 称为运算符。 在…