session
| 代碼如下 |
複製代碼 |
<?php
session_start();//session在瀏覽器關閉後馬上失效,需要這樣聲明才能讀寫session
$_session['id']='伺服器';//這就是聲明和初始化了,和數組用法一樣
$_session['name']='會話';
print_r($_session);//會話註冊成功輸出一個數組
echo "<br>";
$_session['id']='還是伺服器';//改變一個會話,再輸出看看
unset($_session['name']);//登出一個會話,再輸出看看
print_r($_session);
echo "<br>";
?> |
會話支援允許使用者註冊任意數目的變數並保留給各個請求使用。當來客訪問網站時,php 會自動(如果 session.auto_start 被設為 1)或在使用者請求時(由 session_start() 明確調用或 session_register() 暗中調用)檢查請求中是否發送了特定的會話 id。如果是,則之前儲存的環境就被重建
page1.php
| 代碼如下 |
複製代碼 |
session_start();
echo 'welcome to page #1';
/* 建立session變數並給session變數賦值 */
$_session['favcolor'] = 'green';
$_session['animal'] = 'cat';
$_session['time'] = time(); |
page2.php
| 代碼如下 |
複製代碼 |
session_start();
print $_session['animal']; // 列印出單個session
var_dump($_session); // 列印出page1.php傳過來的session值 |
get,
$_get 變數
$_get 變數是一個數組,內容是由 http get 方法發送的變數名稱和值。
$_get 變數用於收集來自 method="get" 的表單中的值。從帶有 get 方法的表單發送的資訊,對任何人都是可見的(會顯示在瀏覽器的地址欄),並且對發送的資訊量也有限制(最多 100 個字元)。
例子
| 代碼如下 |
複製代碼 |
<form action="welcome.php" method="get">
name: <input type="text" name="name" />
age: <input type="text" name="age" />
<input type="submit" /> |
</form>當使用者點擊提交按鈕時,發送的 url 會類似這樣:
http://www.111cn.net/welcome.php?name=peter&age=37"welcome.php" 檔案現在可以通過 $_get 變數來擷取表單資料了(請注意,表單域的名稱會自動成為 $_get 數組中的 id 鍵):
| 代碼如下 |
複製代碼 |
welcome <?php echo $_get["name"]; ?>.<br />
you are <?php echo $_get["age"]; ?> years old! |
看個簡單詳細的執行個體
| 代碼如下 |
複製代碼 |
<?php
echo $str=urlencode("第一頁");//url變數編碼,跟google一樣
echo "<br>".urldecode($str);//url變數解碼,我看到了
echo "<br><a href=index.php?page=".$str.">第一頁</a>";
echo "<br>";
if($_get)echo "變數已接收:".$_get['page'];//$_get對應$_post,php是自動識別url編碼並自動解碼好的。
echo "<br>";
?> |
cookie
php cookie 用法
$time = time() + 300; //5分鐘到期
$code = md5($string . $time . $salt);
setcookie('check_time', $time);
setcookie('code', $code);
//驗證部分
$time = time();
if($check_time < $time)//如果伺服器時間比驗證時間大,算到期
//expire到期
if(md5($string . $check_time . $salt) !== $code)
//錯誤
其實這種方法相對好一點,因為到期不能提交了,但是到期之前還是可以無限提交的
看一cookie執行個體
| 代碼如下 |
複製代碼 |
<?php
setcookie("id","用戶端");//這就是聲明和初始化cookie的函數。關閉瀏覽器即失效
setcookie("name","會話",time()+3600);//自此1小時後失效
print_r($_cookie);//會話註冊成功輸出一個數組,也可以用$http_cookie_vars訪問
echo "<br>";
setcookie("id","還是用戶端");//改變一個會話,再輸出看看
unset($_cookie['name']);//登出一個會話,再輸出看看,等價於setcookie("name","",time()-1);這是很多書上說的,其實用unset也能登出
print_r($_cookie);
echo "<br>";
?> |
日期
| 代碼如下 |
複製代碼 |
<?php
echo time();//返回一串以秒計算的時間數字戳
echo "<br>";
echo date("y-m-d h:i:s",time()+8*3600);//格式化時間,+8*3600變為中國時區時間
echo "<br>";
$str="2010-08-24 10:26:10";
echo date("y-m-d h:i:s",strtotime($str));//strtotime將字串轉為時間戳記
echo "<br>";
?> |