php - Tidak boleh menghantar beberapa kali dalam masa yang ditetapkan?
仅有的幸福
仅有的幸福 2017-05-27 17:42:53
0
4
762

Sebagai contoh, jika 5 teg dijana dalam masa satu minit, ia akan menggesa "Operasi yang kerap, sila masukkan kod pengesahan".

Bagaimana saya harus menanganinya?

仅有的幸福
仅有的幸福

membalas semua(4)
PHPzhong

Ini sangat mudah untuk dilaksanakan menggunakan redis Kunci digunakan untuk menyimpan bilangan penyerahan Jika kunci dikira.
Dapatkan kiraan daripada redis setiap kali anda menyerahkan

  1. Jika kiraan kosong, tetapkan nilai kiraan kepada 1, tetapkan tamat masa kepada satu minit, dan serahkan seperti biasa;

  2. Jika nilai kiraan tidak kosong dan lebih besar daripada atau sama dengan 5, mesej ralat akan dilaporkan "Operasi adalah kerap, sila masukkan kod pengesahan"
  3. Jika nilai kiraan tidak kosong dan kurang daripada 5, ia akan diserahkan seperti biasa dan nilai kiraan akan ditambah satu.
曾经蜡笔没有小新

Rekodkan masa penjanaan setiap teg
Jika peraturannya ialah hanya 4 teg boleh dijana dalam satu minit, yang kelima akan menggesa ralat
Sejurus sebelum menambah yang kelima, Bandingkan masa penjanaan yang pertama daripada empat yang terbaharu dengan masa semasa untuk melihat sama ada ia melebihi 60 saat Jika tidak, ralat akan dilaporkan.

刘奇

Gunakan sesi untuk merekodkan dua nilai, satu ialah bilangan penyerahan $count dan satu lagi ialah masa penyerahan $time. ++$count==5 [Syarat 1] dikesan setiap kali ia diserahkan, time()-$time>=60 saat [Syarat 2]. cuma syaratnya dipenuhi 1 maka $count=0;$time=time();

世界只因有你

Adalah disyorkan untuk menggunakan operasi cache redis

<?php
try {
  $redis = new Redis(); // 创建实例
  $redis->connect(REDIS_HOST, REDIS_PORT, REDIS_TIMEOUT); // 连接
  $redis->ping(); // 确认连接已经成功
} catch (Exception $e) {
  die('Can not connect Redis.');
}

$incrkey = 'TEST:用户:分钟'; // 每分钟缓存key
$incrValue = $redis->incr($incrkey);
if ($incrValue == 1) {
  // 设定缓存时间(键名,缓存时间[单位:秒])
  $redis->expire($incrkey, 60);
} else if ($incrValue >= 5) {
  die('操作频繁,请输入验证码');
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan