顯示具有 php 標籤的文章。 顯示所有文章
顯示具有 php 標籤的文章。 顯示所有文章

2009年7月5日 星期日

使用nusoap建立web service-範例

首先 分別撰寫cliet與server端程式,放在nusoap資料夾下

server端部分程式碼撰寫原則:
  1. 撰寫欲被client調用的函式connectandsave($content)
  2. 引入nusoap require_once("lib/nusoap.php");
  3. 建立soap_server實體 new soap_server()
  4. 配置WSDL文件敘述 configureWSDL
  5. 為服務註冊register方法函式(connectandsave)
  6. 使用service方法執行方法並回傳值 $server->service($POST_DATA);

server端-WSservertest.php:
<?php
//定義service處理函式
function connectandsave($content)
{
$xx = main::toStore($content);

return "get \r\n" . main::$accuracy2 . "\r\n" ;
//return "get \r\n" . $content . "\r\n" ."dd";

}
date_default_timezone_set("Asia/Taipei");
require_once("lib/nusoap.php");


$server = new soap_server();// 初始化一個service物件實體
$server->soap_defencoding='UTF-8';
$server->decode_utf8=false;
$server->configureWSDL("SimpleService");// 配置 WSDL 描述,叫用時以此為類別名稱
$server->wsdl->schemaTargetNamespace = $namespace; // set namespace
// register service's WebMethod,註冊過的程序才能被訪問到
// $server->register('answerHello',array('name' => 'xsd:string'),array('return' => 'xsd:string'));
$server->register(
// method name:
'connectandsave',
// parameter list:
array('name'=>'xsd:string'),
// return value(s):
array('return'=>'xsd:string'),
// namespace:
$namespace,
// soapaction: (use default)
false/*,
// style: rpc or document
'document',
// use: encoded or literal
'encoded',
// description: documentation for the method
'Anser Hello to World '*/);


//把client端 post 過來的資料,傳給server物件的 service 方法處理。
//service 方法處理的資料會借調用相應的函式回傳給叫用端
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
? $GLOBALS['HTTP_RAW_POST_DATA'] : '';

$server->service($POST_DATA);
exit();
?>

其中main是自定類別,裡面就是自己寫的一些程序

接下來示範如何調用剛剛寫好的函式connectandsave
client端部分程式碼撰寫原則:
  1. 引入nusoap require_once("lib/nusoap.php");
  2. 建立soapclient()實體 new soapclient()
  3. 將要傳送的資料陣列化(array)
  4. 使用call方法叫用欲呼叫的方法call(函式名)
  5. 印出call完後的值;


client端-WSclienttest.php :
<?php
require_once("lib/nusoap.php");
//初始化 client 物件,是class soapclient 的一個實體
//把服務程序的 URL 地址傳遞给soapclient類別的構造函式
$client = new soapclient('http://xxxx/nusoap/WSservertest.php'); //後面利用client物件的 call 方法調用 WEB 服务的程序'GPSconnectandsave'

$myname = 'clark' ;
// $Content = '25.07433874,121.52545941,2009-05-23,17:53:56,1.2,5,2.3,2.6,8.3,xxx' ; //中原國小門口
$Content = '24.956846,121.242451,2009-05-23,17:53:56,1.2,5,2.3,2.6,8.3,xxx' ; //中原大草皮

$parameters=array('24.956846,121.242451,2000-01-01,17:53:56,1.2,5,2.3,2.6,8.3,xxx');
$str=$client->call('connectandsave',$parameters); //call('函式名',匹配的參數) 函式名為在WSservertest.php中所註冊的函式

//$str=$client->call('hello'); //客户端对象的 getError() 方法可以用来检查调用过程是否出现错误。
//如果没有错误, getError() 方法返回 false ;如果有错误, getError()方法返回错误信息。
if (!$err=$client->getError()) {
echo " return:",htmlentities($str,ENT_QUOTES); //the optional second quote_style parameter lets you define what will be done with 'single' and "double" quotes. It takes on one of three constants with the default being ENT_COMPAT: ,ENT_QUOTES Will convert both double and single quotes.
} else {
echo " error :",htmlentities($err,ENT_QUOTES);
}

//觀察request 和 response響應
echo '<p/>';
echo 'Request:';
echo '<pre>',htmlspecialchars($client->request,ENT_QUOTES),'</pre>';
echo 'Response:';
echo '<pre>',htmlspecialchars($client->response,ENT_QUOTES ),'</pre>';

?>

2009年6月29日 星期一

fsockopen穿越proxy-以台灣簡訊為例

fsocjopen 可以跟伺服器主機連線,只要知道IP、port 就好,但容易遇到的問題是,萬一讀取網頁時是靠proxy來達成的時候,那該怎麼做呢?

其實,一樣可以用fsockopen,但我們連線到proxy,在直接下指令給proxy即可
下面範例是在作專題時,使用台灣簡訊來發送客製化簡訊,欲到的proxy是中原大學的proxy.cycu.edu.tw port:3128

<?
$username = "xx"; // 帳號
$password = "xx"; // 密碼
$type = "now"; // 發送型態
$mobile = "0988xxxxxx"; // 電話
$message = "簡訊測試喔"; // 簡訊內容
$encoding = "big5"; // 簡訊內容編碼
$popup = ""; // 使用 POPUP 顯示
$mo = ""; // 使用雙向簡訊
$vldtime = "86400"; // 簡訊有效期限
$dlvtime = ""; // 預約時間
$MSGData = "";
$msg =
"username=".$username."&password=".$password."&type=".$type."&encoding=".$encoding."&popup=".$popup."&m
o=".$mo."&mobile=".$mobile."&message=".urlencode($message)."&vldtime=".$vldtime."&dlvtime=".$dlvtime;


$num = strlen($msg);
// 打開 API 閘道
$fp = fsockopen ("proxy.cycu.edu.tw", 3128);
// print_r($fp);
if ($fp) {
$MSGData = $MSGData."POST http://211.78.23.230/send_sms.php HTTP/1.1\r\n";
$MSGData = $MSGData."Host: api.twsms.com\r\n";
$MSGData = $MSGData."Content-Length: ".$num."\r\n";
$MSGData = $MSGData."Content-Type: application/x-www-form-urlencoded\r\n";
$MSGData = $MSGData."Connection: Close\r\n\r\n";
$MSGData = $MSGData.$msg."\r\n";
fputs ($fp, $MSGData);

// 取出回傳值
while (!feof($fp)) $Tmp[]=fgets ($fp,128);

// 關閉閘道
fclose ($fp);

// 顯示回傳值
$Respone = split(":",$Tmp[9]);
// print_r($Tmp);
$Res["Number"] = $Respone[0]; // 傳回碼
$Res["OrderID"] = $Respone[1]; // 如果傳回碼是 00 成功, 才會有 OrderID 產生
// echo '<BR>$Res["Number"] ='.$Res["Number"];
// echo '<BR>$Res["OrderID"] = '.$Res["OrderID"];
}
?>



上面程式碼其中的211.78.23.230 是台灣簡訊的server,要注意的是
這邊要放 http://211.... 也就是絕對路徑!!

此範例由台灣簡訊API提供的範例程式作修改。

2009年6月19日 星期五

PHP Excel PHPPowerPoint

兩個PHP class
PHPExcelPHPPowerPoint
分別可以很簡單地透過 PHP 讀取及寫入 Excel 2007 及 PowerPoint 2007 的檔案

用 PHP 讀寫 Excel 檔案
裡頭有讀取Excel的範例

2009年5月21日 星期四

使用NuSOAP建構webservice

NuSOAP的使用说明

NuSOAP教程

http://www.phpq.net/tag/NuSOAP/

http://www.shanghuo.net/?action=show&id=51

使用C#叫用PHP寫的webservice
http://www.sanity-free.org/125/php_webservices_and_csharp_dotnet_soap_clients.html

php SOAP 簡單的示範

2009年4月6日 星期一

IE快取問題

再使用FF都沒問題的,但IE問題卻發生了~
載入的檔案沒有更新,在HTML裡已經宣告過標頭不快取了~但還是硬生生被鎖住,
按Ctrl+ F5,怪哉~發現居然還是讀到舊檔...
想想...我的程式是透過連結SERVER上的php檔來抓資料,所以就只要改PHP檔的標頭就好了吧~果然~ 一試OK~
如果有欲到IE快取問題,可以根據不同的需求,來做避免快取的動作吧~

以下是在不同檔案的避免快取辦法~

可以在HTML裡


<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">


在JSP裡:

要連結的網址後面加參數,名稱不一樣,瀏覽器就會被騙過去再載一次
window.location.href='linkpage.jsp?t='+new Date().getTime();


在PHP裡

程式碼最前面加上:
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);


在CSS連結~
簡易克服 CSS 被瀏覽器快取(Cache)的問題

參考 JSP: 避免用戶端快取網頁內容的幾種方法比較 裡面有幾個方法的測試

2009年3月31日 星期二

php) date 時間日期不對

使用PHP 內建日期函式 date(Y-m-d)
跑出來結果都跟本機時間不同,但在MySql使用其內建date()又沒錯...怪~
原來是php server 問題~ 要設定php.ini 的timezone 為Asia/Taipei

若不改設定檔~可以用下面方式

程式碼中加上
date_default_timezone_set("Asia/Taipei");
預設指定系統時間為台灣就可以了~

or
date('Y-m-d G:i:T', strtotime('+8HOUR') )
指定時間偏移到為台灣時區就可以了~

到右下角小時鐘,點"時區"分頁,就會看到 (GMT+08:00)台北

據說是5.X版後全改成格林威治時間~

2009年3月8日 星期日

使用PHP撰寫網頁程式

剛開始學習網頁設計時,網站的設計比預期的還來的大~
重複的演算法與功能函式挺多的,以致於現在看到網頁源碼頭都很大>< 
早知道 就該用物件導向的寫法了~

Object Oriented Programming (OOP) 最重要的概念有三種:

  1. 封裝 (encapsulation)
  2. 繼承 (Inheritance)
  3. 多型 (Polymorphism)

參考這篇,學一下物件導向寫法的基本使用方式吧~
物件導向 類 class

php官網有更詳細的範例說明 The Basics(PHP官網)

2008年12月14日 星期日

字元分割

JAVASCRIPT提供 split(',') //以逗點做字串分割

ex:
var stringArray = "123,456,789" ;
var getElement = stringArray.split(',')[1] ;

getElement 輸出即為 456 ~~~


PHP 提供 explode() //可以用特定字元切割字串,並存入陣列中

語法: $要被存入的陣列變數 = explode("分隔符號",要被切割的字串);
ex :
$engWords = "abc,def,ghi,jkw" ;
$words = explode(",", $engWords);
echo $words[0]; // abc
echo $words[1]; // def


ref: http://tw.php.net/explode

2008年11月15日 星期六

測試 string 於 javascript & php

html 的form 經過 POST 或 GET method 傳過來時,只能用PHP網頁接 ..新發現
題外話~~

重點~~~~~~~~~~~~~~
傳過來是
<input name="phonenumer" type="text" value="phone" >
<input name="checknum" type="text" value="chk" >

這個來接收
accept.php

<?php
$phonenumber = $_POST['phonenumer'] ;
$checknum = $_POST['checknum'] ;
$_SESSION['phonenumber']=$_POST['phonenumer'] ;

echo '$phonenumber='.$phonenumber ; //$phonenumber=phone
echo $phonenumber ; //phone
echo "$checknum" ; //chk

?>
<script type="text/javascript">
//<![CDATA[


alert("ffff") ; //ffff
var phonenumber1 ="4536" ;
//表單傳遞資訊存入javascript
alert("<?php echo 'fssfdsfsdf' ?>") ; //fssfdsfsdf
alert("<?php echo "$phonenumber" ?>") ; //0988...
alert('phonenumber1') ; //phonenumber1
alert("phonenumber12") ; //phonenumber12
alert(phonenumber1) ; //phone

var phonenumber = <?php echo "\"$phonenumber\"" ?> ;
alert(phonenumber) //phone
var phonenumber = "<?php echo $phonenumber ?>" ; //存成 phone 字串
alert(phonenumber + '000') // //phone000
var checknum = "<?php echo "$checknum" ?>" ; // 存成 chk 字串
alert(checknum + '000') //chk000

alert("http://140.1xx.xxx.xxx/ixxxx/mxxxl.php?temp="+"&phonenumber="+ phonenumber) ;

// XMLHttpRequest通訊 ;
// function getLonLat(url){
// var request = GXmlHttp.create();
// var theDate = new Date(); //為了避免瀏覽器快取
// request.open("GET","http://140.1xx.xxx.xxx/ixxxx/mxxxl.php?temp="+"&//phonenumber="+ phonenumberr="+ phonenumber , true) ;
//失敗...

var url="http://140.1xx.xxx.xxx/ixxxx/mxxxl.php?temp="+theDate.getDate()+theDate.getMinutes()+theDate.getSeconds()+"&phonenumber="+ phonenumber ;
alert(url); //http://140.1xx.xxx.xxx/ixxxx/mxxxl.php?temp=165349&phonenumber=phone

2008年11月12日 星期三

xmlHttp


http://blog.roodo.com/jiing/archives/1052181.html

http://www.microsoft.com/taiwan/msdn/columns/ASPNET_2/aspnet_2_20051212.htm


http://newweb.syups.tp.edu.tw/documents/memo/PHP/php_develop.htm


http://audi.tw/AJAX/

2008年11月6日 星期四

phpmyadmin 安裝

IIS + PHP + phpmyadmin

之前講過 IIS 和 PHP安裝了 接下來講 phpmyadmin

我們使用 appserv-win32-2.5.9.exe

憑剛裝好的印象簡要:

1. 設定安裝路徑: C:php
2. 取消勾選安裝apache phphypertext
3. 於IIS 預設的網站點擊右鍵->新增 ->虛擬路徑 路徑為phpmyadmin剛裝好的地方(c:/php/www/phpmyadmin)

這樣就OK了~

2008年10月15日 星期三

Page has Expired (php)

呼~不停的問題啊

最近發現 之前寫的網頁有問題嚕~

網頁裡面的表單送出後,再按"上一頁"
就會出現
"Warning: Page has Expired The page you requested was created using information you submitted in a form. This page is no longer available. As a security precaution, Internet Explorer does not automatically resubmit your information for you.

To resubmit your information and view this Web page, click the Refresh button. "

目前看到的解決方法~


所以囉~到php.ini 找找"session.cache_limiter" 把值設為"private"看看~

2008年6月11日 星期三

php 寫入檔案問題

使用
$handle = fopen("c:/phpsid.txt" , "w+") ;
fwrite($handle , $contents) ;
fclose($handle) ;


出現
Warning: fopen(c:/phpsid.txt) [function.fopen]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\php_pratice_gmapuser\setarea_1.0\setarea.php on line 452
Warning: fwrite(): supplied argument is not a valid stream resource in C:\Inetpub\wwwroot\php_pratice_gmapuser\setarea_1.0\setarea.php on line 453
Warning: fclose(): supplied argument is not a valid stream resource in C:\Inetpub\wwwroot\php_pratice_gmapuser\setarea_1.0\setarea.php on line 454


怪哉~
IIS 主目錄 下: 讀取 、 寫入 指令碼來源存取 都以勾選
使用權限也選擇 指令碼及執行檔

一直無法寫入,不知道哪裡有問題 悶~~
程式碼換成
$handle = fopen("c:/phpsid.txt" , "r") ;
$contents = fread($handle , filesize("phpsid.txt")) ;
fclose($handle) ;

讀取,是可行的~~~

2008年4月18日 星期五

編碼問題

網頁流程:
[login.php]登入頁面-->[check.php] 登入 -> [tpolygondemo2.php] 首頁
_>[name.php]新增會員 ->[addmember.php] 新增會員至資料庫


網頁編碼皆選擇 utf-8 ,
name.php的表單資料(變數)傳遞給在背後的addmember.php,進行insert to DB動作
要在DB management 上看到繁體中文,需要在addmember.php裡面的資料庫連結部分加上


mysql_query("SET NAMES 'utf8'");
這是寫繁體中文進資料庫的方法


試著用mysql_query("SET NAMES 'big5'");
結果在DBM看到的是亂碼(非一堆問號,是中文字..)


以上都是網頁編碼選擇UTF-8 ,那反過來呢?
如果網頁編碼選擇 big5
連結資料庫時 加上mysql_query("SET NAMES 'big5'");


沒問題 ~ 正常顯示


試著用mysql_query("SET NAMES 'utf8'");
這裡忘記了.. 只依稀記的應該也是中文亂碼


目前寫進資料庫 ~ 沒問題了~


那讀出來呢? 問題大了 ~~~


0~7 是 陣列資料 利用下列方式

$fields_data = mysql_fetch_row($result)

再用 foreach($fields_data as $name => $value ) // 把每一筆直印出來

{echo "$name : $value
" ; }

圖中"問號"就是繁體部分.. 現在要解決的就是中文讀取問題囉~

參考 MySQL 中文編碼徹底研究 作者jaceju 寫的非常詳細,值得花時間去看

文中提到

當 MySQL 要寫入資料或讀出資料時,它無法確定這些資料的格式是不是符合使用者的要求。這時候我們就得自行指定正確的編碼,讓 MySQL 自動轉換這些資料。因此,在對 MySQL 4.1 以後的版本下達 INSERT, UPDATE 及 SELECT 指令之前,都應該要先用以下指令來指定正確的連線校對

SET NAMES 'utf8'

也就是說在 MySQL 4.1 以後,就算我們把預設字集設為 big5 或 utf8 ,事實上還是得看資料庫或資料表實際所設定的校對編碼 (除非建立時採用繼承值) 。所以 SET NAMES 只會影響 MySQL 伺服端和 PHP 程式之間的通訊編碼格式,跟預設字集沒有太大關係。

看樣子使用utf-8頁面編碼比起big5 會方便許多,之前寫的網頁都是用big5,趁還沒太多網頁,全部改為utf-8了

跟寫入時一樣, 讀取時 設定 SET NAMES 'utf8' 編碼目前都沒問題了

2008年4月6日 星期日

insert into 兩種寫法 結果不同

使用兩種寫法
type1:

$sql = "INSERT INTO muser(muser,mpassword, mname, maddress, mtel, msex)
VALUES (".$mnum.",".$mpassword.",".$mname.",".$maddress.",".$mtel.",".$msex.")";

type2:

$sql = "INSERT INTO muser(muser,mpassword, mname, maddress, mtel, msex)
VALUES ('$mnum','$mpassword','$mname','$maddress','$mtel','$msex')";

mysql_query($sql) 插入資料庫 結果不同

type1: 數字可以 英文不行
type2:都可以

參考mysql DBMS所提供的語法
$sql = 'INSERT INTO `mobilesocial`.`muser` (`muser`, `mpassword`, `mgroup`, `mlogin`, `mname`,

`maddress`, `mtel`, `msex`) VALUES (\'testname\', \'123\', \'123\', \'123\', \'132\', \'123\', \'123\',

\'123\');';
這是寫死的引數,把這些引數變成要傳遞的變數($XXX)再試試看吧~ <攤>

2008年4月2日 星期三

IIS & PHP 安裝

NOTE:
為了避免不必要的干擾 進場前請先把防火牆關掉!!

安裝過程需要XP光碟!!




PART I IIS 安裝
控制台->新增移除程式->新增疑除WINDOWS元件->勾選 internet windows service (IIS)


點擊 詳細資料



勾選 World Wide Web Service ->詳細資料



勾選 World Wide Web Service ,沒有特別需要 使用預設選項即可!
<記的放入XP光碟>





下載完後解壓縮在 以建立好的C:\PHP下
將 PHP 檔案解壓縮到 C:\php (解壓縮後此目錄下應是數個檔案夾)

將 php5ts.dll、libmysql.dll、php.ini-dist copy 到 C:\WINDOWS 將已 copy 到 C:\WINDOWS 的 php.ini-dist 更名為 php.ini
幾個步驟:

開啟 php.ini 找到 extension_dir = "./" 改成 extension_dir = "C:\php\ext"

找到 ;extension=php_mbstring.dll 改成 extension=php_mbstring.dll

找到 ;extension=php_mysql.dll 改成 extension=php_mysql.dll

找到 ;extension=php_mysqli.dll 改成 extension=php_mysqli.dll

找到 ;date.timezone = 改成 date.timezone = "Asia/Taipei" 將 php.ini 存檔後關閉

PART III 設定 IIS


為了確保使用IIS 要先設定以下一些東西(各種伺服器安裝PHP的指令不同 install.txt 可以參考)
控制台 > 系統管理工具 > Internet Information Services 本機電腦 > 網站 > 預設的網站 按右鍵選內容




出現右邊視窗
ISAPI 標籤業->新增-> name: PHP -> 瀏覽-> 如圖



確定後 ->主目錄標籤頁->設定->新增-> 在執行檔填入 C:\php\php5isapi.dll (或是按 [瀏覽] 找到這個檔案) 副檔名填入 .php 連按兩次 [確定] 如上圖~




最後步驟 讓連結至網站(http://site)時 Web伺服器會載入http://site/index.php
啟用此功能:
找到 [文件] 按 [新增]輸入 index.php,按 [確定]




按確定

測試:
在C:\Inetpub\wwwroot\下 新增文字檔 寫入
<?php
Phpinfo() ;
?>
存檔 檔名 testphp.php
開啟瀏覽器



有顯示VERSION 即成功
但是卻沒有載入mysqli 模組


解決方法….
法一: 我的電腦->檢視系統資訊->進階 標籤頁->環境變數->系統變數部分 雙點擊Path 加上;C:\WINDOWS 路徑(加在最前面) 這個路徑是以上所存放的ini libmysql 路徑,完成之後 重開機! (通常這步就可以了)
法二
測試 MYSQL語法 可否連到DB
寫一簡單PHP 程式 如下 放入wwwroot裡 ~ 開網頁連自己的IIS


連結成功
再來測試 mysqli 語法是否可行
try 去MYSQL 下載更新的 mysqli.dll 換過從php5X.zip裡面的
…1/1 電腦中毒了….


砍完毒 繼續TRY~


安裝 phpdocument :




關於 php.ini-dist

刪除前面的";"來取消註解

Reference:


碼上學會 PHP5&MySqL5 ISBN 978 986 6884 05 4
附錄A 12-2 row 20


Q&A:


IIS 無法開啟 "為預期的錯誤"

解決方式 : 關掉SKYPE ~ 因為SKYPE會開啟80 PORT ,IIS預設也是80PORT

避免衝突先關掉SKYPE 重啟IIS,再開啟SKYPE即可

PART III 資料庫伺服器安裝 (略)


2008年3月18日 星期二

回頭複習 php

簡單php
1. 變數命名 可使用 英文, 數字, 底線 ,唯一限制就是不能用數字做開頭
2. 宣告靜態變數 (static) ,靜待變數不會因為函數的結束而消失,而會將值保留在記憶體中,直到整個程式結束,所以靜態變數通常會被應用再迴圈
3.

字串:
如果字串中有變數時,選擇用' ' or " "所得到結果不同!!
以" "括號起來的字串,會對其中的變數做處理
ex: "this is $num" -->顯示: this is 3

以' ' 括號起來的字串,會保留現狀
ex: 'this is $num' -->顯示: this is $num

字串運算子 .
可以連結字串
所以比較下面:
ex: "this is '$num' " -->顯示: this is '3'
ex: "this is ".$num." " -->顯示: this is 3 用.連結三字串

4. 若要顯示特殊符號 如"$" ,只要在前面加上反斜線 "\" 即可顯示
5. 使用boolean 時 只有"true" "false" 兩種值,不同文字的true false 所以社變數時不能加"" or ' '
ex : $a = true ;
6.資源型態變數 是負責與外部資源做聯繫動作, 例如: MySQL資料庫就是外部資源,資源形態的變數要藉特定函數才能發揮作用
ex: $link = mysql_connect("localhost","root","123")
連線成功時,$link的值為true
7.變數形態轉換 變數=(資料形態)變數or運算式

session_register 問題

當使用此 session_register() 來註冊一個外部變數時
<?php session_register("user","pw");?>

瀏覽器顯示:
Warning: session_register() [function.session-register]: Cannot send session cache limiter - headers already sent (output started at C:\Inetpub\wwwroot\gm

解決方法:
用&_SESSION['user']="XXX" ; 來取代即可

2008年3月17日 星期一

session start() 問題

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Inetpub\........

當初現此警告時,是說 "在SESSION開始前就有資料送出到使用者端"
所以
解決的辦法就是 把session_start()移到最前面 就OK了

多前面呢?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ~~
的前面!!