Kuki Kawalan Sesi PHP dalam PHP
Dalam bahagian ini, kita akan belajar tentang Cookie melalui contoh di mana pengguna tidak perlu memasukkan semula nama pengguna dan kata laluan apabila dia melawat tapak web untuk kali pertama.
Pertama, izinkan saya memperkenalkan cara untuk menetapkan kuki dalam php.
php menyediakan fungsi yang membolehkan kami menetapkan kuki Fungsi ini ialah:
bool setcookie ( string $名字 [, string $值] [, int $過期時間 = 0] [, string $路徑] [, string $域名] [, bool $安全 = false] [, bool $http只讀 = false] );
Penerangan Parameter
$Name Diperlukan. Menentukan nama kuki.
$value Pilihan. Menentukan nilai kuki.
Tempoh sah $adalah pilihan. Menentukan tempoh sah kuki.
$Path Pilihan. Menentukan laluan pelayan untuk kuki.
Nama $Domain Pilihan. Menentukan nama domain untuk kuki.
$Security Pilihan. Menentukan sama ada kuki dihantar melalui sambungan HTTPS yang selamat.
$http安Read adalah pilihan. Jika benar, maka js tidak boleh membaca dan menukar kuki, yang meningkatkan keselamatan.
Secara umumnya, kami sebenarnya tidak menggunakan banyak parameter seperti di atas untuk fungsi ini, kami biasanya menggunakannya seperti ini: setcookie(nama kuki, nilai kuki, tempoh sah kuki);
?. >Ya, Hanya 3. Dengan cara ini, kita boleh membaca kuki melalui $_COOKIE['name'] pada bahagian pelayan. Berikut ialah contoh:Kami akan menamakan fail: cookie.php.
<?php //第一次登陸的時候,通過用戶輸入的信息來確認用戶 if ( ( $_POST['username'] != null ) && ( $_POST['password'] != null ) ) { $userName = $_POST['username']; $password = $_POST['password']; //從db獲取用戶信息 //PS:數(shù)據(jù)庫連接信息改成自己的 分別為主機 數(shù)據(jù)庫用戶名 密碼 $conn = mysqli_connect('localhost','root','root'); mysqli_select_db($conn,'test'); $sql = "select * from user where `username` = '$userName' "; $res = mysqli_query($conn,$sql); $row = mysqli_fetch_assoc($res); if ($row['password'] == $password) { //密碼驗證通過,設(shè)置cookies,把用戶名和密碼保存在客戶端 setcookie('username',$userName,time()+60*60*24*30);//設(shè)置時效一個月,一個月后這個cookie失效 setcookie('password',$password,time()+60*60*24*30); //最后跳轉(zhuǎn)到登錄后的歡迎頁面 header('Location: welcome.php' . "?username=$userName"); } } //再次訪問的時候通過cookie來識別用戶 if ( ($_COOKIE['username'] != null) && ($_COOKIE['password'] != null) ) { $userName = $_COOKIE['username']; $password = $_COOKIE['password']; //從db獲取用戶信息 //PS:數(shù)據(jù)庫連接信息改成自己的 分別為主機 數(shù)據(jù)庫用戶名 密碼 $conn = mysqli_connect('localhost','root','root','test'); $res = mysqli_query($conn,"select * from user where `username` = '$userName' "); $row = mysqli_fetch_assoc($res); if ($row['password'] == $password) { //驗證通過后跳轉(zhuǎn)到登錄后的歡迎頁面 header('Location: welcome.php' . "?username=$userName"); } } ?> <html> <head> </head> <body> <form action="" method="POST"> <div> 用戶名:<input type="text" name="username" /> 密 碼:<input type="text" name="password" /> <input type="submit" value="登錄"> </div> </form> </body> </html>Kod welcome.php yang melompat ke
<?php $user = $_GET['username']; ?> <html> <head> </head> <body> welcome,<?php echo $user;?> </body> </html>Dengan cara ini, apabila saya melawat cookie.php buat kali pertama, saya perlu memasukkan nama pengguna dan kata laluan, dan selepas memasukkan itu, saya melompat untuk mengalu-alukan .php. Kemudian saya menutup pelayar dan membuka cookie.php semula kali ini saya tidak diminta untuk memasukkan maklumat pengguna, tetapi melompat terus ke welcome.php, kerana maklumat kuki yang kami simpan sebelum ini dihantar secara automatik ke pelayan oleh penyemak imbas. pelayan lakukan Selepas pemprosesan, kami melompat terus ke welcome.php. Mengetahui bahawa saya adalah pengguna yang log masuk sebelum ini, kami menggunakan teknologi kuki untuk mengekalkan keadaan protokol HTTP tanpa kewarganegaraan.
Ikuti ini dan saya percaya anda akan dapat menggunakan kuki.