本文目錄一覽:
如何配置使用CAS的PHP客戶端
整個配置過程我劃分成四步驟:
1、準備CAS的PHP庫和相關庫文件
1)到CAS的網站下載文件phpcas-0.60-rc7.zip
2) 由於其用到了PEAR的DB庫,需要到PEAR網站去下載。
下載文件PEAR-1.7.1.tgz和DB-1.7.13.tgz 也可在google上搜索。
當然不一定是我說的版本,但我給的是我試驗成功的版本。
3) 用於使用到了SSL所以需要下載openssl。當然我是在windows環境下試驗的,下載的是
其的windows版本。
4)安裝openssl。
2、配置PHP環境
1)將phpcas-0.60-rc7.zip解壓,我們選在了PHP環境的include目錄。在其下建立cas將文件解壓進去。
2)同理將PEAR-1.7.1.tgz和DB-1.7.13.tgz解壓,也分別建立pear和db兩個目錄。
3)修改php環境的ini文件,一般是php.ini文件。將我們前兩步驟建立的目錄加入到include_path中。根據安裝環境修改對應的unix或windows項。
4)由於phpcas用到了CURL(用於連接ssl)和DOMXML(用於處理CAS伺服器返回的消息)兩個組件,因此需要保證php解釋環境需要有這兩個擴展。需要做的就是修改ini文件將extentions節下的屏蔽符號去掉,然後就是檢查PHP環境的extentions目錄下是否有對應的.dll或.o文件。一般標準安裝都會有。
3、測試CAS的php客戶端
1)前面做完後,應該比較激動了,很想看看php程序到底能不能訪問CAS呢。
2)在phpcas-0.60-rc7.zip中的docs/examples中有幾個測試程序。當然我們先前解壓的目錄下也有。
3)我們只是看一下通了沒有,因此拷貝example_simple.php文件到apache的htdocs下。具體根據你的web伺服器配置。總之目的就是能通過瀏覽器訪問example_simple.php。在用之前需要修改
example_simple.php文件,主要是要修改裡面關於CAS伺服器配置信息,修改代碼中的phpCAS::client(…)這一句。整個方法意義如下:
phpCAS::client(CAS_VERSION_2_0,’服務地址’,埠號,’cas的訪問地址’);
將自己的服務地址和埠號和cas的相對服務地址的url填如就可以了,例如:phpCAS::client(CAS_VERSION_2_0,’localhost’,8443,’cas’);表示可以通過localhost:8443/cas訪問到CAS服務。
4)在瀏覽器里試驗一下吧,沒有意外的話會看到CAS的登錄界面。這就表示配通了。
4、根據項目需要修改對應的PHP代碼,加入對CAS的調用,將用戶登錄交給CAS我們只需處理對應的用戶,在PHP程序中的許可權問題了。對於舊有就有的PHP代碼只需要用訪問CAS服務換掉驗證用戶身份部分就可以了。
調用CAS關鍵性代碼:
include_once(‘CAS.php’);
//可以不用,用於調試,可以通過服務端的cas.log看到驗證過程。
phpCAS::setDebug();
// 初始化phpcas
p hpCAS::client(CAS_VERSION_2_0,’服務地址’,埠號,’cas的訪問地址’);
例如:phpCAS::client(CAS_VERSION_2_0,’localhost’,8443,’cas’);
// 不使用SSL服務校驗
phpCAS::setNoCasServerValidation();
// 訪問CAS的驗證
phpCAS::forceAuthentication();
這時候就驗證完畢了
獲得用戶名可以通過phpCAS::getUser()
//登出
if (isset($_REQUEST[‘logout’])) {
phpCAS::logout();
}
當然CAS除了它默認的登錄界面和校驗邏輯,還是允許自行定義的。
如何自定義登錄界面,後續在談。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
普及一下知識php如何做桌面客戶端
WinBinder 是一種開源的 PHP 動態擴展(.dll) ,也算是腳本編程語言,為php 在window 下的開發提供用戶界面UI ,它負責調用window 的API 介面。其運行 PHP 程序員輕鬆地使用 PHP 創建 Windows 應用程序。當然,這個只能在 Windows 下運行。本身是一個軟體,php 程序員可以通過這個軟體開發界面。官方網站說得很不錯,無須編譯php. 只要保存文件擴展為.phpw ,然後用 php.exe 打開就可以運行。具體開發感受如何,要試驗一下才知道。初步感覺不會比php-gtk 差。
可以在此處下載到 WinBinder 的包 , 下那個 .zip 包,一般不需要用 .exe 的。下完之後解壓縮,將 winbinder_xxx\PHP\PHP4\ext 目錄下的(如果用的是 PHP5 則複製 PHP5 目錄下的) php_winbinder.dll 複製到 PHP 擴展目錄下,一般在 C:\php\extensions ,然後修改 php.ini 文件,加上:
extension=php_winbinder.dll
然後到打開命令行(cmd ),進入到 winbinder_xxx\Code\Samples 目錄下,運行:
C:phpcliphp.exe manytests_main.phpw
這樣就可以看到 Windows 窗口了,測試用的例子很多,可以都試試。我試了一下中文,還是支持得不錯的,想想也是,WinBinder 是通過擴展的方式,載入到 PHP 中,其調用的都是 Windows 的 APIs 。實際上可以將 WinBinder 分為兩層,一層是底層,叫 API 層,作為 PHP 擴展直接連接 Windows 的 API ,並為第二層(高層,叫 PHP 層)提供統一的調用介面。
你以為php只能做桌面應用?錯移動應用也照樣拿下。PHP for Android讓你用你最熟悉的php開發android軟體。
總之,php的插件工具雖然可以實現開發桌面客戶端,但是並不建議,因為不方便而且開發效率極低。
如何使用PHP操作cookie
PHP setcookie() 函數向客戶端發送一個 HTTP cookie。cookie 是由伺服器發送到瀏覽器的變數。cookie 通常是伺服器嵌入到用戶計算機中的小文本文件。每當計算機通過瀏覽器請求一個頁面,就會發送這個 cookie。cookie 的名稱指定為相同名稱的變數。例如,如果被發送的 cookie 名為 “name”,會自動創建名為 $user 的變數,包含 cookie 的值。
必須在任何其他輸出發送前對 cookie 進行賦值。如果成功,則該函數返回 true,否則返回 false。
setcookie(name, value, expire, path, domain, secure)
name 必需。規定 cookie 的名稱。
value 必需。規定 cookie 的值。
expire 可選。規定 cookie 的有效期。
path 可選。規定 cookie 的伺服器路徑。
domain 可選。規定 cookie 的域名。
secure 可選。規定是否通過安全的 HTTPS 連接來傳輸 cookie。
可以通過 $HTTP_COOKIE_VARS[“user”] 或 $_COOKIE[“user”] 來訪問名為 “user” 的 cookie 的值。在發送 cookie 時,cookie 的值會自動進行 URL 編碼。接收時會進行 URL 解碼。如果不需要這樣,可以使用 setrawcookie() 代替。
程序1:
設置並發送 cookie:
1 ?php
2 $value = “my cookie value”;
3 // 發送一個簡單的 cookie
4 setcookie(“TestCookie”,$value);
5 ?
01 html
02 body
03 …
04 …
05 ?php
06 $value = “my cookie value”;
07 // 發送一個 24 小時候過期的 cookie
08 setcookie(“TestCookie”,$value, time()+3600*24);
09 ?
10 html
11 body
程序2:
檢索 cookie 值的不同方法:
01 html
02 body
03 ?php
04 // 輸出個別的 cookie
05 echo $_COOKIE[“TestCookie”];
06 echo “br /”;
07 echo $HTTP_COOKIE_VARS[“TestCookie”];
08 echo “br /”;
09 // 輸出所有 cookie
10 print_r($_COOKIE);
11 ?
12 /body
13 /html
程序輸出:
1 my cookie value
2 my cookie value
3 Array ([TestCookie] = my cookie value)
程序3:
通過把失效日期設置為過去的日期/時間,刪除一個 cookie:
1 ?php
2 // 把失效日期設置為一小時前
3 setcookie (“TestCookie”, “”, time() – 3600);
4 ?
程序4:
創建一個數組 cookie:
01 ?php
02 setcookie(“cookie[three]”,”cookiethree”);
03 setcookie(“cookie[two]”,”cookietwo”);
04 setcookie(“cookie[one]”,”cookieone”);
05 // 輸出 cookie (在重載頁面後)
06 if (isset($_COOKIE[“cookie”]))
07 {
08 foreach ($_COOKIE[“cookie”] as $name = $value)
09 {
10 echo “$name : $value br /”;
11 }
12 }
13 ?
程序輸出:
1 three : cookiethree
2 two : cookietwo
3 one : cookieone
程序5:
view sourceprint?
1 /**
2 * 01.cookie設置
3 * */
4 function ssetcookie($var, $value, $life=0) {
5 global $_SGLOBAL, $_SC, $_SERVER;
6 setcookie($_SC[‘cookiepre’].$var, $value, $life?($_SGLOBAL[‘timestamp’]+$life):0, $_SC[‘cookiepath’],$_SC[‘cookiedomain’], $_SERVER[‘SERVER_PORT’]==443?1:0);
7 }
PHP中如何使用Cookie
比如設置一個名為 MyCookier的Cookie,PHP會自動從WEB伺服器接收的HTTP頭裡把它分析出來,並形成一個與普通變數一樣的變數,名為$ myCookie,這個變數的值就是Cookie的值。數組同樣適用。另外一個辦法是引用PHP的全局變數$HTTP_COOKIE_VARS數組。分別舉例如下:(假設這些都在以前的頁面里設置過了,並且仍然有效)echo $MyCookie;echo $CookieArray[0];echo $_COOKIE[“MyCookie”];echo $HTTP_COOKIE_VARS[“MyCookie”];要刪除一個已經存在的Cookie,有兩個辦法:1、SetCookie(「Cookie」, 「」);2、SetCookie(「Cookie」, 「value」 , time()-1 / time() );使用Cookie的限制1、必須在HTML文件的內容輸出之前設置;2、不同的瀏覽器對Cookie的處理不一致,且有時會出現錯誤的結果。3、限制是在客戶端的。
想問下你有關php與客戶端如何交互的問題
客戶端指的是桌面軟體或者手機軟體 交互方式為
1、http request http請求形式 遵循http協議 模式為 一問一答,請求一次,php應答一次,特點是,不請求不應答,無請求無法主動應答,有請求必應答。
2、SOCKET,socket是一個雙通道無阻塞的持久鏈接協議,多用於需要實時數據通信的軟體,比如網路遊戲,股票系統等數據通信頻繁。
因為每個http請求都包含冗長的請求header頭,所以如果數據交互頻繁,又使用http協議的話,會導致發送很多無意義的header,所以使用socket,socket只發送一次頭,即可保持長久鏈接。
php對socket支持不理想,如果使用socket建議使用java或者c
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/188787.html