PHP+Mysql+jQuery如何实现发布微博程序
创始人
2024-12-11 09:21:05
0次

先还是要说明本例的业务流程:
1、前端用户输入内容,并对输入的内容字数进行实时统计。
2、用户提交数据,jQuery实现通过Ajax向后台发送数据。
3、后台PHP接收提交表单的数据,并对数据进行必要的安全过滤。
4、后台PHP连接Mysql数据库,并将提交过来的表单数据写入到相应的数据表中。
5、后台向返回成功结果数据内容,并通过Ajax将返回的数据内容插入到前端页面中。
上述1、2步在前篇文章:jQuery篇已讲解了,本文将完成剩余的散步。

效果图:

PHP+Mysql+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' 
  
  
 

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主要除了提供输入的入口,还要承接后台处理返回的结果,并且要将数据库里已有的数据显示出来。代码如下:

 
 
 

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

      

         

   
     

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...