国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

PHP基礎之變量5——來自PHP之外的變量

瀏覽:2日期:2022-09-14 13:55:42
HTML 表單(GET 和 POST)

當一個表單提交給 PHP 腳本時,表單中的信息會自動在腳本中可用。有很多方法訪問此信息,例如:

Example #1 一個簡單的 HTML 表單

<form action='foo.php' method='POST'>Name: ?<input type='text' name='username'><br />Email: <input type='text' name='email'><br /><input type='submit' name='submit' value='Submit me!' /></form>

根據特定的設置和個人的喜好,有很多種方法訪問 HTML 表單中的數據。例如:

Example #2 從一個簡單的 POST HTML 表單訪問數據

<?php// 自 PHP 4.1.0 起可用echo $_POST[’username’];echo $_REQUEST[’username’];

import_request_variables(’p’, ’p_’);echo $p_username;

// 自 PHP 5.0.0 起,這些長格式的預定義變量可用 register_long_arrays 指令關閉。

echo $HTTP_POST_VARS[’username’];

// 如果 PHP 指令 register_globals = on 時可用。不過自PHP 4.2.0 起默認值為 register_globals = off。// 不提倡使用/依賴此種方法。

echo $username;?>

使用 GET 表單也類似,只不過要用適當的 GET 預定義變量。GET 也適用于 QUERY_STRING(URL 中在“?”之后的信息)。因此,舉例說,http://www.example.com/test.php?id=3 包含有可用 $_GET[’id’] 來訪問的 GET 數據。參見 $_REQUEST 和 import_request_variables()。

Note:

超全局數組例如 $_POST 和 $_GET,自 PHP 4.1.0 起可用。

Note:

變量名中的點和空格被轉換成下劃線。例如 <input name='a.b' /> 變成了 $_REQUEST['a_b']。

如上所示,在 PHP 4.2.0 之前 register_globals 的默認值是 on。PHP 社區鼓勵大家不要依賴此指令,建議在編碼時假定其為 off。

Note:

magic_quotes_gpc 配置指令影響到 Get,Post 和 Cookie 的值。如果打開,值 (It’s 'PHP!') 會自動轉換成 (It’s 'PHP!')。十多年前對數據庫的插入需要如此轉義,如今已經過時了,應該關閉。

PHP 也懂得表單變量上下文中的數組。例如可以將相關的變量編成組,或者用此特性從多選輸入框中取得值。例如,將一個表單 POST 給自己并在提交時顯示數據:

Example #3 更復雜的表單變量

<?php

if (isset($_POST[’action’]) && $_POST[’action’] == ’submitted’) {

???echo ’<pre>’;

???print_r($_POST);

???echo ’<a href='http://www.cgvv.com.cn/bcjs/’. $_SERVER[’PHP_SELF’] .’'>Please try again</a>’;

???echo ’</pre>’;

} else {

?>

<form action='<?php echo $_SERVER[’PHP_SELF’]; ?>' method='post'>

???Name: ?<input type='text' name='personal[name]'><br />

???Email: <input type='text' name='personal[email]'><br />

???Beer: <br>

???<select multiple name='beer[]'>

???????<option value='warthog'>Warthog</option>

???????<option value='guinness'>Guinness</option>

???????<option value='stuttgarter'>Stuttgarter Schwabenbr</option>

???</select><br />

???<input type='hidden' name='action' value='submitted' />

???<input type='submit' name='submit' value='submit me!' />

</form>

<?php

}

?>

IMAGE SUBMIT 變量名

當提交表單時,可以用一幅圖像代替標準的提交按鈕,用類似這樣的標記:

<input type='image' src='http://www.cgvv.com.cn/bcjs/image.gif' name='sub' />

當用戶點擊到圖像中的某處時,相應的表單會被傳送到服務器,并加上兩個變量 sub_x 和 sub_y。它們包含了用戶點擊圖像的坐標。有經驗的用戶可能會注意到被瀏覽器發送的實際變量名包含的是一個點而不是下劃線(即 sub.x 和 sub.y),但 PHP 自動將點轉換成了下劃線。

HTTP Cookies

PHP 透明地支持 ? RFC 6265定義中的 HTTP cookies。Cookies 是一種在遠端瀏覽器端存儲數據并能追蹤或識別再次訪問的用戶的機制。可以用 setcookie() 函數設定 cookies。Cookies 是 HTTP 信息頭中的一部分,因此 SetCookie 函數必須在向瀏覽器發送任何輸出之前調用。對于 header() 函數也有同樣的限制。Cookie 數據會在相應的 cookie 數據數組中可用,例如$_COOKIE,$HTTP_COOKIE_VARS 和 $_REQUEST。

如果要將多個值賦給一個 cookie 變量,必須將其賦成數組。例如:

<?php

?setcookie('MyCookie[foo]', ’Testing 1’, time()+3600);

?setcookie('MyCookie[bar]', ’Testing 2’, time()+3600);

?>

這將會建立兩個單獨的 cookie,盡管 MyCookie 在腳本中是一個單一的數組。如果想在僅僅一個 cookie 中設定多個值,考慮先在值上使用 serialize() 或 explode()。

注意在瀏覽器中一個 cookie 會替換掉上一個同名的 cookie,除非路徑或者域不同。因此對于購物車程序可以保留一個計數器并一起傳遞,例如:

Example #4 一個 setcookie() 的示例

<?php

if (isset($_COOKIE[’count’])) {

???$count = $_COOKIE[’count’] + 1;

} else {

???$count = 1;

}

setcookie(’count’, $count, time()+3600);

setcookie('Cart[$count]', $item, time()+3600);

?>

變量名中的點

通常,PHP 不會改變傳遞給腳本中的變量名。然而應該注意到點(句號)不是 PHP 變量名中的合法字符。至于原因,看看:

<?php

$varname.ext; ?/* 非法變量名 */

?>

這時,解析器看到是一個名為 $varname 的變量,后面跟著一個字符串連接運算符,后面跟著一個裸字符串(即沒有加引號的字符串,且不匹配任何已知的健名或保留字)’ext’。很明顯這不是想要的結果。

出于此原因,要注意 PHP 將會自動將變量名中的點替換成下劃線。

確定變量類型

因為 PHP 會判斷變量類型并在需要時進行轉換(通常情況下),因此在某一時刻給定的變量是何種類型并不明顯。PHP 包括幾個函數可以判斷變量的類型,例如: gettype(), is_array(),is_float(), is_int(), is_object() 和 is_string()。

標簽: PHP
相關文章:
主站蜘蛛池模板: 日本精品久久久久久久久免费 | 在线精品视频在线观看高清 | 欧美一级视屏 | 色偷偷亚洲男人天堂 | 一本色道久久综合狠狠躁 | 欧美一级毛片在线看视频 | 久久99这里只有精品国产 | 色综合天天综合网看在线影院 | 久久精品国产福利 | 国产成人经典三级在线观看 | 久草视频福利 | 国产精品二区在线 | 久久se精品一区二区国产 | 久久久国产精品视频 | 亚洲综合第一欧美日韩中文 | 性生活视频网 | 亚洲视频在线观看免费视频 | 最近中文字幕精彩视频 | 日韩一级片在线播放 | 美女把张开腿男生猛戳免费视频 | 欧美成年黄网站色高清视频 | 国产4tube在线播放 | 国产中文字幕在线观看 | 男人一进一出桶女人视频 | 国产又色又爽黄的网站免费 | 成人交性视频免费看 | 一级成人a免费视频 | 国产美女精品视频 | 日本三级全黄三级a | 国产99视频精品一区 | 欧美成人交tv免费观看 | 在线观看精品国产 | 在线观看久草视频 | 国产成 人 综合 亚洲绿色 | 自拍 欧美 在线 综合 另类 | 欧美一区二区在线观看视频 | 五月色一区二区亚洲小说 | 在线观看久草 | 国产精选在线视频 | 波多野结衣在线观看一区二区三区 | 日韩精品午夜视频一区二区三区 |