在上一篇《PHP+MySQL+jQuery实现发布微博程序——jQuery篇》中,讲解了如何用jQuery实现输入表单的实时字数统计和Ajax提交数据到后台的功能。本文将重要介绍后台是如何处理前台提交的数据,并返回结果的。
先还是要说明本例的业务流程:
1、前端用户输入内容,并对输入的内容字数进行实时统计。
2、用户提交数据,jQuery实现通过Ajax向后台发送数据。
3、后台PHP接收提交表单的数据,并对数据进行必要的安全过滤。
4、后台PHP连接Mysql数据库,并将提交过来的表单数据写入到相应的数据表中。
5、后台向返回成功结果数据内容,并通过Ajax将返回的数据内容插入到前端页面中。
上述1、2步在前篇文章:jQuery篇已讲解了,本文将完成剩余的部分。
数据表首先我们要准备一个数据表,表结构如下:
<ol class="dp-xml"> <li class="alt"><span><span>CREATE TABLE `say` ( </span></span></li> <li><span> `id` int(11) NOT NULL auto_increment, </span></li> <li class="alt"><span> `userid` int(11) NOT NULL default '0', </span></li> <li><span> `content` varchar(200) NOT NULL, </span></li> <li class="alt"><span> `addtime` int(10) NOT NULL, </span></li> <li> <span> PRIMARY KEY (`id`) ) </span><span class="attribute">ENGINE</span><span>=</span><span class="attribute-value">MyISAM</span><span> DEFAULT </span><span class="attribute">CHARSET</span><span>=</span><span class="attribute-value">utf8</span><span>; </span> </li> </ol>
注意,本例中将时间字段:addtime的类型设置为int,是为了后续的时间处理方便,在很多应用中如Discuz论坛)都是将时间类型转成数字型。
时间轴处理函数和格式化输出列表函数:时间轴处理函数,就是把时间转换成我们看到的诸如“5分钟前”,“昨天 10:21”等形式,详细使用可以查看之前我写过的文章:PHP实现时间轴函数,代码如下:
<ol class="dp-xml"> <li class="alt"><span><span>/*时间转换函数*/ </span></span></li> <li><span>function tranTime($time) { </span></li> <li class="alt"> <span> $</span><span class="attribute">rtime</span><span> = </span><span class="attribute-value">date</span><span>("m-d H:i",$time); </span> </li> <li> <span> $</span><span class="attribute">htime</span><span> = </span><span class="attribute-value">date</span><span>("H:i",$time); </span> </li> <li class="alt"> <span> $</span><span class="attribute">time</span><span class="attribute-value">time</span><span> = time() - $time; </span> </li> <li><span> </span></li> <li class="alt"> <span> if ($time </span><span class="tag"><span> </span><span class="tag-name">60</span><span>) { </span></span> </li> <li> <span> $</span><span class="attribute">str</span><span> = </span><span class="attribute-value">'刚刚'</span><span>; </span> </li> <li class="alt"><span> } </span></li> <li> <span> else if ($time </span><span class="tag"><span> </span><span class="tag-name">60</span><span> * 60) { </span></span> </li> <li class="alt"> <span> $</span><span class="attribute">min</span><span> = </span><span class="attribute-value">floor</span><span>($time/60); </span> </li> <li> <span> $</span><span class="attribute">str</span><span> = $min.'分钟前'; </span> </li> <li class="alt"><span> } </span></li> <li> <span> else if ($time </span><span class="tag"><span> </span><span class="tag-name">60</span><span> * 60 * 24) { </span></span> </li> <li class="alt"> <span> $</span><span class="attribute">h</span><span> = </span><span class="attribute-value">floor</span><span>($time/(60*60)); </span> </li> <li> <span> $</span><span class="attribute">str</span><span> = $h.'小时前 '.$htime; </span> </li> <li class="alt"><span> } </span></li> <li> <span> else if ($time </span><span class="tag"><span> </span><span class="tag-name">60</span><span> * 60 * 24 * 3) { </span></span> </li> <li class="alt"> <span> $</span><span class="attribute">d</span><span> = </span><span class="attribute-value">floor</span><span>($time/(60*60*24)); </span> </li> <li> <span> if($</span><span class="attribute">d</span><span>==1) </span> </li> <li class="alt"> <span> $</span><span class="attribute">str</span><span> = </span><span class="attribute-value">'昨天 '</span><span>.$rtime; </span> </li> <li><span> else </span></li> <li class="alt"> <span> $</span><span class="attribute">str</span><span> = </span><span class="attribute-value">'前天 '</span><span>.$rtime; </span> </li> <li><span> } </span></li> <li class="alt"><span> else { </span></li> <li> <span> $</span><span class="attribute">str</span><span> = $rtime; </span> </li> <li class="alt"><span> } </span></li> <li><span>return $str; </span></li> <li class="alt"><span>} </span></li> </ol>
格式化输出函数是将得到的用户信息和发布内容及时间按照一定的格式输出到前端页面的函数,代码如下:
<ol class="dp-xml"> <li class="alt"><span><span>function formatSay($say,$dt,$uid){ </span></span></li> <li> <span> $</span><span class="attribute">say</span><span>=</span><span class="attribute-value">htmlspecialchars</span><span>(stripslashes($say)); </span> </li> <li class="alt"><span> </span></li> <li><span> return' </span></li> <li class="alt"> <span> </span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"saylist"</span><span class="tag">></span><span> </span></span> </li> <li> <span> </span><span class="tag"><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">"#"</span><span class="tag">></span><span class="tag"><span class="tag-name">img</span><span> </span><span class="attribute">src</span><span>=</span><span class="attribute-value">"images/'.$uid.'.jpg"</span><span> </span><span class="attribute">width</span><span>=</span><span class="attribute-value">"50"</span><span> </span><span class="attribute">height</span><span>=</span><span class="attribute-value">"50"</span><span> </span><span class="attribute">alt</span><span>=</span><span class="attribute-value">"demo"</span><span> </span><span class="tag">/></span><span> </span></span></span> </li> <li class="alt"> <span> </span><span class="tag"></span><span class="tag-name">a</span><span class="tag">></span><span> </span> </li> <li> <span> </span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"saytxt"</span><span class="tag">></span><span> </span></span> </li> <li class="alt"> <span> </span><span class="tag"><span class="tag-name">p</span><span class="tag">></span><span class="tag"><span class="tag-name">strong</span><span class="tag">></span><span class="tag"><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">"#"</span><span class="tag">></span><span>demo_'.$uid.'</span><span class="tag"></span><span class="tag-name">a</span><span class="tag">></span><span class="tag"></span><span class="tag-name">strong</span><span class="tag">></span><span> '. </span></span></span></span> </li> <li><span> preg_replace('/((?:http|https|ftp):\/\/(?:[A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+): ?(\d+)?\/?[^\s\"\']+)/i', </span></li> <li class="alt"> <span> '</span><span class="tag"><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">"$1"</span><span> </span><span class="attribute">rel</span><span>=</span><span class="attribute-value">"nofollow"</span><span> </span><span class="attribute">target</span><span>=</span><span class="attribute-value">"blank"</span><span class="tag">></span><span>$1</span><span class="tag"></span><span class="tag-name">a</span><span class="tag">></span><span>',$say).' </span></span> </li> <li> <span> </span><span class="tag"></span><span class="tag-name">p</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span> </span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"date"</span><span class="tag">></span><span>'.tranTime($dt).'</span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span> </span></span> </li> <li> <span> </span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span> </span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"clear"</span><span class="tag">></span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span> </span></span> </li> <li> <span> </span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span>' </span> </li> <li class="alt"><span>; } </span></li> </ol>
将以上两个函数都放入function.php中,准备随时被调用。
submit.php处理表单数据
在上篇文章中,我们知道jQuery将前端获得的数据以POST方式,通过Ajax提交给了后台的submit.php。那么submit就是要完成后续的所有一摊子任务。请看代码:
<ol class="dp-xml"> <li class="alt"><span><span>require_once('connect.php'); //数据库连接文件 </span></span></li> <li><span>require_once('function.php'); //函数调用文件 </span></li> <li class="alt"><span> </span></li> <li> <span>$</span><span class="attribute">txt</span><span>=</span><span class="attribute-value">stripslashes</span><span>($_POST['saytxt']); //获取提交的数据 </span> </li> <li class="alt"> <span>$</span><span class="attribute">txt</span><span>=</span><span class="attribute-value">mysql_real_escape_string</span><span>(strip_tags($txt),$link); //过滤HTML标签,并转义特殊字符 </span> </li> <li> <span>if(mb_strlen($txt)</span><span class="tag"><span class="tag-name">1</span><span> || mb_strlen($txt)</span><span class="tag">></span><span>140) </span></span> </li> <li class="alt"><span> die("0"); //判断输入字符数是否符合要求 </span></li> <li><span> </span></li> <li class="alt"> <span>$</span><span class="attribute">time</span><span class="attribute-value">time</span><span>=time(); //获取当前时间 </span> </li> <li> <span>$</span><span class="attribute">userid</span><span>=</span><span class="attribute-value">rand</span><span>(0,4); </span> </li> <li class="alt"><span>//插入数据到数据表中 </span></li> <li> <span>$</span><span class="attribute">query</span><span>=</span><span class="attribute-value">mysql_query</span><span>("insert into say(userid,content,addtime)values('$userid','$txt','$time')"); </span> </li> <li class="alt"><span>if(mysql_affected_rows($link)!=1) </span></li> <li><span> die("0"); </span></li> <li class="alt"><span>echo formatSay($txt,$time,$userid); //调用函数输出结果 </span></li> </ol>
注意,本例中为了演示,将用户ID(userid)进行随机处理,实际的应用是获取当前用户的ID。另外数据库连接文件,大家可以自己写一个,在我提供的下载的DEMO里也有这个文件。
最后要回到前端页面index.php来。index.php主要除了提供输入的入口,还要承接后台处理返回的结果,并且要将数据库里已有的数据显示出来。代码如下:
<ol class="dp-xml"> <li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li> <li><span>define('INCLUDE_CHECK',1); </span></li> <li class="alt"><span>require_once('connect.php'); </span></li> <li><span>require_once('function.php'); </span></li> <li class="alt"><span> </span></li> <li> <span>$</span><span class="attribute">query</span><span>=</span><span class="attribute-value">mysql_query</span><span>("select * from say order by id desc limit 0,10"); </span> </li> <li class="alt"> <span>while ($</span><span class="attribute">row</span><span>=</span><span class="attribute-value">mysql_fetch_array</span><span>($query)) { </span> </li> <li> <span> $</span><span class="attribute">sayList.</span><span>=</span><span class="attribute-value">formatSay</span><span>($row[content],$row[addtime],$row[userid]); </span> </li> <li class="alt"><span>} </span></li> <li> <span class="tag">?></span><span> </span> </li> <li class="alt"><span class="tag"><span class="tag-name">form</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"myform"</span><span> </span><span class="attribute">action</span><span>=</span><span class="attribute-value">"say.php"</span><span> </span><span class="attribute">method</span><span>=</span><span class="attribute-value">"post"</span><span class="tag">></span><span> </span></span></li> <li> <span> </span><span class="tag"><span class="tag-name">h3</span><span class="tag">></span><span class="tag"><span class="tag-name">span</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"counter"</span><span class="tag">></span><span>140</span><span class="tag"></span><span class="tag-name">span</span><span class="tag">></span><span>说说你正在做什么...</span><span class="tag"></span><span class="tag-name">h3</span><span class="tag">></span><span> </span></span></span> </li> <li class="alt"> <span> </span><span class="tag"><span class="tag-name">textarea</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"saytxt"</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"saytxt"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"input"</span><span> </span><span class="attribute">tabindex</span><span>=</span><span class="attribute-value">"1"</span><span> </span><span class="attribute">rows</span><span>=</span><span class="attribute-value">"2"</span><span> </span><span class="attribute">cols</span><span>=</span><span class="attribute-value">"40"</span><span class="tag">></span><span class="tag"></span><span class="tag-name">textarea</span><span class="tag">></span><span> </span></span> </li> <li> <span> </span><span class="tag"><span class="tag-name">p</span><span class="tag">></span><span> </span></span> </li> <li class="alt"> <span> </span><span class="tag"><span class="tag-name">input</span><span> </span><span class="attribute">type</span><span>=</span><span class="attribute-value">"submit"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"sub_btn"</span><span> </span><span class="attribute">value</span><span>=</span><span class="attribute-value">"提 交"</span><span> </span><span class="attribute">disabled</span><span>=</span><span class="attribute-value">"disabled"</span><span> </span><span class="tag">/></span><span> </span></span> </li> <li> <span> </span><span class="tag"><span class="tag-name">span</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"msg"</span><span class="tag">></span><span class="tag"></span><span class="tag-name">span</span><span class="tag">></span><span> </span></span> </li> <li class="alt"> <span> </span><span class="tag"></span><span class="tag-name">p</span><span class="tag">></span><span> </span> </li> <li> <span class="tag"></span><span class="tag-name">form</span><span class="tag">></span><span> </span> </li> <li class="alt"><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"clear"</span><span class="tag">></span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span> </span></span></li> <li><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"saywrap"</span><span class="tag">></span><span> </span></span></li> <li class="alt"> <span class="tag"></span><span class="tag-name">php</span><span> echo $sayList;</span><span class="tag">?></span><span> </span> </li> <li> <span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span> </span> </li> </ol>
至此,本例从前端交互到后台处理程序,全部完成,有兴趣的同学最好亲自动手,才能从中学到乐趣。

随着互联网的发展,SEO(SearchEngineOptimization,搜索引擎优化)已经成为了网站优化的重要一环。如果您想要使您的PHP网站在搜索引擎中获得更高的排名,就需要对SEO的内容有一定的了解了。本文将会介绍如何在PHP中实现SEO优化,内容包括网站结构优化、网页内容优化、外部链接优化,以及其他相关的优化技巧。一、网站结构优化网站结构对于S

随着电子商务和企业管理的发展,许多企业开始寻找更好的方法来处理其日常业务流程。ERP系统是一种能够整合企业各种业务流程的软件工具。它提供了全面的功能,包括生产、销售、采购、库存、财务等方面,帮助企业提高效率、控制成本和提高客户满意度。而在PHP编程语言中,也能够实现ERP系统,这就需要我们掌握一些基本的知识和技术。下面,我们将深入探讨如何在PHP中实现ERP

随着物联网技术的发展和普及,越来越多的应用场景需要使用PHP语言进行物联网开发。PHP作为一种广泛应用于Web开发的脚本语言,它的易学易用、开发速度快、可扩展性强等特点,使其成为开发物联网应用的一种优秀选择。本文将介绍在PHP中实现物联网开发的常用技术和方法。一、传输协议和数据格式物联网设备通常使用TCP/IP或UDP协议进行数据传输,而HTTP协议是一个优

随着企业的发展,客户管理变得越来越重要。为了提高客户满意度和忠诚度,越来越多的企业采用客户关系管理系统(CRM)来帮助其管理客户关系。而PHP是一种流行的编程语言,因其简单易学、灵活和强大而被广泛应用于Web开发。那么,如何在PHP中实现CRM系统呢?本文将为您介绍实现CRM系统的步骤和技巧。Step1:需求分析在开始开发CRM系统之前,您需要进行需求分析

随着互联网的发展,轮播图已经成为了网页设计中必不可少的一部分。在很多网页中,轮播图经常被用作展示企业文化、最新产品或是推广活动等场景。本篇文章将会分享如何使用PHP来实现轮播图的功能。一、轮播图的概念轮播图是网页中一种常见的视觉效果,一般由多个图片组成,在页面中自动或手动进行切换,展示多个内容。可以添加符合业务要求的动画效果,有助于引起用户的关注和提高网站的

随着互联网的不断发展,越来越多的网站需要使用验证码来保证安全性。验证码是一种借助人类能力而无法被计算机破解的认证技术,广泛应用于网站注册、登录、找回密码等功能中。下面将介绍如何使用PHP实现验证码功能。一、生成验证码图片验证码图片的生成是验证码功能的核心,需要生成一个随机字符,并将其渲染为图像展示给用户。在PHP中,可以使用GD库来生成图片。GD库是一种用于

管家婆系统在现代企业管理中扮演着重要的角色,它不仅仅能够有效地提高企业的工作效率,还可以大大提高了企业的生产力和竞争力。与此同时,PHP作为一种广泛使用的动态脚本语言,也受到了许多企业的青睐。接下来,我们将探讨如何在PHP中实现管家婆系统,以提高企业的管理效率。一、了解管家婆系统管家婆系统是一种企业管理软件,主要用于管理公司的财务、销售、采购、仓库、人力资源

智能合约(SmartContract)是一种基于区块链的自动化交易程序,可以实现自动化执行、验证和执行交易。智能合约可以减少交易中的人为干扰,提高交易的安全性和效率。在不同的区块链中,智能合约的实现方式略有不同。本文将介绍在PHP中如何实现智能合约。PHP是一种广泛使用的编程语言,特别适合Web开发。PHP有着成熟的开源生态系统,以及许多可靠的框架和库。在


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器

Dreamweaver CS6
視覺化網頁開發工具