一、 參考書籍:上奇出版的「PHP 6 與MySQL基礎學習教室」
二、 php5的時間調整:date.timezone -〉 Asia/Tokyo或Asia/Taipei
三、 session時間的初始化
〈? //ob_start( ); session_start( ); //啟動 session ini_set('date.timezone','Asia/Tokyo'); ?〉 |
備註:session暫存路徑修改 ini_set('session.save_path','../');
四、 session的生命週期
〈? session_start( ); ?〉〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉 session的生命週期〈/title〉〈/head〉〈body〉 〈? echo "a:".$_SESSION['a']."〈br〉"; echo session_id( )."〈br〉"; $_SESSION['a']=5; echo "a:".$_SESSION['a']."〈br〉"; echo session_id( )."〈br〉"; session_unset( ); echo "a:".$_SESSION['a']."〈br〉"; echo session_id( )."〈br〉"; session_destroy( ); echo "a:".$_SESSION['a']."〈br〉"; echo session_id( )."〈br〉"; ?〉 〈a href="session_test2.php"〉session是否可以看見?〈/a〉〈/body〉〈/html〉 |
說明:變數註冊為session變數與反註冊session變數於PHP6內取消
請檢視若只有執行或執行,第二頁的session變數是否可以顯示內容?
〈? session_start( ); ?〉 〈head〉〈meta http-equiv="Content-Type" content="text/html; charset=utf-8" /〉 〈title〉無標題文件〈/title〉〈/head〉 〈body〉〈? echo "a:".$_SESSION['a']."〈br〉"; ?〉〈/body〉〈/html〉 |
五、 單一變數的清除與刪除( session_test3.php)
〈?session_start( ); ?〉〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=UTF-8"〉 〈title〉判斷session類型變數是否存在〈/title〉〈/head〉 〈body〉〈? if (isset($_SESSION['b'])) { echo "b存在"."〈br〉"; echo $_SESSION['b']."〈br〉"; } else { echo "b不存在"."〈br〉"; $_SESSION['b']=50; echo $_SESSION['b']."〈br〉"; } ?〉 〈a href="session_test4.php"〉session是否可以看見?〈/a〉〈/body〉〈/html〉 |
session_test4.php
〈? session_start( ); ?〉 〈head〉〈meta http-equiv="Content-Type" content="text/html; charset=utf-8" /〉 〈title〉變數清除與刪除〈/title〉〈/head〉〈body〉 〈? echo "1b:".$_SESSION['b']."〈br〉"; //$_SESSION['b']=""; unset($_SESSION['b']); echo "2b:".$_SESSION['b']."〈br〉"; ?〉〈a href="session_test3.php"〉返回 〈/a〉〈/body〉〈/html〉 |
六、 網頁人數統計,加上session限制
〈?ob_start( );?〉 〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉session只能使用一次〈/title〉〈/head〉〈body〉 〈? session_start( ); if(!isset($_SESSION['counter'])) { $_SESSION['counter']=1; echo "歡迎光臨"; } else echo "已登錄過請勿重複登入"; ?〉〈/body〉〈/html〉 |
七、 表單與Session:
1. 表單部分(1.php)
〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉表單登入〈/title〉〈/head〉〈body〉 〈form name="form1" method="post" action="2.php"〉請輸入姓名: 〈input type="text" name="username" maxlength="6" size="8"〉〈br〉 請輸入密碼: 〈input type="password" name="passwd" maxlength=”6” size="8"〉〈br〉 〈input type="submit"〉〈input type="reset"〉〈/form〉 〈/body〉〈/html〉 |
2. 接收表單資料
〈? session_start( ); ?〉〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉驗證表單資料〈/title〉〈/head〉〈body〉 〈? if(!isset($_POST['username'])) { ?〉 〈script〉 window.alert('請輸入帳號'); //history.back( ); location.href="http://localhost/class3/session/1.php"; 〈/script〉〈? } if(!isset($_POST['passwd'])) { ?〉 〈script〉 window.alert('請輸入密碼'); //history.back( ); location.href="http://localhost/class3/session/1.php"; 〈/script〉 〈? } if($_POST['username']=="") { ?〉 〈script〉 window.alert('請輸入帳號'); history.back( ); //location.href="http://localhost/class3/session/1.php"; 〈/script〉〈? } if($_POST['passwd']=="") { ?〉 〈script〉 window.alert('請輸入密碼'); history.back( ); //location.href="http://localhost/class3/session/1.php"; 〈/script〉 〈? } $_SESSION['username']=$_POST['username']; $_SESSION['passwd']=$_POST['passwd']; echo '〈br/〉〈a href="3.php"〉第三頁〈/a〉'; ?〉〈/body〉〈/html〉 |
3. 第三頁的連結
〈? session_start( ); ?〉〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉查閱資料〈/title〉〈/head〉〈body〉 〈? if(!isset($_SESSION['username'])) { ?〉 〈script〉 window.alert('請輸入帳號'); location.href='./1.php'; 〈/script〉 〈? } if(!isset($_SESSION['passwd'])) { ?〉 〈script〉 window.alert('請輸入密碼'); location.href='./1.php'; 〈/script〉 〈? } echo '歡迎光臨'; echo '〈br/〉〈a href="4.php"〉登出〈/a〉'; ?〉〈/body〉〈/html〉 |
4. 第四頁登出
〈? session_start( ); ?〉〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉登出〈/title〉〈/head〉〈body〉 〈? session_unset( ); session_destroy( ); ?〉 〈script〉 //window.alert('請輸入帳號'); location.href='./1.php'; 〈/script〉 〈/body〉〈/html〉 |
八、 Cookie基本練習
1. 儲存Cookie
〈? ob_start( ) ;?〉 〈html〉〈head〉〈meta http-equiv="content-type" content="text/html;charset=utf-8"〉 〈title〉儲存Cookie〈/title〉〈/head〉 〈body〉〈? setcookie ("a", "php", time( )+1800);//1800代表1800秒 ?〉〈/body〉〈/html〉 |
2. 顯示Cookie
〈html〉〈head〉〈meta http-equiv="content-type" content="text/html;charset=utf-8"〉 〈title〉顯示Cookie〈/title〉〈/head〉 〈body〉〈? if (isset($_COOKIE["a"])) echo "cookie內容為".$_COOKIE["a"]; else echo "沒有資料"; ?〉〈/body〉〈/html〉 |
3. 刪除Cookie(時間到期)
〈? ob_start( ) ;?〉 〈html〉〈head〉〈meta http-equiv="content-type" content="text/html;charset=utf-8"〉 〈title〉刪除Cookie〈/title〉〈/head〉 〈body〉〈? setcookie ("a", "php", time( )-1800); ?〉〈/body〉〈/html〉 |
4. 刪除Cookie(變數沒有內容)
〈? ob_start( ) ;?〉 〈html〉〈head〉〈meta http-equiv="content-type" content="text/html;charset=utf-8"〉 〈title〉儲存Cookie〈/title〉〈/head〉 〈body〉〈? setcookie ("a", "", time( )+1800); ?〉〈/body〉〈/html〉 |
九、 Cookie綜合練習
1. 設定Cookie,檔名為showcookie1.php
〈?ob_start( );?〉 〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉 cookies設定綜合練習〈/title〉〈/head〉〈body〉 〈?$tomorrow = mktime (0,0,0,date("m"),date("d")+1,date("Y")); //mktime $nextmonth = mktime (0,0,0,date("m")+1,date("d"),date("Y")); $nextyear = mktime (0,0,0,date("m"),date("d"),date("Y")+1); $yourname="第6個cookie,Cookie變數的內容由變數取得資料"; $testtime=mktime(0,0,0,3,13,2009); setcookie ("a[0]","設定保存1800秒", time( )+1800); setcookie ("a[1]","設定保存至2009年3月13日",$testtime); setcookie ("a[2]","設定保存至明天",$tomorrow); setcookie ("a[3]","設定保存至下一個月",$nextmonth); setcookie ("a[4]","設定保存至明年",$nextyear); setcookie("a[5]","$yourname",time( )+1800); echo '〈a href="showcookie2.php"〉查詢Cookies〈/a〉'; ?〉〈/body〉〈/html〉 |
2. 查詢Cookie,檔名為showcookie2.php
〈?ob_start( );?〉 〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉 cookies設定綜合練習查詢〈/title〉〈/head〉〈body〉〈? $value1=$_COOKIE["a"]; for ($for1=0;$for1〈5;$for1++) { $a=$for1+1; echo "第".$a."的內容為".$value1[$for1]."〈br〉"; } echo '〈a href="showcookie1php"〉重新建立Cookies〈/a〉〈br〉'; echo '〈a href="showcookie3.php"〉刪除幾個Cookies〈/a〉〈br〉'; ?〉〈/body〉〈/html〉 |
3. 刪除Cookie:檔名為showcookie3.php
〈?ob_start( );?〉 〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉 cookies設定綜合練習刪除〈/title〉〈/head〉〈body〉〈? echo "設定保存1800秒,現在減1800秒"."〈br〉"; echo "設定保存至2009年3月13日,現在內容沒了"."〈br〉"; setcookie ("a[0]","",time( )-1800);//內容沒了 setcookie ("a[1]","");//內容沒了 echo '〈a href="showcookie1php"〉重新建立Cookies〈/a〉〈br〉'; echo '〈a href="showcookie3.php"〉刪除幾個Cookies〈/a〉〈br〉'; ?〉〈/body〉〈/html〉 |
十、 header運用—轉移網頁
〈? header("Location: http://www.google.com"); ?〉
Q1:如果此例的utf-8含有BOM,執行時會如何呢?
Q2:如果網頁上還有其他資訊顯示,網頁可以轉移嗎?
〈html〉〈head〉 〈meta http-equiv="Content-Type" content="text/html; charset=utf-8"〉 〈title〉轉換網址〈/title〉〈/head〉 〈body〉〈? header("Location: http://www.google.com"); ?〉 ?〉〈/body〉〈/html〉 |
十一、 以下幾種函數都必須放在第一行,
且之前不能有任何輸出,包含空白:
header( )、setcookie( )、session_start( )、ob_start( )
十二、 header運用—驗證身份後做網頁轉換【提供表單網頁】
〈? ob_start( ) ;?〉 〈html〉〈head〉〈meta http-equiv="content-type" content="text/html;charset=utf-8"〉 〈title〉驗證帳號與密碼〈/title〉〈/head〉 〈body〉〈? if (($_POST['username']=='php') and ($_POST['passwd']=='mysql')) header("Location: success.php"); else header("Location: failed.php"); ?〉〈/body〉〈/html〉 |
十三、 header運用—網頁每隔20秒向server讀取資料
〈? ob_start( ) ;?〉 〈html〉〈head〉〈meta http-equiv="content-type" content="text/html;charset=utf-8"〉 〈title〉網頁每隔20秒向server讀取資料〈/title〉〈/head〉 〈body〉〈? header("refresh:20"); echo "現在時間:".date("h:i:s"); ?〉〈/body〉〈/html〉 |
十四、 其他
沒有留言:
張貼留言