微信墙服务器地址,一面微信墙的诞生(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;而生产应用的大部分都…

ajax post form上传图片,ajax怎样提交form表单与实现文件上传

这次给大家带来ajax怎样提交form表单与实现文件上传&#xff0c;ajax提交form表单与实现文件上传的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。前几天&#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;因为它是一…

ajax 赋值 获取,ajax得到的数据赋值给js中的全局变量

在JS函数里面用了AJAX&#xff0c;然后就发现怎么里面都赋值不了给全局变量&#xff0c;原来是异步的问题&#xff0c;如下&#xff1a;我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量&#xff0c;但是却怎么都赋不进&#xff0c;为什么呢&#xff1f;原因其实很简…

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…

git 工具

https://www.kernel.org/pub/software/scm/git/ wget https://www.kernel.org/pub/software/scm/git/git-2.8.4.tar.xz https://git-scm.com/downloads/guis转载于:https://www.cnblogs.com/zengkefu/p/5573634.html

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

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

extern C的用法解析

http://www.cnblogs.com/xulei/archive/2006/11/12/558139.html转载于:https://www.cnblogs.com/xunbu7/p/5578681.html

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

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

进程、线程相关知识点整理

什么是进程 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源&#xff0c;是一个动态的概念&#xff0c;是一个活动的实体。 进程是一个“执行中的程序”。程序是一个没有生命的实体&#xff0c;只有处理器赋予程序生命时&#xff0c;它…

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

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

c/c++多线程编程中最好不要加volatile

来自https://www.zhihu.com/question/31459750 答主解释说&#xff1a;不能指望volatile能解决多线程竞争问题&#xff0c;除非所用的环境系统不可靠才会为了保险加上volatile&#xff0c; 或者从极限效率考虑来实现很底层的接口&#xff0c;这要求编写者对逻辑走向很清楚&…

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

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

iOS  Emoji表情编码/解码

之前做弹幕的时候 遇到的表情编码解码问题 表情编码一般是使用unicode编码 &#xff0c;编码之后的格式 \ud83d\ude18\ud83d\ude18world\u4e16\u754chaha\ud83d\ude17 //编码NSString *uniStr [NSString stringWithUTF8String:[_barrageText.text UTF8String]];NSData *uniDat…

时间单位的档案

时间单位的档案 2011-09-14 10:33:20分类&#xff1a; C/C 编辑&#xff1a; 李瑛 撰文/David Labrader [崔琳琳/译 曾少立/校]时间的单位可以从极小到极大&#xff0c;下面的描述是想传达一种超大时间跨度的感受。一渺秒&#xff08;十亿分之一秒的十亿分之一&#xff09;科学…

MySQL数据查询新人须知

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