NO IMAGE

                                      cookie與session區別:

當使用者登入成功後,生成cookie。有無cookie可作為網頁頁面是否允許繼續瀏覽的條件,如果不登入就不能生成cookie就不能訪問某些頁面。也可以在登陸時生成session,一般只有管理員登陸時生成session,賦予其特殊許可權,例如刪除所有人帖子的許可權,但需要注意的是生成session需要開啟session。

1:例如·:cookie,session生成的情況:

session_start(); //開啟session
// 使用者登入,接受資料驗證資料庫裡是否正確
if(isset($_GET['action'])&&$_GET['action']==login){
$_clean = array();
$_clean['username'] = $_POST['username'];
$_clean['password'] = sha1($_POST['password']);
$_clean = mysql_string($_clean);   轉義特殊字元
// 判斷資料庫是否存在資訊
if(!!$_rows = fetch_array("SELECT 
username,
login_count,
level,
last_login_time,
last_ip
FROM 
study_user 
WHERE 
username='{$_clean['username']}'
AND 
password='{$_clean['password']}'
LIMIT 1")){
// 累加登陸次數
query("UPDATE study_user SET login_count = login_count 1,last_login_time = NOW(),last_ip = '{$_SERVER["REMOTE_ADDR"]}' WHERE username='{$_rows['username']}'");
// 如果是管理員生成session
if($_rows['level']==1){  //等級為1的生成session
$_SESSION['admin'] = $_rows["username"];
}
close();
//生成cookie,只要登入成功就生成。
setcookie('username',$_rows["username"]);
location(null,'member.php');
}else{
close();
alert_back('使用者名稱或密碼錯誤');
}
}

2:cookie,session的許可權:

cookie:某些頁面不登入不能看到或進入;

session:給予只有管理員才有的功能;

//cookie:
<?php 
if(isset($_COOKIE['username'])){
?>
//回帖表單
<?php
}
?>
//session:只有使用者自己或者管理員才能刪除帖子
<?php 
if($_COOKIE['username']==$html['username']||isset($_SESSION['admin'])){
echo '<a href="article.php?action=delete_recommend&id='.$html['id'].'" class="delete_recommend">刪除帖子</a>';
};?>