超級全域變數如下表
名稱 | 說明 |
---|---|
$GLOBALS | 以陣列 (array) 方式儲存全域變數,變數 (variable) 名稱為字串 (string) 索引值 |
$_SERVER | 以陣列方式儲存跟伺服器有關的變數,如使用者的 IP 、瀏覽器等 |
$_GET | 以陣列方式儲存利用表單 get 傳送的變數 |
$_POST | 以陣列方式儲存利用表單 post 傳送的變數 |
$_FILES | 以陣列方式儲存利用表單檔案處理方面的變數 |
$_COOKIE | 以陣列方式儲存利用 cookie 的變數 |
$_SESSION | 以陣列方式儲存利用 session 的變數 |
$_REQUEST | 接收 $_GET 、 $_POST 、 $_COOKIE 等變數 |
$_ENV | 以陣列方式儲存環境相關變數 |
我們在 encryptor01.php 用到的 $_SERVER['PHP_SELF'] , 'PHP_SELF' 為目前所在檔案位置與名稱,由於寫在 HTML 語法中,所以要加上 <?php 與 ?> ,然後用 echo 輸出 PHP 字串內容。
$_SERVER['PHP_SELF'] 這個變數表示
http:://localhost/encryptor01.php
$_SERVER 還有很多相關變數,請參考 http://www.php.net/manual/en/reserved.variables.server.php 。
需要留意
<a href="<?php echo $_SERVER['PHP_SELF'].'?op=record'; ?>">Record</a> - <a href="<?php echo $_SERVER['PHP_SELF'].'?op=about'; ?>"About</a>
Record 與 About 都在 $_SERVER['PHP_SELF'] 之後接問號然後加上 op=record 及 op=about ,因此這兩個網址分別代表
http:://localhost/encryptor01.php?op=record
http:://localhost/encryptor01.php?op=about
這會讓 PHP 接收到 $_GET 變數,索引值分別是 "record" 與 "about" 。
這是因為沒有指定 get 或 post 的話,預設都為 get 。
另外看到表單的部份
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
不論點擊選單選項或按下表單中任一按鈕,這都會把使用者輸入的資料重新傳送回 encryptor01.php ,我們的目的是把網站的控制流程都集中在同一個 PHP 檔案,依 $_REQUEST 取得的變數設定程式的動作, $_REQUEST 可以接受 $_GET 、 $_POST 、 $_COOKIE 等三種變數。
表單中的 method 屬性設定為 "post" ,因此按下表單按鈕,表單傳遞的值會是 $_POST 變數
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" name="input" size="67"><br / > <input type="submit" value="New" name="op"> <input type="submit" value="Load" name="op"> <input type="submit" value="Encode" name="op"> <input type="submit" value="Decode" name="op"> <input type="submit" value="Clean" name="op"> </form>
利用 post 傳遞的變數 $_POST ,網址並不會如 $_GET 增加問號後的文字。
屬性 name 就是 $_POST 變數的索引,相對的索引值則是屬性 value 的內容。這是說 New 、 Load 、Encode 、 Decode 、 Clean 等五個按鈕的索引都是 op ,因此可用 $_REQUEST["op"] 判斷要處理哪一項工作,連同 Record 與 About 共有七種不同的流程,至於 input 的值則可用 $_POST["input"] 存取。
嗯,好多 $_GET 、 $_POST 及 $_REQUEST ,有沒又弄懂什麼時後用 $_GET ,什麼時後用 $_POST ,什麼時候又要用 $_REQUEST 呢?我們接下來直接以實例來說明網站流程控制吧!
中英文術語對照 | |
---|---|
超級全域變數 | superglobals |
陣列 | array |
變數 | variable |
字串 | string |
您可以繼續參考
網站篇
相關目錄
回 PHP 入門指南
回 PHP 教材
回首頁
參考資料
http://php.net/manual/en/language.variables.superglobals.php
http://www.php.net/manual/en/reserved.variables.globals.php
http://www.php.net/manual/en/reserved.variables.server.php
http://www.php.net/manual/en/reserved.variables.get.php
http://www.php.net/manual/en/reserved.variables.post.php
http://www.php.net/manual/en/reserved.variables.files.php
http://www.php.net/manual/en/reserved.variables.request.php
http://www.php.net/manual/en/reserved.variables.session.php
http://www.php.net/manual/en/reserved.variables.environment.php
http://www.php.net/manual/en/reserved.variables.cookies.php
2 則留言:
,然後用 echi 輸出 PHP 字串內容。
這一句是寫錯嗎?
ecgi是什麼?
這邊打錯字了,是 echo 才對,已修改,感謝指正 ^_^
張貼留言