如何在 Laravel 中檢查 Cookie 是否已設定?
當您訪問網頁時,它通常會生成包含少量資料(例如使用者名稱和密碼)的文字檔案,並將它們儲存在使用者的瀏覽器上。這些被稱為 Cookie,它們用於識別使用者系統,並且可以被 Web 伺服器或客戶端計算機(儲存 Cookie 的計算機)訪問。
儲存在 Cookie 中的資訊特定於 Web 伺服器。
連線到伺服器後,會建立一個帶有唯一 ID 的 Cookie 並將其儲存在您的計算機上。
一旦 Cookie 在客戶端交換/儲存,如果您再次連線到伺服器,它將根據儲存的 Cookie 識別您的系統。
這有助於伺服器為特定使用者提供個性化的頁面。
示例 1
以下示例建立了一個 Cookie 並驗證它是否已設定。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Cookie; class UserController extends Controller { public function index(Request $request) { Cookie::queue('msg', 'cookie testing', 10); echo $value = $request->cookie('msg'); } }
輸出
以上程式碼的輸出為:
示例 2
另一種測試 Cookie 是否已設定的方法可以在以下示例中看到:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Cookie; class UserController extends Controller { public function index(Request $request) { Cookie::queue('msg', 'cookie testing', 10); return view('test'); } }
test.blade.php
<!DOCTYPE html> <html> <head> <style> body { font-family: 'Nunito', sans-serif; } </style> <head> <body class="antialiased"> <div> {{ Cookie::get('msg') }} </div> </body> </html>
輸出
以上程式碼的輸出為:
示例 3
使用 hasCookie() 方法測試給定的 Cookie 是否已設定。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Cookie; class UserController extends Controller{ public function index(Request $request) { if($request->hasCookie('msg')) { echo "Cookie present"; } else { echo "Cookie msg is not set"; } } }
輸出
Cookie present
示例 4
另一個測試 Cookie 設定的示例。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Cookie; class UserController extends Controller{ public function index(Request $request) { return view('test'); } }
Test.blade.php
<!DOCTYPE html> <html> <head> <style> body { font-family: 'Nunito', sans-serif; } </style> </head> <body class="antialiased"> <div> @if (Cookie::get('msg') !== false) <p>cookie is present.</p> @else <p>cookie is not set.</p> @endif </div> </body> </html>
輸出
以上程式碼的輸出為:
cookie is present.
廣告