表單(Form)
表單傳送與接收方式 GET POST 目的: 傳送資料,以取得想要的資訊 表單資料附加於網址之後傳送 Ex: join.php?name=fred&age=32&sex=F <form name="f1" method="get" action="search.php"> … </form> POST 目的: 將資料傳送給網站 表單資料於http訊息之body部分,不會顯示於網址 <form name="f1" method="post" action="join.php">
GET Example <form name="f1" method="get" action="join.php"> E-mail: <input type="text" name="email" /><br /> Password: <input type="password" name="pw"><br /> Age: <input type="text" name="age" size="4"><br/> <input type="submit" /> <input type="reset" /> </form> http://10.10.34.167/plab/join.php?email=ycchen@ncnu.edu.tw&pw=pwd999&age=32
POST Example <form name="f1" method="post" action="join.php"> E-mail: <input type="text" name="email" /><br/> Password: <input type="password" name="pw"><br/> Age: <input type="text" name="age" size="4"><br/> <input type="submit" /> <input type="reset" /> </form> http://10.10.34.167/plab/join.php
接收- GET 使用$_GET陣列取得用戶端送來之資料 <?php $mail = $_GET['email']; … ?> <form name="f1" method="get" action="join.php"> E-mail: <input type="text" name="email" /><br /> … </form>
接收 - POST 使用$_POST陣列取得用戶端送來之資料 <?php $mail = $_POST['email']; … ?> <form name="f1" method="post" action="join.php"> E-mail: <input type="text" name="email" /><br /> … </form> * 使用者若於該文字方塊沒有填寫任何內容 "" (空字串)
register_globals問題 C:\xampp\php\php.ini 目的: 由用戶端傳送過來的參數, 不會自動變成程式中的全域變數
取得表單之checkbox資料(1/2) Members: <input type="checkbox" name="yahoo" value="true" />Yahoo! <input type="checkbox" name="google" value="true" />Google <input type="checkbox" name="youtube" value="true" />Youtube <?php if (isset($_POST['yahoo'])) echo "You select Yahoo!<br/>"; if (isset($_POST['google'])) echo "You select Google!<br/>"; if (isset($_POST['youtube'])) echo "You select Youtube!<br/>"; ?> * 使用者若沒勾選yahoo $_POST['yahoo']不存在!
取得表單之checkbox資料(2/2) <?php if (isset($_POST['member'])) { Members: <input type="checkbox" name="member[]" value="yahoo" />Yahoo! <input type="checkbox" name="member[]" value="google" />Google <input type="checkbox" name="member[]" value="youtube" />Youtube <?php if (isset($_POST['member'])) { $arrMbr = $_POST['member']); $cnt = count($arrMbr); for ($i=0;$i<$cnt;$i++) echo "You select $arrMbr[$i]<br/>"; } ?> 使用者若沒有勾選任一選項 $_POST['member']不存在! $_POST['member']是一個陣列(array)
取得多選的下拉式選單資料 Web Technologies: <br /> <select id="wts" name="wts[]" size="4" multiple="multiple"> <option>HTML</option> <option>XHTML</option> <option>CSS</option> <option>JavaScript</option> <option>php</option> </select> <?php $arrWT = $_POST['wts']; $cnt = count($arrWT); for ($i=0;$i<$cnt;$i++) echo "You select $arrWT[$i]<br/>"; ?>