您好,欢迎访问一九零五行业门户网

PHP+MYSQL+AJAX实现每日签到

在现在的好多网站上都出现了每日签到以及签到送等互动功能,这边呢,作者就使用最原始的php配合mysql、ajax来制作了一个简单的每日签到功能,至于送还有其他的小游戏就需要读者们自己去增加和拓展了。 下面先看下文件目录: database: 顾名思义就是存放数据
在现在的好多网站上都出现了每日签到以及签到送礼等互动功能,这边呢,作者就使用最原始的php配合mysql、ajax来制作了一个简单的每日签到功能,至于送礼还有其他的小游戏就需要读者们自己去增加和拓展了。
下面先看下文件目录:
database:
顾名思义就是存放数据库sql语句的文件,里面存放了已经设计好的简单的几张表。
js:
存放js脚本库。
index.php
用的是.php为后缀的,其实下面看到后,读者可能会说,里面没php代码,直接弄成.html的后缀好了,其实大家可以自己去修改的,作者就不更改了。
index.php code:
php+ajax+mysql实现签到签到连续签到天
sign.php 该文件就是具体处理签到的php代码了,具体的code如下: query($getday); $days =$day -> fetch_array(mysqli_assoc); echo $days['signdays']; } if ($_get['do']=='sign'){ $db=new mysqli('localhost','root','123456','sign'); $uid=2; $time=time(); //check sign today ? $todaybegin=strtotime(date('y-m-d'). 00:00:00); $todayend= strtotime(date('y-m-d'). 23:59:59); $checksignsql=select * from `sign` where `uid` = {$uid} and `dateline` {$todaybegin} ; $checksigntoday= $db -> query($checksignsql); $checksign = $checksigntoday -> fetch_array(mysqli_assoc); if (empty($checksign)){ $sql=select * from `sign` where `uid` = {$uid} ; $return = $db -> query($sql) -> fetch_array(mysql_assoc);//check sign table exist uid record ? if (empty($return)){//no $insertsql=insert into `sign` (`uid`,`dateline`) values ('{$uid}','{$time}') ; $insert = $db -> query($insertsql); $updatesignsql=update `user` set `signdays` =1 where `id` = {$uid} ; $db -> query($updatesignsql); echo 1; }else{ // check is continuous ? reset with login set signdays as 0 !!!!! $yesterdaybegin= strtotime(date(y-m-d,strtotime(-1 day)). 00:00:00); $yesterdayend= strtotime(date(y-m-d,strtotime(-1 day)). 23:59:59); $checkcontinusql=select * from `sign` where `uid` = {$uid} and `dateline` {$yesterdaybegin}; $checkcontinuyesterday = $db ->query($checkcontinusql)->fetch_array(mysql_assoc); if (!empty($checkcontinuyesterday)){ $replacesql=replace into `sign` (`uid`,`dateline`) values ('{$uid}','{$time}') ; $replace=$db -> query($replacesql); $updatesignsql=update `user` set `signdays` = `signdays` + 1 where `id` = {$uid} ; $db -> query($updatesignsql); echo 1; }else{

} } }else{ echo 2;// allready sign. } }?>
数据库:测试数据库结构及具体内容如下-- phpmyadmin sql dump-- version 3.4.8-- http://www.phpmyadmin.net---- host: localhost-- generation time: jan 07, 2014 at 01:32 pm-- server version: 5.5.28-- php version: 5.2.17p1set sql_mode=no_auto_value_on_zero;set time_zone = +00:00;/*!40101 set @old_character_set_client=@@character_set_client */;/*!40101 set @old_character_set_results=@@character_set_results */;/*!40101 set @old_collation_connection=@@collation_connection */;/*!40101 set names utf8 */;---- database: `sign`---- ------------------------------------------------------------ table structure for table `sign`--create table if not exists `sign` ( `uid` int(11) not null, `dateline` varchar(10) collate utf8_bin not null, primary key (`uid`)) engine=myisam default charset=utf8 collate=utf8_bin;---- dumping data for table `sign`--insert into `sign` (`uid`, `dateline`) values(1, '1389072071'),(2, '1389072735');-- ------------------------------------------------------------ table structure for table `user`--create table if not exists `user` ( `id` int(11) not null auto_increment comment 'userid', `username` varchar(35) collate utf8_bin not null comment 'username', `signdays` int(11) not null comment '签到天数', primary key (`id`)) engine=myisam default charset=utf8 collate=utf8_bin auto_increment=3 ;---- dumping data for table `user`--insert into `user` (`id`, `username`, `signdays`) values(1, 'ggbound', 4),(2, 'other', 1);/*!40101 set character_set_client=@old_character_set_client */;/*!40101 set character_set_results=@old_character_set_results */;/*!40101 set collation_connection=@old_collation_connection */;
到此一个每日签到的功能就基本完成了!
其它类似信息

推荐信息