跳到主要內容

發表文章

目前顯示的是 2月, 2009的文章

使用php取得網址

在php中要取得目前網址要用字串組合的方式 $_SERVER['HTTP_HOST'] //網址 $_SERVER['REQUEST_URI'] //包含參數(包含目錄) $_SERVER['PHP_SELF'] //只有檔案名稱(包含目錄) $_SERVER[QUERY_STRING] //只取後面參數 以 http://www.gocar.idv.tw/phpbb3/viewforum.php?f=1 網址為例 $_SERVER['HTTP_HOST'] : www.gocar.idv.tw $_SERVER['REQUEST_URI'] :/phpbb3/viewforum.php?f=1 $_SERVER['PHP_SELF'] : /phpbb3/viewforum.php $_SERVER[QUERY_STRING] : f=1 所以 $ThisURL = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; echo $ThisURL ; 會得到 http://www.gocar.idv.tw/phpbb3/viewforum.php?f=1 $ThisFile = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; echo $ThisFile ; 會得到 http://www.gocar.idv.tw/phpbb3/viewforum.php 引述自 http://www.gocar.idv.tw/phpbb3/viewtopic.php?f=9&t=21&p=22

Session注意事項2-傳送Class的問題

這一次做了一個嘗試,之前都不曉得session有這麼的神通廣大,發現可以將Class傳入Session中 <?php sessiont_start(); class SaveSession{ function echoDate(){ echo "God, I can save Class in session."; } } $test = new SaveSession(); $_SESSION['name'] = $test; ?> 我們可以將內容到另外一個頁面來讀取看看 <?php session_start(); $load = $_SESSION['name']; echo $load->echoDate(); ?> 奇怪怎麼會發現沒有任何東西輸出呢? 我們將這個資訊輸出看一下,我們會發現裡面給了一些有趣的訊息: [__PHP_Incomplete_Class_Name] 原來是因為我們沒有定義這個Class所以沒有辦法得知內部的資料,所以我們可以將剛剛Class SaveSession再這個頁面重新定義一次,也就是include <?php sessiont_start(); class SaveSession{ function echoDate(){ echo "God, I can save Class in session."; } } $load = $_SESSION['name']; echo $load->echoDate(); ?> 完成了嗎?輸出的資料還是一樣null,這是為何呢?這是因為我們的Class必須要在session開啟之前就定義,我們將位置交換一下 <?php class SaveSession{ function echoDate(){ echo "God, I can save Class in session."; } } sessiont_start(); $load = $_SESSION['name']; echo $load->echoDate(); ?>

Session注意事項

很多人要使用session時都發現,為何沒有辦法讀出來沒有值呢?像底下這樣子 <?php echo $_SESSION['name']; //null ?> 這是因為前面沒有加上session_start();,正確的Code應該這樣子寫 <?php session_start(); echo $_SESSION['name']; //null ?> 但是有時候還是會出現一些錯誤,例如常見的 cannot send session cache limiter-headers already sent (output start at ............) ok,出現這樣子的訊息有兩種可能性,目前我所遇到的狀況也只有這兩種 1. 在使用session_start();之前輸出了資料,例如 <html> <head> </head> </html> 諸如此類的型態都會產生錯誤,最好的方式就是直接在每個要使用session的頁面直接第一行就執行session_start(); 2. 引用了UTF-8格式的文件,解決這種方式有兩種 第一種方式: 在php.ini底下修改,將output_buffering = off,改成output_buffering = 4096 第二種方式: 就是將檔案格式改成utf-8 無 BOM的格式,改的方式就是 開啟 notepad++ >格式>轉換至UTF-8碼無BOM

Reservation Work log(2)

Today, I finished login page, I rewrite it to a class model for maintaning easy and cleanly. But it waste much time to do, I am not used this type of coding. But I trust it if I want to go up stair, I have to learn it. It is a mash day. tomorro will be better. Fight!