Introduction to php part3
Download
1 / 34

Introduction to PHP part3 - PowerPoint PPT Presentation


  • 83 Views
  • Uploaded on

Introduction to PHP part3. Outline. 動態網頁. 現在的網頁不單單只是單向的顯示網頁給使用者端 , 更可以和使用者作互動 Ex: Google 搜尋引擎 因此需要製作一個使用者介面讓使用者可以輸入的動作 使用 HTML 來設計一個輸入的介面 表單 (Form) Web server 必須也要有個相對應的程式可以處理使用者輸入的資料 , 並給予適當的回應. 瀏覽程式的網 頁表單. Web 伺服器. PHP 的表單處理.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Introduction to PHP part3' - fontaine-callum


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript


動態網頁

  • 現在的網頁不單單只是單向的顯示網頁給使用者端, 更可以和使用者作互動

    • Ex: Google搜尋引擎

  • 因此需要製作一個使用者介面讓使用者可以輸入的動作

    • 使用HTML來設計一個輸入的介面

      • 表單(Form)

  • Web server必須也要有個相對應的程式可以處理使用者輸入的資料, 並給予適當的回應


瀏覽程式的網

頁表單

Web伺服器

PHP的表單處理

  • 網頁表單為網站的使用者介者,利用此介面將使用者輸入的資料傳送到伺服端的PHP程式進行處理,也可以說是PHP程式的輸入介面。

將輸入的資料傳送到伺服端的PHP程式處理。

User input data

執行結果回傳給瀏覽程式顯示。

PHP程式


表單(Form)

  • 先定義出一個表單, 在表單裡面可以有很多輸入欄位

    • 文字欄位(Text), 密碼欄位(Password), 單一選擇鈕(Radio), 多重選擇鈕(Check Box), 文字區塊:可輸入大量文字(Text Area)

  • 會一次將一個表單裡面所有的輸入欄位送給web server

    • 將想要使用者輸入的欄位都置放在同一個表單裡


表單(Form)

  • 表單的傳送方式有GET和POST

    • GET:最大長度為255 ,會於網址尾端加上?變數名稱1=值&變數名稱2=值…。http://ip/get.php?a=1&b=2

    • POST:所傳訊息不會顯示,資料長度無限制。(伺服器的php還是會設定一限制)

處理表單資料的php

php所在的ip

當資料傳送到server後, 由哪個php程式來處理這些資料

選擇要使用GET或POST方式傳送資料


Php get method
PHP範例 (GETMethod)

  • 問卷調查的簡單範例

    • 在server端有一個person.html, 會秀出以下的表單

<form method="get" action="get.php" name="myform">

姓名 <input name="name"><br>

是否為本系學生&nbsp;<input name="check" type="checkbox">

年級&nbsp;

<select name="year">

<option value="first">大一</option>

<option value="second">大二</option>

<option value="third">大三</option>

<option value="fourth">大四</option>

</select>

男 <input name="sex" value="boy" type="radio">

女 <input name="sex" value="girl" type="radio"><br>

<input name="submit" value="submit" type="submit"><br>

</form>

這個表單傳送的方式為GET, 表單傳送到server後, server會尋找是否有get.php, 若有, 則將表單資料丟給get.php處理

(在此我們將person.html和get.php放在同個資料夾下)

表單的html原始碼


使用GET傳送表單, 會將傳送的資料都顯示在瀏覽器的網址列上

按下submit後, 將表單資料送到server

送出的資料經過get.php的處理後回傳給使用者的結果


get.php的原始碼

<?php

$name=$_GET['name'];

$sex=$_GET['sex'];

$check=$_GET['check'];

$year=$_GET['year'];

echo $name;

echo "性別是$sex<br>";

if (strcmp("on",$check)==0){

echo "就讀本系 $year year";

}

else{

echo "不是本系學生";

}

?>

使用$_GET陣列來取得使用者傳來的資料

  • 注意事項:

  • 在表單裡面form的欄位的name代表著送出的欄位名稱

  • echo的字串會送回給client

  • strcmp是用來比較兩個字串是不是相同的function, 相同會回傳0


Php post method
PHP範例 (POST Method)

  • 留言板範例

    • 在server端有一個message.html, 會秀出以下的介面

message.html的原始檔

<form method="post" action="message.php" name="form">

訪客留言

訪客暱稱 <input name="name"><br>

留言<br>

<textarea cols="30" rows="5" name="message"></textarea><br>

</form>


  • 注意事項

  • 使用POST method來傳送資料不會顯示在網址列上

  • 送出的資料為name=John

  • message=Hello


message.php的原始碼

<?php

$nickname=$_POST['name'];

$message=$_POST['message'];

$time=date("Y-m-d H:i:s");

echo "<table border=\"1\"";

echo "cellpadding=\"2\" cellspacing=\"2\"> <tbody> <tr>";

echo "<td > $nickname </td>";

echo "<td > $time </td></tr><tr>";

echo "<td colspan=\"2\" rowspan=\"1\">";

echo "$message </td></tr></tbody></table>";

?>

  • 注意事項

  • 使用$_POST陣列來接收POST傳送過來的資料

  • date(“Y-m-d H:i:s”)可得到目前的年月日時分秒

  • 若想要顯示表格或圖,echo 相對應的HTML語法



何謂資料庫

  • 資料庫就是用來儲存一堆資料

  • 日常生活中處處可見資料庫的存在

    • 銀行記錄客戶存款與提款金額

    • 航空公司管理班機航次和定位資料

    • 學校記錄學籍和選課成績

  • 但是資料庫不只是單純儲存在那裡, 還需要能夠不時地汰舊換新, 且能提供使用者有用的資訊

    • 需要資料庫管理系統來幫忙維護資料庫


資料庫與資料庫管理系統的關係

使用者介面

用來管理, 分析, 查詢

儲存資料的地方

資料庫

資料庫管理系統


關聯式資料庫

  • 資料表和資料表也常有關連存在

  • 通常一張資料表都會盡量精簡, 避免資料的重複性, 以防資料被修改後的不一致性

    • 我們可透過資料表間的關聯性, 找到更多資訊

客戶資料表

訂單資料表


資料定義語言

  • 定義一筆資料裡有哪些欄位, 每個欄位的資料型態, 簡稱DDL

  • 範例:學生表格定義


建立資料表間的關聯性 (cont)

  • 使用主鍵(primary key)和外來鍵(foreigner key)來建立資料表間的關聯性

  • 主鍵(primary key): 找到表格裡某個欄位的值是獨一無二, 不會有重複的情況發生

    • 可想成是資料的身分證號碼

    • 可由多個欄位組成, 只要是獨一無二即可

  • 當有很多欄位可以成為主鍵,選擇一個合理且比較通用

主鍵


建立資料表間的關聯性

  • 外來鍵(foreigner key): 用來連結某一個表格上和另一個表格之間的關係

  • 外來鍵通常是另一個表格的主鍵

客戶資料表

訂單資料表

訂單資料表的主鍵

外來鍵, 可和客戶資料表建立連結

客戶資料表的主鍵


Mysql
MySQL

  • PHP本身支援多種資料庫系統的使用, 不過PHP+MySQL是最常見的組合

  • MySQL是命令視窗介面的資料庫系統, 操作起來比較不方便

  • phpMyAdmin是一套以php3寫成,針對MySQL資料庫系統的Web管理界面。它可以很方便地以圖形化界面,來對MySQL資料庫內之資料做增刪的做動,更可以做資料庫本身的增刪管理


Phpmyadmin
使用phpMyAdmin管理資料庫

  • http://ip/home/mysql

    • IP為MySQL server的ip address, 由於我們都架在同一台電腦, 所以和PHP server的IP相同


管理資料庫的使用者

預設的管理者為root, 沒有密碼, 所以一開始就先設定root的密碼

可新增其他使用者來連結資料庫


更新連線資料庫的帳號密碼

  • 新增密碼後, 要重新連進phpMyAdmin介面必須要更改設定檔, 將密碼更新

  • 更改Program Files\EasyPHP5.3.0\phpmyadmin下的config.inc.php

  • 將密碼填入$cfg['Servers'][$i]['password']


建立資料庫

在資料庫和資料表等命名請用英文


建立資料表

建立資料表


建立資料表的欄位

如果是Primary key的欄位是文字, 請型態要選擇VarChar, 並且要給它長度的限制值



建立資料表的關聯性

在Designer部分, 可將資料表間建立關聯


填入資料

建立完資料表後, 將資料庫的內容填入各個資料表

資料填寫處


查詢範例(SQL)

和Access的查詢介面相像

選擇完欲查詢欄位後, 點選更新語法, 可得到SQL程式


PHP連結資料庫

  • 假設有一個資料庫存著書籍的資料表(如下表所示), 如何寫一個php程式連結資料庫來讀取書籍資料表?

  • PHP和MySQL相關的函式庫

存取書籍資料表的範例程式

轉換成HTML格式


範例: 網路書店

  • 在server端有一個bookstore.html的網頁, 可用來查詢自己的訂單

處理資料庫的php原始碼

若輸入Peh, 則得到的結果如下



今日練習

  • 預設披薩店裡的庫存量是每種披薩各10個

    • 計算出客戶點的披薩總共要多少錢 (基本題)

    • 建立披薩的資料庫, 如果已經沒有足夠的披薩, 必須跟客戶說材料不足, 無法供應 (50%bonus)


ad