php表單之在Web頁面中嵌入php代碼
1. 在HTML標記中添加PHP腳本
在 Web 編碼的程序中,PHP是可以與HTML混合使用的嵌入式語言,可以隨時在HTML添加PHP腳本標記<?php...?>,兩個標記之間的所有文本都會被解釋成PHP,而標記之外的任何文本都會被認為是普通的HTML,
舉個例子,在<body>標記中添加PHP識別符號,使用 include 陳述句參考外部檔案 index.php, 代碼顯示如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<?php include('header.php');?>
index page
</body>
</html>
header.php
<?php echo 'i am header<br>';
有四種分解符可以讓PHP嵌入到HTML,
(1)<?php 和?>:PhP標準的分解符,
(2)<?和?>:簡寫的分解符,
(3)<script language="php">和</script>:JavaScript/VBScript風格分解符
(4)<%和%>:ASP分解符,
其中第一種與第二種是最常用的方法;第三種方法類似于JavaScript嵌入方式;第四種方式類似于ASP嵌入方式,
注意:要想使用PHP支持<??><%%>方式,需要分別在組態檔PHP.ini中進行如下設定:
short_open_tag = on;
asp_tags = on;
2. 對表單元素的 value 屬性進行賦值
在 Web 開發的程序中,通常需要對表單元素的 value 屬性進行賦值,以獲取該表單元素的默認值,例如,為表單元素隱藏域進行賦值,只需要將所賦的值添加到 value 屬性后就可以了,其代碼實體如下:
<input type="hidden" name="id" value="https://www.cnblogs.com/chenyingying0/p/<?php echo $hidden;?>">
下面來簡單介紹一下什么是隱藏域
隱藏域的優點
1、不需要任何服務器資源,
2、支持廣泛,任何客戶端都支持隱藏域,
3、實作簡單,隱藏域屬于HTML控制元件,無需像服務器控制元件那樣有需要編程知識,
隱藏域的不足
1、具有較高的安全隱患,
2、存盤結構簡單,
3、如果存盤了較多的較大的值,則會導致性能問題,
4、如果隱藏域過多,則在某些客戶端中被禁止,
5、隱藏域將資料存盤在服務器上,而不存盤在客戶端,
注意,如果開發中,頁面的隱藏域過多,這些隱藏域被存盤在服務器,當客戶端瀏覽頁面的時候,會有一些防火墻掃描頁面,以保證作業系統的安全,如果頁面的隱藏域過多,那么這些防火墻可能會禁止頁面的某些功能,
php獲取form表單單選按鈕和復選框的值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>form</title> </head> <body> <form action="" method="post" name="form1"> <table width="500" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="500" height="30"> <input type="radio" name="sexy" value="男" checked>男 <input type="radio" name="sexy" value="女">女 <input type="submit" name="submit" value="提交"> </td> </tr> </table> </form> </body> </html>
說明:checked 屬性用來設定表單元素默認選中的意思,當表單頁面被初始化時,有checked 屬性的表單元元素為選中狀態,
應用$_POST[]全域變數來獲取單選按鈕組的值,最后通過echo陳述句進行輸出
<?php error_reporting(0); echo "您選擇的性別為:"; //輸出字串 echo $_POST["sexy"]; //輸出被選中的單選按鈕的值 ?>

獲取復選框的值
復選框能夠進行專案的多項選擇,瀏覽者填寫表單時,有需要選擇多個專案,例如:在線聽歌中需要同時選取多首歌曲等,就會用到復選框,復選框一般都是多個選項同時存在,為了便于傳值,name 的名字可以是一個陣列形式,格式為:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>form</title>
</head>
<body>
<form action="index.php" method="post" name="form1">
<table width="500" cellpadding="0" cellspacing="0">
<tr>
<td width="500" height="40" align="center" valign="top">喜歡的圖書型別:
<input type="checkbox" name="mrbook[]" value="https://www.cnblogs.com/chenyingying0/p/php" >php
<input type="checkbox" name="mrbook[]" value="https://www.cnblogs.com/chenyingying0/p/thinkphp" >thinkphp
<input type="checkbox" name="mrbook[]" value="https://www.cnblogs.com/chenyingying0/p/laravel" >laravel
<input type="submit" name="submit" value="https://www.cnblogs.com/chenyingying0/p/提交">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
if($_POST["mrbook"]!= null){ //判斷復選框如果不為空,則執行下面的操作
echo "您選擇的結果是:"; //輸出字串
for($i = 0; $i < count($_POST["mrbook"]);$i++){ //通過 for 回圈陳述句輸出選中復選框的值
echo $_POST["mrbook"][$i]." "; //回圈輸出用戶選擇的圖書類別
}
}
?>
在瀏覽器中輸入運行地址,按回車鍵,得到如下圖所示的運行結果:

php獲取form表單檔案域的值
在實作開發程序中,檔案或者圖片上傳在一些網站應用中是必不可少的一部分,比如個人博客上傳個性頭像,一些論壇分享好的學習資料等等,這就涉及到使用表單處理檔案上傳的知識,在php中 我們可以使用$_FILES這個全域陣列來處理,
$_FILES陣列內容如下:
$_FILES['myFile']['name'] 客戶端檔案的原名稱,
$_FILES['myFile']['type'] 檔案的 MIME 型別,需要瀏覽器提供該資訊的支持,例如"image/gif",
$_FILES['myFile']['size'] 已上傳檔案的大小,單位為位元組,
$_FILES['myFile']['tmp_name'] 檔案被上傳后在服務端儲存的臨時檔案名,一般是系統默認,可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函式設定是不起作用的,
$_FILES['myFile']['error'] 和該檔案上傳相關的錯誤代碼,['error'] 是在 PHP 4.2.0 版本中增加的,
$_FILES["file"]["error"]中的["error"]值情況:
UPLOAD_ERR_OK 值:0; 沒有錯誤發生,檔案上傳成功
UPLOAD_ERR_INI_SIZE 值:1; 上傳的檔案超過了 php.ini 中 upload_max_filesize選項限制的值
UPLOAD_ERR_FORM_SIZE 值:2;上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值
UPLOAD_ERR_PARTIAL 值:3; 檔案只有部分被上傳
UPLOAD_ERR_NO_FILE 值:4;沒有檔案被上傳, 值:5; 上傳檔案大小為0 ,
php對URL傳參進行編碼和解碼決議
urlencode(string)
urlencode()函式實作將字串 string 進行 URL 編碼,
在下面的實體中,應用 urlencode()函式對 URL 傳遞的引數值進行編碼,顯示的字串是
URL 編碼后的字串,其實作的代碼如下所示:
<?php $url = urlencode('cyy超可愛'); echo 'index.php?id='.$url;
在瀏覽器中輸入運行地址,按回車鍵,得到如下所示的運行結果:
index.php?id=cyy%E8%B6%85%E5%8F%AF%E7%88%B1
說明:
對于服務器而言,編碼前后的字串并沒有什么區別,服務器能夠自動識別,這里主要是為了講解 URL編碼的使用方法,在實際應用中,對一些非保密性的引數不需要進行編碼,讀者可根據實際情況有選擇的使用,
urldecode(string)
urldecode() 函式可將 URL 編碼后的 string 字串進行解碼,
這里的例子應用urlencode() 函式對獲取的編碼進行解碼,將解碼后的結果輸出來,其實作的代碼如下所示:
<?php $url = '%E8%B6%85%E5%8F%AF%E7%88%B1'; echo urldecode($url);
運行的結果如下所示:
超可愛
php表單提交獲取資料到當前頁的簡單綜合應用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="" method="post" name="form1" enctype="multipart/form-data">
<table width="400" border="1" cellpadding="1" bgcolor="#999999">
<tr bgcolor="#FFCC33">
<td width="103" height="25" align="right">姓名:</td>
<td height="25">
<input name="user" type="text" id="user" size="20" maxlength="100">
</td>
</tr>
<tr bgcolor="#FFCC33">
<td height="25" align="right">性別:</td>
<td height="25" colspan="2" align="left">
<input name="sex" type="radio" value="https://www.cnblogs.com/chenyingying0/p/男" checked>男
<input name="sex" type="radio" value="https://www.cnblogs.com/chenyingying0/p/女" >女
</td>
</tr>
<tr bgcolor="#FFCC33">
<td width="103" height="25" align="right">密碼:</td>
<td width="289" height="25" colspan="2" align="left">
<input name="pwd" type="password" id="pwd" size="20" maxlength="100">
</td>
</tr>
<tr bgcolor="#FFCC33">
<td height="25" align="right">學歷:</td>
<td height="25" colspan="2" align="left">
<select name="select">
<option value="https://www.cnblogs.com/chenyingying0/p/專科">專科</option>
<option value="https://www.cnblogs.com/chenyingying0/p/本科" selected>本科</option>
<option value="https://www.cnblogs.com/chenyingying0/p/高中">高中</option>
</select>
</td>
</tr>
<tr bgcolor="#FFCC33">
<td height="25" align="right">愛好:</td>
<td height="25" colspan="2" align="left">
<input name="fond[]" type="checkbox" id="fond[]" value="https://www.cnblogs.com/chenyingying0/p/php">php
<input name="fond[]" type="checkbox" id="fond[]" value="https://www.cnblogs.com/chenyingying0/p/thinkphp">thinkphp
<input name="fond[]" type="checkbox" id="fond[]" value="https://www.cnblogs.com/chenyingying0/p/laravel">laravel
</td>
</tr>
<tr bgcolor="#FFCC33">
<td height="25" align="right">照片上傳:</td>
<td height="25" colspan="2">
<input name="image" type="file" id="image" size="20" maxlength="100">
</td>
</tr>
<tr bgcolor="#FFCC33">
<td height="25" align="right">個人簡介:</td>
<td height="25" colspan="2">
<textarea name="intro" cols="30" rows="10" id="intro"></textarea>
</td>
</tr>
<tr align="center" bgcolor="#FFCC33">
<td height="25" colspan="3">
<input type="submit" name="submit" value="https://www.cnblogs.com/chenyingying0/p/提交">
<input type="reset" name="reset" value="https://www.cnblogs.com/chenyingying0/p/重置">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
if($_POST['submit']!= ""){ //判斷是否提交了表單
echo "您的個人簡歷為:".'<br>';
echo "姓名:".$_POST['user'].'<br>'; //輸出用戶名
echo "性別:".$_POST['sex'].'<br>'; //輸出性別
echo "密碼:".$_POST['pwd'].'<br>'; //輸出密碼
echo "學歷:".$_POST['select'].'<br>'; //輸出學歷
echo "愛好:";
for($i=0;$i<count($_POST["fond"]);$i++){ //獲取愛好的復選框的值
echo $_POST["fond"][$i].' ';
}
echo "<br>";
$path = './uploads/'.$_FILES['image']['name']; // 指定上傳的路徑和檔案名
move_uploaded_file($_FILES['image']['tmp_name'],$path); //上傳檔案
echo "照片:"."$path".'<br>'; //輸出個人照片的路徑
echo "個人簡介:".$_POST['intro']; //輸出個人簡介的內容
}
?>


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/33636.html
標籤:PHP
上一篇:PHP中區分0和空
