美文网首页
重复请求检测示例-php

重复请求检测示例-php

作者: 码农工号9527 | 来源:发表于2025-01-22 12:04 被阅读0次
<?php

checkRepeatReq(['a' => 1, 'b' => 2, 'c' => 3]);

function checkRepeatReq(array $reqParams, string $prefix = '')
{
    $url_path = Request::getPathInfo();
    if (!$url_path || $url_path == 'favicon.ico') {
        $url_path = '/';
    }
    $host = Request::domain();
    if (is_array($reqParams)) {
        $reqParams = http_build_query($reqParams);
    }
    $key = md5($host . $url_path . $reqParams);
    if ($prefix) {
        return $prefix . ':' . $key;
    }

    // 是否为重复请求
    if (duplicateReq($key)) {
        var_dump('重复请求');
        die();
    } else {
        var_dump('正常请求');
        die();
    }
}

function duplicateReq(string $id, int $expire = 0): bool
{
    $repeat = false;

    // 创建Redis实例
    $redis = new Redis();

    // 连接Redis服务器,这里假设Redis服务器运行在本地,默认端口是6379
    $redis->connect('127.0.0.1', 6379);

    // 认证(如果设置了密码)
    // $redis->auth('yourpassword');

    if ($expire <= 0) {
        $expire = rand(100, 600);
    }
    $key = 'sdkrrqq:' . $id;
    try {
        $c = $redis->exists($key);
        if (!empty($c)) {
            $repeat = true;
        } else {
            $redis->setEx($key, $expire, '1');
        }
    } catch (Exception $ex) {

    }
    return $repeat;
}

?>

相关文章

  • SDK链式Build请求对象

    示例### 按照对象构建顺序返回下一步需要构建的对象,可避免this对象返回的重复构建检测问题。显得构建请求对象更...

  • 服务端接收访问数据

    阅读原文 示例代码index.php 接收GET请求参数 接收POST请求参数 接收Headers自定义参数 问题...

  • 2018-07-19

    php检测文件编码的方法示例_php实例_脚本之家 MyISAM与InnoDB两者之间区别与选择,详细总结,性能对...

  • 如何用php发送一个post请求并带数据

    可以使用 PHP 内置的 curl 库来发送 POST 请求,并附带数据。以下是一个示例: 在此示例中,我们使用 ...

  • 原生PHP的Json Request及Response

    网上找php对form等其他格式的提交及返回均有很多示例,但是关于解析json请求并返回json的示例很少,现贴下...

  • Android 笔记 —— Http 网络探索

    Http 请求及相应 请求包结构 示例: 响应包结构 示例: Http 请求方式 GET请求指定url的数据,请求...

  • Cookie & Session

    阅读原文 cookie.php 为cookie示例session.php 为session示例demo验证cook...

  • nginx按请求类型转发(GET/POST/PUT/DELETE

    1. 示例 只转发GET和POST请求 不转发POST请求 PUT请求返回400 2. 完整示例 示例设计 ngi...

  • PHP使用JWT示例

    PHP使用JWT示例

  • php jwt使用

    安装 使用composer管理依赖项并下载PHP-JWT: 示例 1 输出 示例 2 输出 php openss...

网友评论

      本文标题:重复请求检测示例-php

      本文链接:https://www.haomeiwen.com/subject/holcujtx.html