Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour implémenter la fonction d'enregistrement hebdomadaire

Comment utiliser PHP pour implémenter la fonction d'enregistrement hebdomadaire

PHPz
PHPzoriginal
2023-04-23 10:22:48574parcourir

1. Introduction

Avec la popularité d'Internet, de plus en plus de sites Web et d'applications ont commencé à créer des systèmes d'enregistrement permettant aux utilisateurs d'attirer et de fidéliser les utilisateurs. Le système d'enregistrement est une méthode de marketing légère et hautement interactive. Les utilisateurs peuvent obtenir des droits et des avantages gratuits grâce à la connexion, et guider les utilisateurs dans la réalisation d'opérations habituelles sur une base quotidienne ou hebdomadaire, atteignant ainsi l'objectif de promotion de la marque. En tant que langage parmi tant d’autres, PHP peut naturellement implémenter cette fonction d’enregistrement. Cet article explique comment utiliser PHP pour implémenter la fonction d'enregistrement hebdomadaire.

2. Analyse des exigences

Avant de mettre en œuvre l'enregistrement hebdomadaire, nous devons d'abord procéder à une analyse détaillée des exigences.

  1. Les utilisateurs peuvent créer un compte et se connecter au système ;
  2. Les utilisateurs peuvent se connecter sur la page de connexion ;
  3. Les utilisateurs ne peuvent se connecter qu'une fois par semaine
  4. Une fois connectés avec succès, les utilisateurs peuvent obtenir ; récompenses en points correspondantes ;
  5. La page de connexion peut afficher le nombre de jours pendant lesquels l'utilisateur s'est connecté et les points actuellement disponibles.

3. Étapes de mise en œuvre

Selon les exigences ci-dessus, nous pouvons le diviser en les étapes de mise en œuvre suivantes.

  1. Conception de base de données

Créez un tableau pour stocker le statut d'enregistrement de l'utilisateur, y compris l'ID utilisateur, le nombre de jours d'enregistrement consécutifs, l'heure du dernier enregistrement et d'autres champs. Les déclarations spécifiques à la création de table sont les suivantes :

CREATE TABLE `user_sign` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `con_day` int(11) NOT NULL DEFAULT '0' COMMENT '连续签到天数',
  `last_time` date NOT NULL DEFAULT '0000-00-00' COMMENT '上次签到时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户签到信息表';
  1. Inscription et connexion

Les utilisateurs peuvent créer un compte via la page d'inscription, puis se connecter au système. Pour plus de commodité, nous pouvons utiliser Session pour gérer le statut de connexion de l'utilisateur. Lors de la connexion, l'ID de l'utilisateur est stocké dans la session et l'ID de l'utilisateur sera obtenu via la session lors des opérations de connexion ultérieures.

  1. Connexion et récompenses

Sur la page de connexion, l'utilisateur effectuera l'opération de connexion en cliquant sur le bouton de connexion. Lors de l'enregistrement, vous devez d'abord déterminer si la dernière heure d'enregistrement de l'utilisateur remonte à moins d'une semaine. Si tel est le cas, l'enregistrement échoue, sinon le nombre de jours d'enregistrement consécutifs de l'utilisateur est calculé et les points sont calculés. attribué. Le code d'implémentation spécifique est le suivant :

// 获取当前用户ID
$user_id = $_SESSION['user_id'];

// 查询用户签到信息
$sql = "SELECT con_day,last_time FROM user_sign WHERE user_id='$user_id'";
$res = mysqli_query($link, $sql);
$info = mysqli_fetch_assoc($res);
$last_time = $info['last_time'];
$con_day = $info['con_day'];

// 判断用户上次签到时间是否在一周内,若是则签到失败
if ((time()-strtotime($last_time)) < 86400*7) {
    echo "今天已经签过到啦~";
} else {
    // 新增签到记录
    $sql = "INSERT INTO user_sign (user_id,con_day,last_time) VALUES ('$user_id','".($con_day+1)."','".date('Y-m-d')."')";
    mysqli_query($link, $sql);

    // 奖励积分
    $reward = 5 + ($con_day+1)*2;
    echo "签到成功,获得".$reward."积分!";
}
  1. Affichage des jours de connexion et des points

Après chaque enregistrement réussi, il est nécessaire d'interroger les jours d'enregistrement consécutifs de l'utilisateur et le nombre de points qui peuvent être obtenu. Le code de la fonction est le suivant :

// 获取当前用户ID
$user_id = $_SESSION['user_id'];

// 查询用户签到信息
$sql = "SELECT con_day,last_time FROM user_sign WHERE user_id='$user_id'";
$res = mysqli_query($link, $sql);
$info = mysqli_fetch_assoc($res);
$last_time = $info['last_time'];
$con_day = $info['con_day'];

// 计算应得积分
$reward = 5 + $con_day*2;

// 输出签到天数和奖励积分
echo "你已经签到".$con_day."天,可获得".$reward."积分!";

4. Résumé

Il n'est pas difficile d'implémenter la fonction d'enregistrement hebdomadaire en PHP La principale difficulté réside dans la clarification du processus d'enregistrement et la détermination de l'heure d'enregistrement de l'utilisateur. En établissant des structures de données appropriées et en écrivant une logique métier claire, ces problèmes peuvent être résolus efficacement. J'espère que cet article sera utile aux lecteurs dans le besoin.

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!

Déclaration:
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