標籤:style blog class c code tar
打算看《php和mysql web開發》來學習php,所以也算是這本書的學習筆記吧,也按照書裡的例子來練習,但是也有些取捨。第一章是一個訂單表單的例子,php用於處理提交的表單。
1.先建立訂單表單orderform.html:
代碼如下:
<html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head><body> <form action="processorder.php" method="post"> <table> <tr style="background-color:#ccc"> <td width="100">種類</td> <td>數量</td> </tr> <tr> <td>輪胎</td> <td><input type="text" name="tireqty" size="3"></td> </tr> <tr> <td>汽油</td> <td><input type="text" name="oilqty" size="3"></td> </tr> <tr> <td>火花塞</td> <td><input type="text" name="sparkqty" size="3"></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="submit order"> </td> </tr> </table> </form></body></html>
View Code
2.再建立procssorder.php來處理表單。
1)添加一點動態內容,顯示表單的處理時間:
php的注釋有多行注釋/*... */,單行注釋//或#。
php有4種風格的標記:
XML風格 <?php code ?>
簡短風格 <? code ?>
script風格 <script language="php">code</script>
asp風格 <% code %>
推薦使用xml風格,簡短風格和asp風格需要在設定檔中啟用相應的選項。
<html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>訂單處理頁</title></head><body> <h1>汽車配件網店</h1> <h2>訂單</h2> <?php echo "<p>訂單處理時間:".date("H:i, jS F Y")."</p>"; //php用“.”連接字串 ?> </body></html>View Code
2)訪問表單變數。
在php中可以通過如下三種方式訪問tireqty域的值:
$tireqty //簡短風格
$_POST[‘tireqty‘] //中等風格
$HTTP_POST_VARS[‘tireqty‘] //冗長風格
簡短風格需要將register_gloabals配置選項設定為on,這可能會導致安全性問題的錯誤,所以不建議用這種方式。冗長風格已經被棄用,通過register_long_arrays配置禁用它可以改進效能。所以中等風格是如今所推薦的。
中等風格包括從$_POST, $_GET或$_REQUEST數組中檢索變數。$_GET或$_POST儲存相應的表單提交方式的資料,$_REQUEST儲存了所有提交方式的表單資料。
<?php //php每一行要用;結尾 $tireqty = $_POST[‘tireqty‘]; $oilqty = $_POST[‘oilqty‘]; $sparkqty = $_POST[‘sparkqty‘];?><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>訂單處理頁</title></head><body> <h1>汽車配件網店</h1> <h2>訂單</h2> <?php echo "<p>訂單處理時間:".date("H:i, jS F Y")."</p>"; //php用“.”連接字串 echo "<p>您的訂單如下:</p>"; echo $tireqty." 個輪胎<br>"; echo $oilqty." 桶汽油<br>"; echo "$sparkqty 個火花塞"; //簡單類型的變數可以直接寫在雙引號中,php會用變數的內容插入到字串中,單引號沒有這個特性。 ?> </body></html>View Code
3)計算購買的數量和總價。
php變數不需要提前聲明,變數名前面必須加$。
常量用define函數定義,並且引用常量的時候前面沒有$符號。
define(‘TIREPRICE‘, 100);
echo TIREPRICE;
<?php //php每一行要用;結尾 $tireqty = $_POST[‘tireqty‘]; $oilqty = $_POST[‘oilqty‘]; $sparkqty = $_POST[‘sparkqty‘]; $totalqty = 0; $totalamount = 0.00; define(‘TIREPRICE‘, 100); define(‘OILPRICE‘, 10); define(‘SPARKPRICE‘, 4); $totalqty = $tireqty + $oilqty + $sparkqty; $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;?><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>訂單處理頁</title></head><body> <h1>汽車配件網店</h1> <h2>訂單</h2> <?php echo "<p>訂單處理時間:".date("H:i, jS F Y")."</p>"; //php用“.”連接字串 echo "購買總數:$totalqty <br>"; echo "購買總額:¥$totalamount<br>"; ?> </body></html>View Code
4)加上簡單的伺服器端驗證。
可以用exit結束整個php指令碼的執行。
empty()可以檢查變數是否為空白或0,is_numeric()可以檢查變數是否為數字或數字字串。
<?php //php每一行要用;結尾 $tireqty = $_POST[‘tireqty‘]; $oilqty = $_POST[‘oilqty‘]; $sparkqty = $_POST[‘sparkqty‘]; $totalqty = 0; $totalamount = 0.00; define(‘TIREPRICE‘, 100); define(‘OILPRICE‘, 10); define(‘SPARKPRICE‘, 4);?><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>訂單處理頁</title></head><body> <h1>汽車配件網店</h1> <h2>訂單</h2> <?php if(empty($tireqty) && empty($oilqty) && empty($sparkqty)){ echo "<p style=‘color:red‘>您沒有選購商品</p>"; exit; } if(is_numeric($tireqty) && is_numeric($oilqty) && is_numeric($sparkqty)){ $totalqty = $tireqty + $oilqty + $sparkqty; $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; echo "<p>訂單處理時間:".date("H:i, jS F Y")."</p>"; //php用“.”連接字串 echo "購買總數:$totalqty <br>"; echo "購買總額:¥$totalamount<br>"; }else{ echo "<p style=‘color:red‘>參數必須為數字</p>"; exit; } ?> </body></html>View Code
3.大功告成: