Comment implémenter la fonction d'enregistrement en PHP

php中世界最好的语言
Libérer: 2023-03-18 06:50:01
original
2154 Les gens l'ont consulté

Le code que je vous apporte cette fois explique comment utiliser PHP pour implémenter la fonction d'enregistrement. Il analyse les compétences pertinentes de PHP pour implémenter la fonction d'enregistrement basée sur des opérations de base de données et de jugement temporel sous forme d'exemples. .Les amis qui en ont besoin peuvent en tirer des leçons. Jetons un coup d'œil au combat réel

Dans le tableau d'état de connexion de l'utilisateur, nous avons un champ, last_sign_time, qui correspond à l'heure de la dernière connexion. . Chaque fois que vous pouvez vous connecter, comparez cette heure avec l'heure actuelle. Si la différence est de 0 jour, cela signifie qu'aujourd'hui a été connecté (cette connexion ne peut être effectuée qu'une fois toutes les 24 heures, c'est-à-dire la différence entre). les deux connexions doivent durer plus de 24 heures). Si cela équivaut à un jour, vous pouvez vous connecter aujourd'hui, si cela fait 2 jours ou plus, cela signifie que vous avez manqué le panneau

Mise à jour. la table d'état dans le temps en fonction du jugement de l'horodatage, et exploiter la table des points utilisateur lorsque l'enregistrement est possible, c'est-à-dire mettre à jour les points utilisateur

<?php
$user_id=@$_REQUEST[&#39;user_id&#39;];
//功能:计算两个时间戳之间相差的日时分秒
//$begin_time 开始时间戳
//$end_time 结束时间戳
function timediff($begin_time,$end_time)
{
   if($begin_time < $end_time){
     $starttime = $begin_time;
     $endtime = $end_time;
   }else{
     $starttime = $end_time;
     $endtime = $begin_time;
   }
   //计算天数
   $timediff = $endtime-$starttime;
   $days = intval($timediff/86400);
   //计算小时数
   $remain = $timediff%86400;
   $hours = intval($remain/3600);
   //计算分钟数
   $remain = $remain%3600;
   $mins = intval($remain/60);
   //计算秒数
   $secs = $remain%60;
   $res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
   return $res;
}
function upuserscore($current_total_day){
$user_id=@$_REQUEST[&#39;user_id&#39;];
//读取数据库配置信息的ini文件
  $ary=parse_ini_file(&#39;db.ini&#39;);
  $db_login_name=base64_decode($ary[&#39;db_login_name&#39;]);
  $db_login_password=base64_decode($ary[&#39;db_login_password&#39;]);
  $db_host=base64_decode($ary[&#39;db_host&#39;]);
  $db_name=base64_decode($ary[&#39;db_name&#39;]);
//链接数据库
 $scorelink=mysqli_connect($db_host,$db_login_name,$db_login_password);
mysqli_select_db($scorelink,$db_name); //选择数据库
//检查积分表里是否有该用户 有的话则更新数据 没有的话则插入数据
$scoreq = "SELECT * FROM user_score WHERE user_id=$user_id"; //SQL插入语句
    mysqli_query($scorelink,"SET NAMES utf8");
    $rs = mysqli_query($scorelink,$scoreq); //获取数据集
    if(!$rs){
        exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"1",&#39;error&#39;=>mysqli_error($scorelink))));
    }
    if(mysqli_num_rows($rs)){//该用户有数据 则更新其积分信息
      $total_score="";
       while($row = mysqli_fetch_row($rs)) {
      $total_score=$row[4];
      }
      $scoreusdateq = "UPDATE user_score SET user_total_score =&#39;98&#39; WHERE user_id=$user_id;"; //更新
      mysqli_query($scorelink,"SET NAMES utf8");
      $ustaters = mysqli_query($scorelink,$scoreusdateq); //获取数据集
      if($ustaters ==1){
          exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"100")));
        mysqli_close($scorelink);//关闭连接 
        exit();
      }else{
          exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"1")));
           mysqli_close($scorelink);//关闭连接
           exit();
      }
    }else{//没有该用户数据 则插入其积分信息
      $scoreinsertq = "insert into user_score (user_id,user_total_score)values($user_id,10)"; //SQL插入语句
      mysqli_query($scorelink,"SET NAMES utf8");
      $rs = mysqli_query($scorelink,$scoreinsertq); //获取数据集
      if(!$rs){
          exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"1",&#39;error&#39;=>mysqli_error($scorelink))));
      }
      if(strpos($q,"SELECT") === false){
          exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"100")));
      }
      mysqli_close($scorelink);//关闭连接
    }
}
//读取数据库配置信息的ini文件
  $ary=parse_ini_file(&#39;db.ini&#39;);
  $db_login_name=base64_decode($ary[&#39;db_login_name&#39;]);
  $db_login_password=base64_decode($ary[&#39;db_login_password&#39;]);
  $db_host=base64_decode($ary[&#39;db_host&#39;]);
  $db_name=base64_decode($ary[&#39;db_name&#39;]);
//链接数据库
 $link=mysqli_connect($db_host,$db_login_name,$db_login_password);
mysqli_select_db($link,$db_name); //选择数据库
//检查签到表里是否有该用户 有的话则更新数据 没有的话则插入数据
$q = "SELECT * FROM user_signin WHERE user_id=$user_id"; //SQL插入语句
    mysqli_query($link,"SET NAMES utf8");
    $rs = mysqli_query($link,$q); //获取数据集
    if(!$rs){
        exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"1",&#39;error&#39;=>mysqli_error($link))));
    }
    if(mysqli_num_rows($rs)){//该用户有数据 则更新其签到信息
      $last_time="";
      $total_day="";
       while($row = mysqli_fetch_row($rs)) {
      $last_time=$row[4]."<br/>";
      $total_day=$row[5];
    }
      //根据上次签到时间和这次签到时间作比较判断有没有漏签和今日是否已签到
      $current_total_day=intval($total_day)+1;
      $current_day=time();
      $ary = timediff($last_time,$current_day);
    if($ary[day]==0){//今天已签到
       exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"5")));
        mysqli_close($link);//关闭连接 
        exit();
    }else if($ary[day]==1){//没有漏签
      $usdateq = "UPDATE user_signin SET last_sign_time=&#39;$current_day&#39;, total_day=&#39;$current_total_day&#39; WHERE user_id=$user_id;"; //更新
      mysqli_query($link,"SET NAMES utf8");
      $ustaters = mysqli_query($link,$usdateq); //获取数据集
      if($ustaters ==1){
      upuserscore($current_total_day);
          //exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"100")));
        mysqli_close($link);//关闭连接 
        exit();
      }else{
          exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"1")));
           mysqli_close($link);//关闭连接
         exit();
      }
    }else{//漏签过
    $usdateq = "UPDATE user_signin SET last_sign_time=&#39;$current_day&#39;, total_day=1 WHERE user_id=$user_id;"; //更新
    mysqli_query($link,"SET NAMES utf8");
    $ustaters = mysqli_query($link,$usdateq); //获取数据集
    if($ustaters ==1){
      upuserscore($current_total_day);
        //exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"100")));
      mysqli_close($link);//关闭连接 
      exit();
    }else{
        exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"1")));
       mysqli_close($link);//关闭连接
       exit();
    }
  }
  }else{//没有该用户记录则插入
    $current_day=time();
    $insertq = "insert into user_signin (user_id,last_sign_time,total_day)values($user_id,&#39;$current_day&#39;,1)"; //SQL插入语句
    mysqli_query($link,"SET NAMES utf8");
    $insertrs = mysqli_query($link,$insertq); //获取数据集
    if(strpos($insertrs,"SELECT") === false){//出入数据成功
      upuserscore(&#39;1&#39;);
      //exit(json_encode(array(&#39;status&#39;=>"success",&#39;code&#39;=>"100")));
      }
  }
  mysqli_close($link);//关闭连接
?>
Copier après la connexion


<.>Croyez-le Après avoir lu ces cas, vous maîtrisez les méthodes. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web PHP chinois !

Lecture connexe :

Exemples détaillés de recherche binaire et de recherche binaire dans l'algorithme Java

caractère de recherche binaire javascript en position du tableau (ordonné liste)_compétences javascript

javascript demi-recherche explication détaillée_compétences javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!