萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 日期、表單接收、session、cookie(php教程三)

日期、表單接收、session、cookie(php教程三)

本教程主要是講一下關於日期、表單接收、session、cookie在php應用與使用方法,下面我們一一舉例說明了關於php中這些入門教程也是基礎要學的內容。

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>";
?>
copyright © 萬盛學電腦網 all rights reserved