Rumah >pembangunan bahagian belakang >masalah PHP >Cara menggunakan PHP untuk melaksanakan fungsi daftar masuk mingguan

Cara menggunakan PHP untuk melaksanakan fungsi daftar masuk mingguan

PHPz
PHPzasal
2023-04-23 10:22:48603semak imbas

1. Kata Pengantar

Dengan populariti Internet, semakin banyak tapak web dan apl telah mula membina sistem log masuk untuk pengguna menarik dan mengekalkan pengguna. Sistem daftar masuk ialah kaedah pemasaran yang ringan dan sangat interaktif Pengguna boleh mendapatkan hak dan faedah percuma melalui log masuk, dan membimbing pengguna untuk membentuk operasi biasa setiap hari atau mingguan, dengan itu mencapai tujuan promosi jenama. Sebagai salah satu daripada banyak bahasa, PHP secara semula jadi boleh melaksanakan fungsi daftar masuk ini. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi daftar masuk mingguan.

2. Analisis permintaan

Sebelum melaksanakan daftar masuk mingguan, kami terlebih dahulu perlu menjalankan analisis terperinci permintaan.

  1. Pengguna boleh mendaftar akaun dan log masuk ke sistem
  2. Pengguna boleh log masuk pada halaman log masuk
  3. Pengguna hanya boleh log masuk sekali dalam seminggu; yang boleh diperoleh pada masa ini.
  4. 3. Langkah-langkah pelaksanaan
  5. Mengikut keperluan di atas, kita boleh melaksanakannya dalam langkah-langkah berikut.

Reka bentuk pangkalan data

    Buat jadual untuk menyimpan status daftar masuk pengguna, termasuk ID pengguna, bilangan hari daftar masuk berturut-turut, masa daftar masuk terakhir dan bidang lain. Pernyataan penciptaan jadual khusus adalah seperti berikut:

Pendaftaran dan Log Masuk

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='用户签到信息表';
    Pengguna boleh mendaftar akaun melalui halaman pendaftaran dan kemudian log masuk ke sistem. Untuk kemudahan, kami boleh menggunakan Sesi untuk mengurus status log masuk pengguna. Apabila log masuk, ID pengguna disimpan dalam Sesi dan ID pengguna akan diperoleh melalui Sesi semasa operasi log masuk berikutnya.
Log masuk dan ganjaran

    Pada halaman log masuk, pengguna akan log masuk dengan mengklik butang log masuk. Semasa mendaftar masuk, anda perlu terlebih dahulu menentukan sama ada masa daftar masuk terakhir pengguna adalah dalam masa seminggu. Jika ya, daftar masuk gagal jika tidak, bilangan hari daftar masuk berturut-turut pengguna dikira dan mata dianugerahkan. Kod pelaksanaan khusus adalah seperti berikut:

Hari log masuk dan paparan mata

// 获取当前用户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."积分!";
}
    Selepas setiap log masuk berjaya, adalah perlu untuk membuat pertanyaan hari log masuk berturut-turut pengguna dan nombor yang boleh diperolehi. Kod fungsi adalah seperti berikut:
4. Ringkasan

Tidak sukar untuk melaksanakan fungsi daftar masuk mingguan dalam PHP Kesukaran utama terletak pada menjelaskan daftar masuk proses dan menentukan masa daftar masuk pengguna. Dengan mewujudkan struktur data yang sesuai dan menulis logik perniagaan yang jelas, masalah ini boleh diselesaikan dengan berkesan. Semoga artikel ini dapat membantu pembaca yang memerlukan.
// 获取当前用户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."积分!";

Atas ialah kandungan terperinci Cara menggunakan PHP untuk melaksanakan fungsi daftar masuk mingguan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn