PHP支持基于HTTP的cookies。在需要時你可以像使用一般變量一樣方便的使用cookie。Cookies是瀏覽器保存于客戶端的一些信息片段,由此你可以知道是否一臺特定PC上的任何人都訪問過你的站點,瀏覽者者在你的站點上的蹤跡等等。使用cookies的典型例子就是對瀏覽者偏好的甄別。Cookies由函數setcookie()設定。與輸出HTTP標頭的函數header()一樣,setcookie()必須在任何實際內容杯輸出到瀏覽器之前調用。以下是一個簡單例子: <? if (empty($VisitedBefore)) { // 如果沒有設定cookie,為cookie賦上當前時間值 // 函數中的最后一個參數聲明了該cookie保存的時間 // 在這個例子中是1年 // time()函數返回自1970年1月1日以來的以秒數計的時間 SetCookie("VisitedBefore",time(), time()+(60*60*24*365)); } else { // 歡迎瀏覽者再次光臨 echo "Hello there, welcome back<BR>"; // 讀取cookie并判斷 if ( (time() - $VisitedBefore) >= "(60*60*24*7)" ) echo "Why did you take a week to come back. You should be here more often!? "; } ?>
文件上傳 <? include("include/common.inc"); // 我們在這里再做一次用戶驗證 if(!isset($PHP_AUTH_USER)) { Header("WWW-Authenticate: Basic realm=/"$MySiteName/""); Header("HTTP/1.0 401 Unauthorized"); echo "Sorry, you are not authorized to upload files/n"; exit; } else { if ( !($PHP_AUTH_USER==$MyName && $PHP_AUTH_PW==$MyPassWord ) ) { // 如果是錯誤的用戶名稱/密碼對,強制再次認證 Header("WWW-Authenticate: Basic realm=/"My Realm/""); Header("HTTP/1.0 401 Unauthorized"); echo "ERROR : $PHP_AUTH_USER/$PHP_AUTH_PW is invalid.<P>"; exit; } } if ( $cancelit ) { // 當瀏覽者按下"取消"按鈕則轉向首頁面 header ( "Location: front_2.php3" ); exit; } function do_upload () { global $userfile, $userfile_size, $userfile_name, $userfile_type; global $local_file, $error_msg; global $HTTP_REFERER; if ( $userfile == "none" ) { $error_msg = "You did not specify a file for uploading."; return; } if ( $userfile_size > 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } // Wherever you have write permission below... $upload_dir = "photos"; $local_file = "$upload_dir/$userfile_name"; if ( file_exists ( $local_file ) ) { $error_msg = "Sorry, a file with that name already exists"; return; }; // 你還可以由此檢查文件名稱/類型對以確定是何種文件:gif,jpg,mp3… rename($userfile, $local_file); echo "The file is uploaded<BR>/n"; echo "<A HREF=/"$HTTP_REFERER/">Go Back</A><BR>/n"; } $title = "Upload File"; include("include/header.inc"); if (empty($userfile) || $userfile=="none") { // 輸出以下表單 ?> <FORM ACTION="<? echo "$PHP_SELF"; ?>" ENCTYPE="multipart/form-data" METHOD=POST> <INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="2000000"> <INPUT TYPE="FILE" NAME="userfile" SIZE="24" MAXLENGTH="80"> <BR><BR> <INPUT TYPE="SUBMIT" VALUE="Upload File!" NAME="sendit"> <INPUT TYPE="SUBMIT" VALUE="Cancel" NAME="cancelit"><BR> </FORM> <I><FONT SIZE="2">(You may notice a slight delay while we upload your file.)</FONT></I> <? } else { if ( $error_msg ) { echo "<B>$error_msg</B><BR><BR>"; } if ( $sendit ) { do_upload (); } } include("include/footer.inc"); ?>
照片圖庫
<? include("include/common.inc"); $title = "Gallery"; include("include/header.inc"); ?> <P> Here are some of our family photos. This PHP script can really be made better, by splitting into multiple pages. </P> <? $d = dir("photos"); while($entry = $d->read()) { if (is_file("photos/$entry")) echo "<IMG SRC=/"photos/$entry/">/n"; } $d->close(); ?> <? include("include/footer.inc"); ?>