当用户进入我的网站时,我会在中间件的帮助下创建一个购物车,如:
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);
}
它工作正常,但现在我遇到了webcrawler的问题。在查看我的数据库时,我可以看到有很多由像[{3}}这样的网络浏览器创建的购物车,他们在过去几天每30秒发送一次请求!我应该如何避免为webcrawler请求创建购物车?
答案 0 :(得分:0)
除非有某些原因导致每个请求都需要有一个有效的购物车,否则您可能只想在有人真正试图将某些内容放入其中时创建购物车。