php 要支援 gd 模組才行,gd1.3.* 版以前可以支援 gif 格式,但1.6 以後不再支援 gif 而改支援 png 格式。但在中文字型輸出,還是有問題!
php 的 http 認証只能在Apache(windows 中不提供),使用 header() 函數將認証要求送到瀏灠器中。當使用輸入帳號、密碼後,會傳會 $PHP_AUTH_USER (帳號)、 $PHP_AUTH_PW(密碼)、 $PHP_AUTH_TYPE(認証型態)。範例
認証後會一直保留你輸入的資料,直到瀏灠器被關掉為止。注意:最容易犯的錯誤,就是在 header() 函數之前已送出資料到瀏灠器上,就算是空白也不可以!
以下就是一個運用範例,只有帳號為 test 、密碼為 good 才能進入。
cookie 留存在使用者的瀏灠器中,可用來記錄使用者身份、設定等資料,以補 http 無法記錄的缺失。
同樣使用 Header() 函數,表頭語法如下:
set-cookie:Name=Value ; expires = Date ; path = PATH ;
NAME=VALUE 自行定的名稱及值。
expires = Date 有效日期(保留),data 格式:wdy , DD-MM-YYY HH:MM:SS GMT ,如果沒定義,在瀏灠器結束後就無效了。
path = PATH 網頁的目錄指定,只有在此目錄下,才會取得這個 cookie 值。
不過,cookie 的存留權在使用者手中,如果使用者把 cookie 關掉,就無法正確運作了。
php 4 以後才提供的功能,其實他同 cookie 的功能,差別是他存放在伺服器上。
用法:
session_start() ;
session_register("loginname") ;
session_register("loginpwd") ;
$loginname = "abcd" ;
$loginpwd = "123456" ;而傳到下一頁的作法:
session_start() ;
echo $loginname ;
echo $loginpwd ;範例,這樣你就可以解身份的認定問題了。
而 session 是以 url 來認定身份的,也就是不同視窗的瀏灠器連線值是不相同的。範例 (在兩個不同的視窗中放入同一個網址,結果不一樣。)
那 session 值記錄在那兒?
在 php.ini 中查看:session.save_path = /var/state/php (此目錄中)
記錄內容: loginname|s:4:"abcd";loginpwd|s:6:"123456";
那麼你要做"登出功能",要怎麼做呢?
除了以上例 session_destroy() ;方式來清除所有連線資料,也可以把 $loginpwd 這些資料設成空字串。