Web Application 簡介

Download Report

Transcript Web Application 簡介

第一章 PHP 概述課程
鄧姚文
[email protected]
http://www.ywdeng.idv.tw
大綱










使用 PHP
將 PHP 嵌入 HTML
加入動態內容
存取表單變數
識別字
使用者宣告變數
指派值給變數
PHP 的資料型別
變數的變數
變數的範圍








運算子
使用運算子:產生表單
加總
優先順序與結合性:執
行運算式
變數函式
控制架構
以 Conditionals 決策
迴圈:重複的動作
跳出控制結構或命令
使用 PHP


應用範例:訂購單
以 HTML <form method="post"
action="…"> 將輸入傳遞給 PHP 網頁處
理

在 HTML 之中


<input name="name">
在 PHP 網頁中

$_POST["name"] 即傳遞過來的輸入值
將 PHP 嵌入 HTML

Short style


<?
echo "<P>Order processing …";
?>
XML style

<?php
echo "<P>Order processing …";
?>
將 PHP 嵌入 HTML

SCRIPT style


ASP style 不建議使用!


<SCRIPT Language="php">
echo "<P>Order processing …";
</SCRIPT>
<%
echo "<P>Order processing …";
%>
使用那一種 Style 與 Server 設定有關,也與個
人習慣有關
空白

一個空格、一百個空格、一個空行、一
百個空行都是空白


對瀏覽器而言,都只是一個空白
對 PHP 引擎而言也是如此
註解



/* … 多行註解
*/
// 單行註解
# 單行註解
加入動態內容

echo


用來輸出字串
date()


取得日期時間
參考文件


http://tw2.php.net/manual/en/function.date.php
練習:

輸出一個網頁,顯示現在日期與時間
存取表單變數

兩頁式



一個網頁是 HTML(<form>)
一個網頁是 PHP(action 的目的地)
單頁式

用 empty($_POST["name"]) 判斷目前是什
麼狀態
練習:Say Hello




提供一個文字方塊供使用者輸入姓名,
以及一個 Submit 按鈕
使用者 Submit 之後,輸出使用者的姓名
以及問好的訊息
以兩頁式實作
以單頁式實作
字串連結

以 . 連結字串


另一種用法



<?php echo $tiresqty . " tires"; ?>
<?php echo "$tiresqty tires"; ?>
雙引號括起來的字串,裡面的變數會被
取代
單引號括起來的字串,裡面沒有變數
使用者宣告變數



變數一定以 $ 開頭
大小寫視為不同
變數的資料型別視初始值而定


$totalqty = 100; // 整數
$total = 2340.0; // 浮點數
變數的型別

變數型別


整數(integer)
浮點數(double)






實數
字串(string)
陣列(array)
物件(object)
弱型別:變數的型別隨時依指定的值而變
型別轉換

$total = (double)$totalqty;
變數的變數


$varname = "tireqty";
$$varname 即 $tireqty
常數




define("TIREPRICE", 100);
echo TIREPRICE;
常數不需要加 $
用 phpinfo() 顯示內建常數
變數範圍


在函式內的都是區域變數
指名全域變數用 global
運算子

數學運算






加+
減乘*
除/
整數除法取餘數 %
字串運算

字串連結 .
運算子

指派 =




$b = 6 + ($a = 5);
$a 為 5
$b 為 11
複合指派


$b += $a
相當於 $b = $b + $a
運算子

遞增 ++




$a = 100;
$b = $a++; // $b 為 100, $a 為 101
$c = ++$a; // $c 為 102, $a 為 102
遞減 --
運算子

參考




$a = 5;
$b = $a;
$c = &$a;
$a++;



$a 變成 6
$b 不變為 5
$c 也是 6
運算子

關係運算子







相等 ==
全等 === :運算元相等且型別相同
不相等 != 或 <>
小於 <
大於 >
小於等於 <=
大於等於 >=
運算子

邏輯運算子




NOT !
AND && 或
OR
||
或
互斥或 xor
and
or
運算子

位元運算子






AND
OR
NOT
XOR
左移
右移
&
|
~
^
<<
>>
運算子

三元運算子


錯誤抑制



echo ($sex=="男") ? "先生" : "小姐";
$a = @(100/0);
不顯示錯誤訊息
執行運算子


$out = `ls –al`;
echo "<pre>$out</pre>";
練習:Say Hello + 性別稱呼

在 Say Hello 的例子之中加入性別選項



利用 radio button
打招呼時判斷性別,男性加上『先生』,
女性加上『小姐』
提示:

$_SERVER["PHP_SELF"] 為目前檔案名稱
變數函式

gettype() 取得變數型別






integer
double
string
array
object
settype() 設定變數型別

settype($a, 'double');
變數函式

測試變數狀態




isset() 變數是否存在?
unset() 取消變數
empty() 是否為空值?
重新解釋變數



int intval()
double doubleval()
string strval()
控制架構

Conditionals




if
程式區塊 {}
else
elseif

同 else if
<tr valign="top">
<td><font color="red">*</font></td>
<td>性
別:</td>
<?php
if (!empty($sex) && ($sex == "女")) {
?>
<td><input type="radio" name="sex" value="男"
<input type="radio" name="sex" value="女"
<?php
} else {
?>
<td><input type="radio" name="sex" value="男"
<input type="radio" name="sex" value="女"
<?php
}
?>
</tr>
tabindex="8">男&nbsp;
checked tabindex="9">女</td>
checked tabindex="8">男&nbsp;
tabindex="9">女</td>
switch 敘述


switch (簡單型別變數) {
case …
}
break


跳出 switch 敘述
default:

所有的 case 都不合時使用
while 迴圈

while (condition) expression;
for 迴圈

for (expression1; condition; expression2)
expression3;
do … while 迴圈

do
expression;
while (condition);
跳出控制結構或命令

break;


continue;


跳出 switch … case 或 迴圈
跳過迴圈這一回
exit;

程式結束
HTML Form 複習
<form method="post" name="frmApply" action="member_apply_verify.php">

method



name:


get: 參數列出於 URL 上
post: 隱密性較高,參數長度不受限
Form 的名字,任何網頁元件若需要以 JavaScript
控制,都需要一個名字
action

一個網頁,處理 Form 傳送出去後的資料
<input>

<input type="submit" value=…>


送出表單
Value=


按鈕上出現的文字
<input type="reset" value=…>


將所有元件的值回復成預設值(清除或歸零)
Value=

按鈕上出現的文字
<input type="button">

<input type="button" value="送出"
onClick="verifyInput()">



一個普通的按鈕
按鈕按下之後採取的動作由 OnClick= 設定
OnClick= 之後的動作由 JavaScript 撰寫
<input type="text">





<input type="text" name="soc_id" title="請
輸入考生身份證字號" size="10"
maxlength="10" tabindex="1" value="<?php
echo value_or_empty($soc_id); ?>">
文字輸入方塊
title 為提示文字,鼠標置於其上時顯示
size 文字方塊大小
maxlength 最大長度,單位為"字",但是不同
的 browser 有不同的解釋
<input type="password">


<input type="password"
name="password" title="請設定登入密
碼" tabindex="3" value="<?php echo
value_or_empty($password); ?>">
輸入的文字以 * 顯示
<input type="hidden">



<input type="hidden" name="soc_id"
value="<?php echo
strtoupper($soc_id); ?>">
網頁上不顯示,不輸入,但是回隨著 Form 傳
送出去
Authors generally use this control type to
store information between client/server
exchanges that would otherwise be lost due
to the stateless nature of HTTP
<input type="radio">




<input type="radio" name="sex"
value="男" checked tabindex="8">男
<input type="radio" name="sex"
value="女" tabindex="9">女
name 相同的形成一組
單一選擇
表單傳送後以 $sex 取得選取選項的值
(value)
<td>性
別:</td>
<?php
if (!empty($sex) && ($sex == "女")) {
?>
<td><input type="radio" name="sex" value="男" tabindex="8">男&nbsp;
<input type="radio" name="sex" value="女" checked tabindex="9">女</td>
<?php
} else {
?>
<td><input type="radio" name="sex" value="男" checked tabindex="8">男&nbsp;
<input type="radio" name="sex" value="女" tabindex="9">女</td>
<?php
}
?>
<select>

下拉式選單
<select name="prio1" size="1" tabindex="60">
<option selected value='00'> </option>
<option value='01'>企業管理學系</option>
<option value='02'>國際企業學系</option>
<option value='03'>會計學系</option>
<option value='04'>航運與物流管理學系</option>
<option value='05'>財務金融學系</option>
<option value='06'>觀光與餐飲旅館學系</option>
<option value='07'>空運管理學系</option>
<option value='08'>資訊管理學系</option>
<option value='09'>資訊及電子商務學系</option>
<option value='11'>應用外國語文學系英語組</option>
</select>
練習:填寫會員基本資料

製作一個填寫會員基
本資料的畫面
member_apply.php

基本資料包括:









姓名
身份證字號
出生年月日
性別
住址
電話
電子郵件
帳號
密碼