First, the Web front-end and Ajax part of the file index.html
if (data==1) { alert ("Sign success!"); window.location.href= '/'; }else if (data==2) { alert ("Already sign today! Next tomorrow! "); } );
sign.php file <?php if ($_get[' do ']== ' GetDay ') {$db =new mysqli (' localhost ', ' root ', ' 123456 ', ' sign '); $uid = 2; $getDay = "Select ' Signdays ' from ' user ' WHERE ' id ' = {$uid}"; $day = Query ($getDay), $db $days = Fetch_array (MYSQLI_ASSOC), $day; 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 ' < {$todayEnd} and ' Dateline ' > {$todayBegin} "; $checkSignToday = Query ($CHECKSIGNSQL), $db $checkSign = Fetch_array (MYSQLI_ASSOC), $checkSignToday; if (empty ($checkSign)) {$sql = "select * from ' sign ' WHERE ' uid ' = {$uid}"; $return = Fetch_array (MYSQL_ASSOC), query ($sql), $db; Check sign table exist UID record if (empty ($return)) {//no $insertSql = "INSERT to ' sign ' (' uid ', ' Dateline ') VALUES (' {$uid} ', ' {$time} '); $insert = Query ($INSERTSQL), $db $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 ' < {$yesterdayEnd} and ' Dateline ' > {$yest Erdaybegin} "; $checkContinuYesterday = Fetch_array (MYSQL_ASSOC), $db->query ($CHECKCONTINUSQL); if (!empty ($checkContinuYesterday)) {$replaceSql = "REPLACE into ' sign ' (' uid ', ' Dateline ') VALUES (' {$uid } ', ' {$time} '); $replace = Query ($REPLACESQL), $db $UPDATESIGNSQL = "UPDATE ' user ' SET ' signdays ' = ' signdays ' + 1 WHERE ' id ' = {$uid}";
$db, query ($UPDATESIGNSQL); Echo 1; }else{}}}else{echo 2;//allready sign. }?>
Third, MySQL database part
CREATE TABLE IF not EXISTS ' sign ' ( ' uid ' int (one) not null, ' dateline ' varchar "COLLATE utf8_bin NOT NULL, PRIM ARY KEY (' uid ')) Engine=myisam DEFAULT Charset=utf8 collate=utf8_bin;insert into ' sign ' (' uid ', ' Dateline ') VALUES (1, ' 1 389072071 '), (2, ' 1389072735 '); CREATE TABLE IF not EXISTS ' user ' ( ' id ' int (one) ' Not NULL auto_increment COMMENT ' USERID ', ' username ' varchar (35) COLLATE utf8_bin NOT null COMMENT ' username ', ' signdays ' int (one) not null COMMENT ' sign-in days ', PRIMARY KEY (' id ')) engine= MyISAM DEFAULT Charset=utf8 collate=utf8_bin auto_increment=3; INSERT into ' user ' (' id ', ' username ', ' signdays ') VALUES (1 , ' Ggbound ', 4), (2, ' other ', 1);
Php+mysql+ajax for daily sign-in function