访问者访问任何页面时保存访客详细信息

时间:2015-03-19 16:31:39

标签: php laravel laravel-5

无论访问者访问过哪个页面,我都希望将ip地址,国家/地区等信息保存到我的数据库中。

这是在laravel中这样做的正确方法吗?

1 个答案:

答案 0 :(得分:1)

我的建议是middleware

  1. 创建中间件:
  2. artisan make:middleware StoreUserInfo
    

    此命令将创建类App\Http\Middleware\StoreUserInfo

    1. 编辑StoreUserInfo类:
    2. <?php
      namespace App\Http\Middleware;
      
      use DB;
      use Session;
      
      class StoreUserInfo
      {
          /**
           * Handle an incoming request.
           *
           * @param  \Illuminate\Http\Request  $request
           * @param  \Closure  $next
           * @return mixed
           */
          public function handle($request, Closure $next)
          {
              if (!Session::get('user-info-stored')) {
      
                  // write all what you need to DB
      
                  // set session flag to prevent DB duplicates
                  Session::put('user-info-stored', true);
              }
              return $next($request);
          }
      }
      

      请注意,您的软件应符合隐私条款。在德国等一些国家/地区,存储用户的IP地址是非法的。阅读更多:https://github.com/piwik/piwik/issues/692