當前位置:首頁 » 編程語言 » php請求來源

php請求來源

發布時間: 2024-09-08 04:04:03

『壹』 php 的API介面

使用PHP寫api介面是經常做的,PHP寫好介面後,前台就可以通過鏈接獲取介面提供的數據,而返回的數據一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的來源是什麼,有可能是別人非法調用我們的介面,獲取數據,因此就要使用安全驗證

原理

從圖中可以看得很清楚,前台想要調用介面,需要使用幾個參數生成簽名。

時間戳:當前時間

隨機數:隨機生成的隨機數

口令:前後台開發時,一個雙方都知道的標識,相當於暗號

演算法規則:商定好的運算規則,上面三個參數可以利用演算法規則生成一個簽名。前台生成一個簽名,當需要訪問介面的時候,把時間戳,隨機數,簽名通過URL傳遞到後台。後台拿到時間戳,隨機數後,通過一樣的演算法規則計算出簽名,然後和傳遞過來的簽名進行對比,一樣的話,返回數據。

演算法規則

在前後台交互中,演算法規則是非常重要的,前後台都要通過演算法規則計算出簽名,至於規則怎麼制定,看你怎麼高興怎麼來。

我這個演算法規則是

  • 時間戳,隨機數,口令按照首字母大小寫順序排序

  • 然後拼接成字元串

  • 進行sha1加密

  • 再進行MD5加密

  • 轉換成大寫。

    『貳』 php 如何獲取 客戶端http header

    <?php
    $dir=$HTTP_GET_VARS["dir"];//.......取得上個頁面傳遞來的路徑
    $file=$HTTP_GET_VARS["file"];//.......取得傳遞來的文件名
    $url=parse_url($HTTP_REFERER);/*......取得前一頁面的URL地址,並將其放入一個數組中*/
    if($url[host]!=$HTTP_HOST){echo"要下載本軟體請到<ahref=http://www.df365.org>東方小屋</a>";exit;}/*檢查來源網站是不是自己的網站,如果不是,返回「要下載本……」*/
    if(empty($dir))$dir="/";//......如果路徑名為空,則為指定根目錄
    if(empty($file)){echo"未指定要下載的文件!";exit;}/*如果文件名為空,返回「未指定……」*/
    $rootdir="文件存放的根目錄";//......你的下載路徑根目錄
    $realurl=$rootdir.$dir;//.......取得你的下載目錄
    chdir($realurl);//......將當前目錄轉到下載目錄中
    if(!file_exists($file)){echo"對不起,此鏈接已經失效,請在下載頁面上向我們報告,謝謝!";exit;}//......測試文件是否存在
    $filename=$file;
    //發送文件頭信息
    header("Cache-control:private");//fixforIE
    header("Content-Type:application/octet-stream");
    header("Content-Length:".filesize($filename));
    header("Content-Disposition:attachment;filename=$filename");
    $fp=fopen($filename,'r');//以讀取方式打開指定文件
    fpassthru($fp);//**CORRECT**以二進制方式讀取文件
    fclose($fp);//關閉文件
    ?>

    『叄』 ThinkPHP中判斷是手機端還是電腦端訪問的方法

    一般是通過訪問的時候請求來源的header頭文件信息來進行判斷的,譬如Android的手機訪問的話一般都會在hedear頭信息裡面帶上Android這樣的信息,同理Iphone、windows phone都會帶。

    『肆』 PHP寫一個api介面,為什麼需要生成一個token值

    1. token的作用在於過濾請求來源,提高安全性.其他人拿不到token的產生規則,就無法訪問介面.

    2. 校驗參數

    『伍』 怎樣打開PHP文件

    PHP是編程語言和應用程序伺服器的結合。PHP和其它的編程語言類似,使用變數存儲臨時數值,使用操作符處理變數。PHP的真正價值在於它是一個應用程序伺服器。

    當談到應用程序伺服器的時候,我是指一個把幾個不同的技術組合為一個完整的套件的程序。這些技術包括:
    * 一個強壯的編程語言。
    * 存取資料庫中存儲的數據。
    * 支持 Internet協議,尤其是電子郵件和HTTP協議。

    注意:應用程序伺服器有許多其它的特性,這里只列出了最基本的特性。

    由於提供了這些多種不同技術的前端介面,PHP可以使工作變的很容易。
    本章的其它部分講述了有關PHP的許多繁雜資料,以及它在應用軟體開發中起到的作用。

    1.1 起源
    PHP是由Rasums Lerdorf創建的,它開始是一個簡單的用Perl語言編寫的程序,用來記錄Rasums Lerdorf自己在線簡歷的訪問者。以後它又被用C語言重新寫過,范圍擴大到訪問資料庫。在這期間,有許多人向Rasums Lerdorf要此程序的拷貝,以便自己使用。Rasums Lerdorf為此寫了一些介紹此程序的文檔,並發布PHP v1.0。以後,越來越多的人開始使用PHP,並強烈要求增加一些其他的特性,如循環語句和數組變數等。到這時,其他的一些程序員也開始參與PHP源碼的編寫(主要有Zeev Suraki和Andi Gutmans),很明顯,此時的PHP為了以後的發展,必須重新編寫。因此,PHP v3.0就出現了。
    1.2 特性
    PHP的特性包括:
    * 開放源碼 -- 所有的PHP源碼都可以得到。事實上,所有的源碼都包含在隨書附帶的光碟中。
    * 沒有運行費用 -- PHP是免費的。
    * 基於伺服器端 -- 由於PHP是在Web伺服器端運行的,PHP程序可以很大、很復雜而不會降低客戶端的運行速度。
    * 跨平台 -- 雖然本書是以Linux為重點介紹的,但PHP程序可以運行在UNIX,Linux,或者Windows操作系統下。
    * 嵌入HTML -- 因為PHP語言可以嵌入到HTML內部,所以PHP很容易學習。
    * 簡單的語言 -- 和java和C++不同,PHP語言堅持以基本語言為基礎,然而它的功能也強大到足以支持任何類型的Web站點。
    * 效率高 -- 和其它的解釋性語言相比,PHP系統消耗較少的系統資源。當PHP作為Apache Web伺服器的一部分時,運行代碼不需要調外部二進製程序,伺服器解釋腳本不需要承擔任何額外負擔。
    * 分析XML -- 用戶可以組建一個可以讀取XML信息的PHP版本。
    * 資料庫模塊 -- 用戶可以使用PHP存取Oracle、Sybase、MS sql、Adabase D、MySQL、mSQL、PostgreSQL、dBase、FilePro、Unix dbm、Informix/Illustra等類型的資料庫,以及任何支持ODBC標準的資料庫。
    * 文件存取--PHP有許多支持文件存取函數。
    * 文本處理--PHP有許多函數處理字元串,其中包括模式匹配的能力。
    * 復雜的變數--PHP支持標量、數組、關聯數組等變數,這給用戶提供了以支持其它的高級數據結構的堅實基礎。
    * 圖象處理--用戶可以使用PHP動態的創建圖象。
    * 更多的其它功能!

    1.3 PHP需要花費多少錢?
    PHP是免費的。所有的源碼、文檔都可以免費的復制、編譯、列印和分發。用戶的任何一個用PHP編寫的程序都屬於用戶自己,可以按照自己的意願進行處理,而不需要付任何版稅。就PHP本身而言,用戶可以無限制地發布自己編寫的程序。
    然而,有著很充分的理由,PHP並不是徹底的「公共領域」代碼。如果PHP源碼是完全的公共領域代碼,很可能就有人對PHP的源碼做很小的修改,然後編譯並出售--換一句話說,從它的創作者中脫離出來。但從另一方面說,如果不公布源碼,很難使想使用它的用戶感到放心。
    GNU通用公共許可是一種發布免費軟體的方法,它可以避免其他人佔有你的勞動成果。在符合GNU許可的條件下,源碼可以自由地發布,並且任何一個人都可以使用,但是任何來源於此代碼的程序必須以同樣種類的許可方式發布。換句話說,如果用戶從任何GNU許可下的源碼中得到代碼而編寫自己的程序,用戶必須給任何想得到源碼的人共布自己的源碼。
    1.4 PHP語言可以嵌入HTML中
    當使用者使用經典程序設計語言(如C或Pascal)編程時,所有的代碼必須編譯成一個可執行的文件,然後該可執行文件在運行時,為遠程的Web瀏覽器而產生可顯示的HTML標記。但另一方面,PHP並不需要編譯(至少不編譯成可執行文件)。使用者可以把自己的代碼混合到HTML中。例如,下面的代碼將顯示「Hello,world!」,PHP代碼在下面以黑體字顯示。

    <HTML>
    <HEAD><TITLE>Test</TITLE></HEAD>
    <BODY>
    <?PHP $string = 'world!'; ?>
    <H1>Hello,<?php echo $string ?></H1>
    </BODY>
    </HTML>

    PHP應用程序伺服器(本書的主要寫作目的)是緊密集成到Apache Web伺服器中的,可以在一個程序內同時調用它們兩個。當Web瀏覽器請求PHP Web頁面的時候,Web伺服器的PHP部分將被調用進行解釋。Web伺服器在請求的Web頁中尋找<?PHP . . . ?>標記,並按要求執行這些PHP代碼。
    由PHP代碼生成的輸出將替代<?PHP . . . ?>標記。例如,當PHP代碼運行後,以前的Web頁面將變成如下所示的內容:

    <HTML>
    <HEAD><TITLE>Test</TITLE></HEAD>
    <BODY>
    <H1>Hello,world!</H1>
    </BODY>
    </HTML>

    注意,所有的PHP代碼都消失了,僅僅留下了HTML語句。而由PHP代碼生成的HTML語句在上例中以黑體的形式顯示。

    1.5 PHP語言是在Web伺服器端運行
    當開發互聯網應用程序時,很重要的一點是要清楚應用程序是在哪一端運行的。PHP總是運行在伺服器端。不要嘲笑對這一點的強調。在以後考慮對應用程序某些特性進行規劃時,有的人可能就會在應用程序在哪裡運行的這個問題上搞錯,不要讓自己也成為這些人中的一個。
    由於Java applets,ActiveX,或javascript 都是運行在客戶端的Web瀏覽器中的,因此PHP不能直接和它們進行比較。然而可以很容易的將這些語言與PHP相結合在一起,使用PHP可以很方便地生成所需要的任何HTML代碼,當然也就能激活Java applets和ActiveX控制項,還可以動態生成javascript語句。當對互聯網應用程序開發還很陌生的時候,這也許沒有什麼意義,但是在讀完這本書後,這一切就會變得十分清晰的了。
    1.6 PHP無處不在
    無處不在是常使用的充滿激情的詞語,到1999年7月,將有60萬左右的Web站點使用PHP,1999年夏天有關Linux和開放代碼運動的大發展很可能使PHP團體有突破性發展。可以在http://www.php.net/usage.php3站點上看到它的發展趨勢圖表。
    此外,PHP郵件列表每天能收到大約80個電子郵件,每個月能收到大約2500個電子郵件,這說明PHP是一個非常活躍的開發團體。使用PHP的商業公司有以下幾個,Mitsubishi Motors、Volvo、Red Hat Software、E*Trade、First USA Bank、the San Francisco Giants和San Diego Zoo等等。
    1.7 PHP和C或Java相似嗎?
    PHP程序和C程序有略微相似的地方,這是由於PHP來源於C、Perl和Java。一些對C語言來講比較麻煩的方面(如處理字元串的技術),由於採用了和Perl相近的技術,在PHP中就不再是麻煩了。PHP中也不包括Java中的一些面向對象特性。
    PHP能很好地處理某些低級的任務,如果代碼需要運行的特別快,可以很方便的使用C為PHP程序編寫模塊。
    1.8 PHP比ColdFusion、Active Server Page或Java Server Page更好嗎?
    以流行的商議方式,我總是回答,「可以是,也可以不是」。
    回答是,是由於它的費用(免費)以及可以通過郵件列表、IRC而在世界范圍內有廣泛的支持網路。同時PHP還在不斷地發展著,如果想要一個PHP現在沒有的特性時,請等待幾個月,就有人很快為PHP編程而加上此種特性。
    回答不是,是由於商業軟體有比PHP更多的特性。例如,Allaire's ColdFusion有一個已證實可靠的搜索引擎組件。微軟的Active Server Page技術提供了與Outlook、電子郵件和工作組程序相結合的能力。Java Server Page讓使用者可以使用互聯網上的大量開放源碼模塊。
    1.9 總結
    對於遍及互聯網上的PHP,本章僅僅簡要提到了它的一些特性,本章也介紹了當設計互聯網應用程序時,PHP為什麼是最好的編程工具之一的原因。

    php文件一樣可以用BT軟體打開的,放心使用,沒問題的。我以前也下過好多PHP的種子文件。
    你是要讓你的裝了IIS的機器支持PHP呢還是只是單純的打開*.php的文件?

    如果是要支持PHP,那麼你要裝專門的PHP解釋器。

    首先你去下載php-4.3.4-Win32.zip。

    下面為配置步驟:

    1)將php-4.3.3RC4-Win32.zip裡面的所有文件和文件夾壓縮並放置在C:\\php4\\文件夾中,沒有自己創建該文件夾

    2)進入php4文件夾,查看根目錄和子目錄,把所有.dll文件都統統復制粘貼到C:\\WINNT\\system32(WIN2K)或C:\\WINDOWS\\system32(WINXP)中

    3)把php4文件夾裡面的php.ini-dist和php.exe文件復制到

    C:\\WINNT\\(WIN2K)或C:\\WINDOWS\\(WINXP)中,並將php.ini-dist文件改為php.ini

    4)雙擊php.ini打開該配置文件,進行下面3個地方的修改:

    1> 把extension_dir = "C:\\php4\\extensions" 改為你安裝php4的 extensions文件夾路徑

    2> 把 ;cgi.force_redirect = 1 改為 cgi.force_redirect = 0

    3> 把 register_globals = Off 改為 register_globals = On

    4> 找到 ;Windows Extensions 段,你應該可以看到如下代碼

    ;

    ;extension=php_bz2.dll

    ;extension=php_cpdf.dll

    ;extension=php_crack.dll

    ;extension=php_curl.dll

    ;extension=php_db.dll

    ;extension=php_dba.dll

    ;extension=php_dbase.dll

    ;extension=php_dbx.dll

    ;extension=php_domxml.dll

    ;extension=php_exif.dll

    ;extension=php_fdf.dll

    ;extension=php_filepro.dll

    ;extension=php_gd2.dll

    ;extension=php_gettext.dll

    ;extension=php_hyperwave.dll

    ;extension=php_iconv.dll

    ;extension=php_ifx.dll

    ;extension=php_iisfunc.dll

    ;extension=php_imap.dll

    ;extension=php_interbase.dll

    ;extension=php_java.dll

    ;extension=php_ldap.dll

    ;extension=php_mbstring.dll

    ;extension=php_mcrypt.dll

    ;extension=php_mhash.dll

    ;extension=php_mime_magic.dll

    ;extension=php_ming.dll

    ;extension=php_mssql.dll

    ;extension=php_msql.dll

    ;extension=php_oci8.dll

    ;extension=php_openssl.dll

    ;extension=php_oracle.dll

    ;extension=php_pdf.dll

    ;extension=php_pgsql.dll

    ;extension=php_printer.dll

    ;extension=php_shmop.dll

    ;extension=php_snmp.dll

    ;extension=php_sockets.dll

    ;extension=php_sybase_ct.dll

    ;extension=php_w32api.dll

    ;extension=php_xmlrpc.dll

    ;extension=php_xslt.dll

    ;extension=php_yaz.dll

    ;extension=php_zip.dll

    具體還得看你需要載入哪些.dll文件,不過你按照下面我這樣改也行,主要是要載入的.dll文件就去掉前面的分號( ; ) :

    ;

    ;extension=php_bz2.dll

    ;extension=php_cpdf.dll

    ;extension=php_crack.dll

    ;extension=php_curl.dll

    ;extension=php_db.dll

    ;extension=php_dba.dll

    ;extension=php_dbase.dll

    ;extension=php_dbx.dll

    ;extension=php_domxml.dll

    extension=php_exif.dll

    ;extension=php_fdf.dll

    ;extension=php_filepro.dll

    extension=php_gd2.dll

    ;extension=php_gettext.dll

    ;extension=php_hyperwave.dll

    ;extension=php_iconv.dll

    ;extension=php_ifx.dll

    ;extension=php_iisfunc.dll

    extension=php_imap.dll

    ;extension=php_interbase.dll

    ;extension=php_java.dll

    ;extension=php_ldap.dll

    ;extension=php_mbstring.dll

    ;extension=php_mcrypt.dll

    ;extension=php_mhash.dll

    ;extension=php_mime_magic.dll

    ;extension=php_ming.dll

    ;extension=php_mssql.dll

    ;extension=php_msql.dll

    ;extension=php_oci8.dll

    ;extension=php_openssl.dll

    ;extension=php_oracle.dll

    ;extension=php_pdf.dll

    ;extension=php_pgsql.dll

    ;extension=php_printer.dll

    ;extension=php_shmop.dll

    ;extension=php_snmp.dll

    ;extension=php_sockets.dll

    ;extension=php_sybase_ct.dll

    ;extension=php_w32api.dll

    ;extension=php_xmlrpc.dll

    ;extension=php_xslt.dll

    ;extension=php_yaz.dll

    ;extension=php_zip.dll

    5)再次打開控制面板-管理工具-Internet服務管理器,在"默認web站點"上右鍵單擊,選擇"屬性"

    6)選中"默認 Web 站點 屬性"窗口的"主目錄"選項卡,點擊右下角的"配置"按鈕,出現"應用程序配置"窗口,點擊"應用程序映射"下面的"添加"按鈕,添加下面的程序映射:

    可執行文件: C:\\php4\\php.exe %s %s (也就是你的php4文件夾路徑)

    擴展名: .php

    確定完成配置!

    7)切換到"默認 Web 站點 屬性"窗口的"ISAPI篩選器"選項卡,點擊右邊的"添加"按鈕,添加下面的一個篩選器:

    篩選器名稱: PHP

    可執行文件: C:\\php4\\sapi\\php4isapi.dll (也就是你的php4文件夾的 sapi文件夾路徑)

    確定後關閉"Internet服務管理器"

    8)繼續切換到"默認 Web 站點 屬性"窗口的"文檔"選項卡,點擊右邊的"添加"按鈕,添加如下"啟用默認文檔":

    index.php 也可以添加 index.php3 index.php4 等等 看你的需要而定

    點擊左邊的"↑"按鈕,把index.php文檔提升到最上面

    現在你的IIS也支持PHP了.
    PHP 是一種新型的 CGI 程序編寫語言.應該說是個嵌入式腳本文件。和ASP、JSP有很多類似的功能。唯一不同的是,ASP要整站的解釋在傳遞,而PHP則可以嵌入HTML代碼里,和HTML一起發送。要讀.PHP文件就要用PHP解釋器。現在用的是PHP V4.3.0有支持Windows和 Unix/Linux的版本。當然你還要在自己機子上虛擬主機,可以用很出名的Apache軟體。

    .php可以用文本編輯器(如記事本、emeditor、phpedit等)打開。如果要運行它得安裝相應的php解釋器和web服務支持才行。

    參考資料:http://..com/question/3222075.html

    『陸』 請問下 php 怎麼獲取 ajax 請求 來源頁面的 完整 url 地址啊

    $_SERVER['HTTP_REFERER'] //這個參數可以完全獲取,頁面來源

    不過,需要注意,錨鏈接是不能獲取的,
    比如:xx.php?name=123#1234
    獲取的地址是 xx.php?name=123
    因為錨鏈接是前台的東西,是不會發送到後台去的

    『柒』 php如何獲取網址中的參數

    比如有一個網址為

    http://域名/goods.php?u=59&id=24#pinglun

    我想得到這個id值

    可以用正則,也可以用php函數解析到數組中

    用正則可以這樣

    preg_match('/id=(d+)/',$_SERVER["REQUEST_URI"],$m);//$_SERVER 這個表示當前網址url

    print_r($m[1]);exit;

    或者用parse_url()及parse_str()函數

    $cur_q=parse_url($_SERVER["REQUEST_URI"],PHP_URL_QUERY);

    parse_str($cur_q,$myArray);

    print_r($myArray["id"]);exit;

    拓展資料

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

    PHP的特性包括:

    1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。

    2. PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,

    PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;

    PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。

    3. PHP支持幾乎所有流行的資料庫以及操作系統。

    4. 最重要的是PHP可以用C、C++進行程序的擴展!

    參考資料:網路 PHP

    『捌』 如何判斷HTTP請求來源的正確性

    在jquery框架中,對於通過它的$.ajax, $.get, or $.post方法請求網頁內容時,它會向伺服器傳遞一個HTTP_X_REQUESTED_WITH的參數,你可以利用如下方法判斷某個請 求是ajax請求還是普通請求 if ( isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) { //ajax request } else { // not ajax request } 在使用原生 JavaScript 發出 ajax 請求時,我們也可以給頭部添加信息,以方便後端同學進行區分,方法如下: 1 var xmlhttp=new XMLHttpRequest(); 2 xmlhttp.open("GET","test.php",true); 3 xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); 4 xmlhttp.send();

    熱點內容
    xpsql2000 發布:2024-11-25 05:20:20 瀏覽:371
    如何設置安卓上拉菜單 發布:2024-11-25 05:20:12 瀏覽:4
    為什麼安卓手機做不出透明相框 發布:2024-11-25 05:13:52 瀏覽:491
    間接結演算法 發布:2024-11-25 05:12:08 瀏覽:759
    java咖啡機 發布:2024-11-25 05:12:05 瀏覽:489
    小白主機怎麼配置 發布:2024-11-25 05:10:33 瀏覽:144
    automator腳本 發布:2024-11-25 04:41:18 瀏覽:310
    敲背面截圖怎麼弄安卓 發布:2024-11-25 04:39:18 瀏覽:809
    安卓機關機如何設置快捷方式 發布:2024-11-25 04:16:02 瀏覽:636
    安卓綠聯和倍思哪個品牌好 發布:2024-11-25 03:54:45 瀏覽:890