PHP與Web頁(yè)面的交互示例詳解二
前言
在《PHP學(xué)習(xí)筆記-PHP與Web頁(yè)面的交互1》筆記中講解了form表單的一些屬性,包括它的輸入域標(biāo)記、選擇域標(biāo)記和文字域標(biāo)記的寫(xiě)法,接下來(lái)的內(nèi)容就是講如何獲取表單數(shù)據(jù)以及PHP數(shù)據(jù)的傳遞,包括對(duì)各種控件值的獲取。
插入表單
提交表單之前一定得有表單,當(dāng)我們的表單創(chuàng)建完畢后可以將表單插入Web頁(yè)中,代碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>在普通的Web頁(yè)中插入表單</title> <style type="text/css"> body,td,th { font-size: 12px; } </style> </head> <body> <form action="demo_1.php" method="post" name="form1" enctype="multipart/form-data"> <table width="405" height="24" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#999999"> <tr bgcolor="#FFCC33"> <td width="103" height="25" align="right">商品名稱(chēng):</td> <td height="25" align="left"><input name="product" type="text" id="user" size="20" maxlength="100"></td> </tr> <tr bgcolor="#FFCC33"> <td height="25" align="right">市場(chǎng):</td> <td height="25" colspan="2" align="left"><input name="from" type="radio" value="海外" checked> 海外 <input type="radio" name="from" value="國(guó)內(nèi)"> 國(guó)內(nèi)</td> </tr> <tr bgcolor="#FFCC33"> <td width="103" height="25" align="right">編號(hào):</td> <td width="289" height="25" colspan="2" align="left"><input name="code" type="text" id="code" size="20" maxlength="100"></td> </tr> <tr bgcolor="#FFCC33"> <td height="25" align="right">種類(lèi):</td> <td height="25" colspan="2" align="left"><select name="select"> <option value="電器">電器</option> <option value="家具">家具</option> <option value="化妝品">化妝品</option> <option value="圖書(shū)" selected>圖書(shū)</option> <option value="服飾">服飾</option> <option value="寵物">寵物</option> <option value="計(jì)算機(jī)">計(jì)算機(jī)</option> </select></td> </tr> <tr bgcolor="#FFCC33"> <td height="25" align="right">商品圖片: </td> <td height="25" colspan="2" align="left"><input name="photo" type="file" size="20" maxlength="1000" id="photo"></td> </tr> <tr bgcolor="#FFCC33"> <td height="25" align="right">商品描述: </td> <td height="25" colspan="2" align="left"><textarea name="intro" cols="28" rows="3" id="info"></textarea></td> </tr> <tr align="center" bgcolor="#FFCC33"> <td height="25" colspan="3"><input type="submit" name="submit" value="提交"> <input type="reset" name="submit2" value="重置"></td> </tr> </table> </form> <?php header("Content-Type:text/html; charset=gb2312"); ?>> </body> </html>
在HTML的<body>和</body>間添加一個(gè)表單。
運(yùn)行結(jié)果:
獲取表單數(shù)據(jù)
表單數(shù)據(jù)的獲取主要有兩個(gè)鐘方式分別是POST()方法和GET()方法。
通過(guò)<form>表單的method屬性所指定。
使用POST方法提交表單
應(yīng)用POST方法時(shí),只需將<form>表單中的屬性method設(shè)置成POST即可。POST方法不依賴于URL,不會(huì)顯示在地址欄。POST方法可以沒(méi)有限制地傳遞數(shù)據(jù)到服務(wù)器,所有提交的信息在后臺(tái)傳輸,用戶在瀏覽器端是看不到這一過(guò)程的,安全性高。所以POST方法比較適合用于發(fā)送一個(gè)保密的(如信用卡號(hào))或者容量較大的數(shù)據(jù)到服務(wù)器。
示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>PHP語(yǔ)言基礎(chǔ)</title> </head> <body> <form action="index.php" method="post" name="form1" enctype="multipart/form-data"> <table width="300" border="1" cellpadding="10" cellspacing="0"> <tr> <td height="30">編號(hào): <input type="text" name="code" size="20"/> <input type="submit" name="subimt" value="提交"/> </td> </tr> </table> </form> <?php header("Content-Type:text/html; charset=gb2312"); ?> </body> </html>
運(yùn)行結(jié)果:
點(diǎn)擊提交按鈕后,我們發(fā)現(xiàn)地址欄不會(huì)顯示我們提交的參數(shù)。
使用GET方法提交表單
GET方法是<form>表單中method屬性的默認(rèn)方法。使用GET方法提交的表單數(shù)據(jù)被附加到URL后,并作為URL的一部分發(fā)送到服務(wù)器端。在程序的開(kāi)發(fā)過(guò)程中,由于GET方法提交的數(shù)據(jù)是附加到URL上發(fā)送的,因此,在URL的地址欄中將會(huì)顯示“URL+用戶傳遞的參數(shù)”。
將上面示例中的<form>表單中method屬性指定為get,運(yùn)行程序后的結(jié)果如下:
點(diǎn)擊按鈕后地址欄會(huì)通過(guò)‘?'連接鍵值對(duì),鍵值對(duì)以‘&'分隔。
PHP參數(shù)傳遞的常用方法
獲取表單數(shù)據(jù),實(shí)際上就是獲取不同的表單元素的數(shù)據(jù)。<form>標(biāo)簽中的name是所有表單元素都具備的屬性,即為這個(gè)表單元素的名稱(chēng),在使用時(shí)需要使用name屬性來(lái)獲取相應(yīng)的value屬性值。
PHP參數(shù)傳遞的常用方法有三種:
- $_POST[]全局變量
- $_GET[]全局變量
- $_SESSION[]變量
$_POST[]全局變量
使用PHP的$_POST[]預(yù)定義變量可以獲取表單元素的值,格式為:
$_POST[name]
范例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>PHP語(yǔ)言基礎(chǔ)</title> </head> <body> <form action="index.php" method="post" name="form1" enctype="multipart/form-data"> <table width="300" border="1" cellpadding="10" cellspacing="0"> <tr> <td height="30">編號(hào): <input type="text" name="code" size="20"/> <input type="submit" name="subimt" value="提交"/> </td> </tr> </table> </form> <?php header("Content-Type:text/html; charset=gb2312"); $value=$_POST['code']; echo "編號(hào):".$value; ?> </body> </html>
運(yùn)行結(jié)果:
$_GET[]全局變量
PHP使用$_GET[]預(yù)定義變量獲取通過(guò)GET方法傳過(guò)來(lái)的值,使用格式為:
$_GET[name]
范例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>PHP語(yǔ)言基礎(chǔ)</title> </head> <body> <form action="index.php" method="get" name="form1" enctype="multipart/form-data"> <table width="300" border="1" cellpadding="10" cellspacing="0"> <tr> <td height="30">編號(hào): <input type="text" name="code" size="20"/> <input type="submit" name="subimt" value="提交"/> </td> </tr> </table> </form> <?php header("Content-Type:text/html; charset=gb2312"); $value=$_GET['code']; echo "編號(hào):".$value; ?> </body> </html>
運(yùn)行結(jié)果:
$_SESSION[]變量
使用$_SESSION[]變量可以獲取表單元素的值,格式為:
$_SESSION[name]
使用$_SESSION[]傳參的方法獲取的變量值,保存之后任何頁(yè)面都可以使用。但這種方法很耗費(fèi)系統(tǒng)資源,建議讀者慎重使用。
案例
最后結(jié)合筆記中的第一個(gè)demo寫(xiě)一個(gè)完整的案例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>在普通的Web頁(yè)中插入表單</title> <style type="text/css"> body, td, th { font-size: 12px; } </style> </head> <body> <form action="demo_1.php" method="post" name="form1" enctype="multipart/form-data"> <table width="405" height="24" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#999999"> <tr bgcolor="#FFCC33"> <td width="103" height="25" align="right">商品名稱(chēng):</td> <td height="25" align="left"><input name="product" type="text" id="user" size="20" maxlength="100"></td> </tr> <tr bgcolor="#FFCC33"> <td height="25" align="right">市場(chǎng):</td> <td height="25" colspan="2" align="left"><input name="from" type="radio" value="海外" checked> 海外 <input type="radio" name="from" value="國(guó)內(nèi)"> 國(guó)內(nèi) </td> </tr> <tr bgcolor="#FFCC33"> <td width="103" height="25" align="right">編號(hào):</td> <td width="289" height="25" colspan="2" align="left"><input name="code" type="text" id="code" size="20" maxlength="100"></td> </tr> <tr bgcolor="#FFCC33"> <td height="25" align="right">種類(lèi):</td> <td height="25" colspan="2" align="left"><select name="select"> <option value="電器">電器</option> <option value="家具">家具</option> <option value="化妝品">化妝品</option> <option value="圖書(shū)" selected>圖書(shū)</option> <option value="服飾">服飾</option> <option value="寵物">寵物</option> <option value="計(jì)算機(jī)">計(jì)算機(jī)</option> </select></td> </tr> <tr bgcolor="#FFCC33"> <td height="25" align="right">商品圖片:</td> <td height="25" colspan="2" align="left"><input name="photo" type="file" size="20" maxlength="1000" id="photo"></td> </tr> <tr bgcolor="#FFCC33"> <td height="25" align="right">商品描述:</td> <td height="25" colspan="2" align="left"><textarea name="intro" cols="28" rows="3" id="info"></textarea> </td> </tr> <tr align="center" bgcolor="#FFCC33"> <td height="25" colspan="3"><input type="submit" name="submit" value="提交"> <input type="reset" name="submit2" value="重置"></td> </tr> </table> </form> <?php header("Content-Type:text/html; charset=gb2312"); if ($_POST[submit] != "") { echo "商品清單:"; echo " <br><br>商品名稱(chēng):" . $_POST['product']; echo " <br><br> 市場(chǎng):" . $_POST[from]; echo " <br><br> 編號(hào):" . $_POST['code']; echo " <br><br> 種類(lèi):" .$_POST['select']; $path = './upfiles/'. $_FILES['photo']['name']; move_uploaded_file($_FILES['photo']['tmp_name'],$path); echo " <br><br>商品圖片:" .$path; echo " <br><br>商品描述:" .$_POST['intro']; } ?> </body> </html>
運(yùn)行結(jié)果:
通過(guò)move_uploaded_file方法將圖片上傳到當(dāng)前路徑下的upfiles文件夾中。
到此這篇關(guān)于PHP與Web頁(yè)面的交互示例詳解二的文章就介紹到這了,更多相關(guān)PHP與Web頁(yè)面的交互內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP 如何獲取二維數(shù)組中某個(gè)key的集合
PHP 獲取二維數(shù)組中某個(gè)key的集合2014-06-06比較時(shí)間段一與時(shí)間段二是否有交集的php函數(shù)
PHP比較時(shí)間段一與時(shí)間段二是否有交集的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-05-05PHP實(shí)現(xiàn)的簡(jiǎn)單網(wǎng)絡(luò)硬盤(pán)
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單網(wǎng)絡(luò)硬盤(pán),涉及php動(dòng)態(tài)創(chuàng)建文件夾及文件上傳的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07php實(shí)現(xiàn)基于pdo的事務(wù)處理方法示例
這篇文章主要介紹了php實(shí)現(xiàn)基于pdo的事務(wù)處理方法,結(jié)合實(shí)例形式分析了php使用pdo進(jìn)行事務(wù)操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29
今天在百度知道上面有個(gè)朋友問(wèn)php代碼解密的問(wèn)題,看了代碼不是常見(jiàn)幾種比較感興趣,特意搜索了下,發(fā)現(xiàn)下面的方法,解決了,具體的看最后的說(shuō)明。2011-01-01