当用户进入我的网站时,我会在中间件的帮助下创建一个购物车,如下所示:
public function handle($request, Closure $next)
{
$cartId = $request->cookie('cartid');
if($cartId == null) {
$cart = new Cart();
$cart->save();
$cartId = $cart->id;
$newCoockie = true;
}
else
{
$currentCart = Cart::find($cartId);
if($currentCart == null){
$cart = new Cart();
$cart->save();
$cartId = $cart->id;
$newCoockie = true;
}
}
$ip = "onbekend";
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$cart->ip = $ip;
$cart->save();
$cookie = Cookie::forever('cartid', $cartId);
return $next($request)->withCookie($cookie);
}它工作得很好,但现在我遇到了一个网络爬虫的问题。当查看我的数据库时,我可以看到有很多由this这样的网络爬虫创建的购物车,在过去的几天里,他们每30秒发送一个请求!如何避免为所有webcrawler请求创建购物车?
发布于 2016-01-09 06:45:16
除非每个请求都需要有一个活动购物车的原因,否则您可能希望仅在有人实际尝试将某些东西放入其中时才考虑创建购物车。
https://stackoverflow.com/questions/34687305
复制相似问题