PHP+Mysql+jQuery实现发布微博程序 php篇

先还是要说明本例的业务流程:

1、前端用户输入内容,并对输入的内容字数进行实时统计。

2、用户提交数据,jQuery实现通过Ajax向后台发送数据。

3、后台PHP接收提交表单的数据,并对数据进行必要的安全过滤。

4、后台PHP连接Mysql数据库,并将提交过来的表单数据写入到相应的数据表中。

5、后台向返回成功结果数据内容,并通过Ajax将返回的数据内容插入到前端页面中。

上述1、2步在前篇文章:jQuery篇已讲解了,本文将完成剩余的散步。

效果图:

数据表首先我们要准备一个数据表,表结构如下:

CREATE TABLE `say` (

`id` int(11) NOT NULL auto_increment,

`userid` int(11) NOT NULL default '0',

`content` varchar(200) NOT NULL,

`addtime` int(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

注意,本例中将时间字段:addtime的类型设置为int,是为了后续的时间处理方便,在很多应用中(如Discuz论坛)都是将时间类型转成数字型。

时间轴处理函数和格式化输出列表函数:

时间轴处理函数,就是把时间转换成我们看到的诸如“5分钟前”,“昨天 10:21”等形式,代码如下:

/*时间转换函数*/

function tranTime($time) {

$rtime = date("m-d H:i",$time);

$htime = date("H:i",$time);

$time = time() - $time;

if ($time < 60) {

$str = '刚刚';

}

elseif ($time < 60 * 60) {

$min = floor($time/60);

$str = $min.'分钟前';

}

elseif ($time < 60 * 60 * 24) {

$h = floor($time/(60*60));

$str = $h.'小时前 '.$htime;

}

elseif ($time < 60 * 60 * 24 * 3) {

$d = floor($time/(60*60*24));

if($d==1)

$str = '昨天 '.$rtime;

else

$str = '前天 '.$rtime;

}

else {

$str = $rtime;

}

return $str;

}

格式化输出函数是将得到的用户信息和发布内容及时间按照一定的格式输出到前端页面的函数,代码如下:

function formatSay($say,$dt,$uid){

$say=htmlspecialchars(stripslashes($say));

return'

alt="demo" />

demo_'.$uid.' '.

preg_replace('/((?:http|https|ftp):\/\/(?:[A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):

?(\d+)?\/?[^\s\"\']+)/i','$1',$say).'

'.tranTime($dt).'

';

}

将以上两个函数都放入function.php中,准备随时被调用。

submit.php处理表单数据在之前文章中,我们知道jQuery将前端获得的数据以POST方式,通过Ajax提交给了后台的submit.php。那么submit就是要完成后续的所有一摊子任务。请看代码:

require_once('connect.php'); //数据库连接文件

require_once('function.php'); //函数调用文件

$txt=stripslashes($_POST['saytxt']); //获取提交的数据

$txt=mysql_real_escape_string(strip_tags($txt),$link); //过滤HTML标签,并转义特殊字符

if(mb_strlen($txt)<1 || mb_strlen($txt)>140)

die("0"); //判断输入字符数是否符合要求

$time=time(); //获取当前时间

$userid=rand(0,4);

//插入数据到数据表中

$query=mysql_query("insert into say(userid,content,addtime)values('$userid','$txt','$time')");

if(mysql_affected_rows($link)!=1)

die("0");

echo formatSay($txt,$time,$userid); //调用函数输出结果

注意,本例中为了演示,将用户ID(userid)进行随机处理,实际的应用是获取当前用户的ID。另外数据库连接文件,大家可以自己写一个,在我提供的下载的DEMO里也有这个文件。

最后要回到前端页面index.php来。index.php主要除了提供输入的入口,还要承接后台处理返回的结果,并且要将数据库里已有的数据显示出来。代码如下:

define('INCLUDE_CHECK',1);

require_once('connect.php');

require_once('function.php');

$query=mysql_query("select * from say order by id desc limit 0,10");

while ($row=mysql_fetch_array($query)) {

$sayList.=formatSay($row[content],$row[addtime],$row[userid]);

}

?>

140说说你正在做什么...

以上就是本文的全部内容,希望对大家的学习有所帮助。相关阅读:

SSH框架网上商城项目第7战之整合Struts2和Json

js动态生成Html元素实现Post操作(createElement)

jquery 操作css样式、位置、尺寸方法汇总

js获取url传值的方法

Win7无法双击打开jar文件怎么办?Win7不能双击打开jar文件的解决方法

jquery实现经典的淡入淡出选项卡效果代码

C#使用IComparer自定义List类实现排序的方法

C++学生信息管理系统

Win10安装出现卡死或黑屏怎么办?Win10安装卡死或黑屏问题解决方法

JDBC 使用说明(流程、架构、编程)

基于jquery实现复选框全选,反选,全不选等功能

java实现输入输出流代码分享

Mac系统截图快捷键技巧汇总详细介绍

win10系统怎么设置开机加速?

php表单数据提交到本业,PHP_PHP+Mysql+jQuery实现发布微博程序 php篇,先还是要说明本例的业务流程 - phpStudy...相关推荐

  1. 解决ssm项目表单数据提交到数据库乱码问题

    解决ssm项目表单数据提交到数据库乱码问题 参考文章: (1)解决ssm项目表单数据提交到数据库乱码问题 (2)https://www.cnblogs.com/duzhentong/p/8576512 ...

  2. 微信小程序(第二十二章)- 表单数据提交

    微信小程序(第二十二章)- 表单数据提交 问题 实现步骤 问题 什么时候(怎样)提交数据? 当点击 form 表单中 form-type 为 submit 的 button 组件时,会将表单组件中的 ...

  3. django(7)modelform操作及验证、ajax操作普通表单数据提交、文件上传、富文本框基本使用...

    一.modelForm操作及验证 1.获取数据库数据,界面展示数据并且获取前端提交的数据,并动态显示select框中的数据 views.py from django.shortcuts importr ...

  4. uniapp 表单提交图片跟其他填写数据_记录第一次实现表单数据提交到数据库

    经过几周的Web前端学习我初步对.html文件.php文件有了一定的了解.首先我们来复习一下学过的知识.HTML页面实际上就是静态的网页页面,我们可以用html+css(层叠样式表)来创作出具有不同格 ...

  5. 提交表单到mysql数据库_记录第一次实现表单数据提交到数据库

    ​经过几周的Web前端学习我初步对.html文件.php文件有了一定的了解.首先我们来复习一下学过的知识. HTML页面实际上就是静态的网页页面,我们可以用html+css(层叠样式表)来创作出具有不 ...

  6. html表单数据提交服务器,form表单提交数据到服务器

    [TOC] >[success] # form表单提交数据到服务器 ~~~ 下面案例通过'form表单'的方式提交给后台数据,在'index.html'页面'input'中输入内容提交给后台, ...

  7. 简单表单提交php教程,PHP 表单数据提交与接收 超级简单《SSS教程 10》

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 需要建立2个php文件: index.php 与 2.php 1:建立 index.php //(复制以下代码到记事本另存为 index.php ,保存时 ...

  8. vue自动提交表单_(尚012)Vue表单数据的自动手集(表单数据提交,需要收集表单数据)...

    自动收集,就是我一输入数据,就自动收集,等我点击提交按钮的时候,数据就收集好了 1.使用v-model对表单数据自动收集 1)text/textare----单行/多行输入框 2)checkbox-- ...

  9. vue form表单数据提交与 router 按钮快速调用页面

    vue+element-ui 第一章 Form表单的校验与按钮调用页面(router跳转页面) 文章目录 vue+element-ui 前言 一.vue是什么? 二.表单验证 1.element-ui ...

最新文章

  1. Error:Execution failed for task ':app:mergeDebugResources'. Error: java.lang.RuntimeException: Som
  2. Jquery调用webservice
  3. Centos 6 克隆导致网卡eth0变成eth1、及修改网卡名的方法
  4. java基础:关键字
  5. cvc降噪和主动降噪_降噪蓝牙耳机哪款好?300内建议入手的五款主动降噪蓝牙耳机...
  6. 如何更改计算机性能,如何修改注册表优化电脑性能 修改注册表优化电脑性能方法...
  7. 深入理解计算机系统读书笔记
  8. Codeforces 708D 上下界费用流
  9. codeblock无法新建工程_龙园路顶管工程顶管机顺利始发,项目预计明年5月完工...
  10. 23. 考虑用排序的vector替代关联容器
  11. 工程师应用计算机考试题型,IE工程师考试试题
  12. Navicat安装与破解
  13. AutoSAR入门到精通讲解 (AuroSAR-CP描述) 1.1 AutoSAR-CP简介
  14. android播放ts格式文件,android上实现离线缓存播放加密HLS视频和未加密的HLS视频...
  15. 基于FPGA的PWM加减速控制实现
  16. 求根计算机在线,在线一元方程求解计算工具-一元函数自动求解在线计算器
  17. 微旅游“领跑”小长假“清肺”
  18. 醉翁之意不在酒,网易“星球”意在用户数据
  19. 盲沟低比?不不不,是芒果的笔,今天学一下分布式文件存储数据库MongoDB。
  20. Win10系统提示“抱歉,目前Cortana不支持中文(中华人民共和国)”

热门文章

  1. 《Photoshop修色圣典(第5版)》目录—导读
  2. .NET中的枚举(Enum)
  3. 微信浏览器禁止页面下拉查看网址
  4. [Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]
  5. java验证码(采用struts2实现)转
  6. 网站建设中关于eclipse启动参数的优化
  7. 防止VLAN间的ARP***解决方案
  8. 2005年中国之“至理名言”
  9. vim配置及插件安装笔记
  10. 利用WPF建立自己的3d gis软件(非axhost方式)(五)在鼠标点击的位置增加UI