php (personal home page tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/php.pdf ·...

25
PHP: Hypertext Preprocessors 1 1 การสร้างเว็บเพจด้วย PHP โดย อ.ชูศักดิ Í ยาทองไชย 2 PHP () 1. แนะนํา PHP PHP คืออะไร, PHP ทํางานอย่างไร, ทําไมต้องใช้ PHP 2. PHP Syntax รูปแบบและโครงสร้างของ PHP 3. PHP Variables การกําหนด และใช้ตัวแปร, Operator, การกําหนดเงืÉอนไข และ Loop 4. PHP Function การเรียกใช้ Functions 5. PHP Forms การรับข้อมูลจาก Forms 3 PHP () 6 PHP Cookies Cookie คืออะไร, การกําหนดและการใช้งาน Cookie 7. PHP Session Session คืออะไร, การกําหนดและการใช้ตัวแปรของ Session 8. PHP Class และ Object Object ต่าง ๆ ของ PHP, การกําหนด Properties ของ Object 9. PHP Components Component ต่าง ๆ ที Éใช้กับ PHP 4 PHP คืออะไร? PHP เป็นภาษาจําพวก scripting language คําสั Éงต่างๆจะเก็บอยู่ในไฟล์ ที Éเรียกว่า สคริปต์ (script) และเวลาใช้งานต้องอาศัยตัวแปลชุดคําสั Éง ตัวอย่างของภาษาสคริปก็เช่น JavaScript, Perl เป็นต้น ลักษณะของ PHP ที Éแตกต่างจากภาษาสคริปต์แบบอื Éนๆ คือ PHP ได้รับการพัฒนา และออกแบบมา เพื Éอใช้งานในการสร้างเอกสารแบบ HTML PHP เป็นภาษาที Éเรียกว่า server-side หรือ HTML-embedded scripting language เป็นเครื ÉองมือทีÉสําคัญชนิดหนึ ÉงทีÉช่วยให้สามารถสร้าง เอกสารแบบ Dynamic HTML

Upload: others

Post on 02-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

1

1

การสรางเวบเพจดวย PHP โดย อ.ชศกด ยาทองไชย

2

PHP () 1. แนะนา PHP

PHP คออะไร, PHP ทางานอยางไร, ทาไมตองใช PHP 2. PHP Syntax รปแบบและโครงสรางของ PHP 3. PHP Variables การกาหนด และใชตวแปร, Operator, การกาหนดเงอนไข และ Loop 4. PHP Function การเรยกใช Functions 5. PHP Forms การรบขอมลจาก Forms

3

PHP () 6 PHP Cookies

Cookie คออะไร, การกาหนดและการใชงาน Cookie 7. PHP Session

Session คออะไร, การกาหนดและการใชตวแปรของ Session 8. PHP Class และ Object

Object ตาง ๆ ของ PHP, การกาหนด Properties ของ Object 9. PHP Components

Component ตาง ๆ ทใชกบ PHP 4

PHP คออะไร? PHP เปนภาษาจาพวก scripting language คาสงตางๆจะเกบอยในไฟลทเรยกวา สครปต (script) และเวลาใชงานตองอาศยตวแปลชดคาสง ตวอยางของภาษาสครปกเชน JavaScript, Perl เปนตน ลกษณะของ PHP ทแตกตางจากภาษาสครปตแบบอนๆ คอ PHP ไดรบการพฒนาและออกแบบมา เพอใชงานในการสรางเอกสารแบบ HTML PHP เปนภาษาทเรยกวา server-side หรอ HTML-embedded scripting language เปนเครองมอทสาคญชนดหนงทชวยใหสามารถสรางเอกสารแบบ Dynamic HTML

Page 2: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

2

5

ไฟล PHP มรปแบบอยางไร? ไฟล PHP จะมลกษณะเหมอนกบไฟล HTML ไฟล PHP จะประกอบดวย Text, HTML tags และ Scripts Scripts ในไฟล PHP จะถกประมวลผลบนฝง Server ไฟล PHP จะตองมสวนขยายเปน “.php”

6

PHP ทางานอยางไร? การทางานของ PHP จะใช Scripts อย 2 รปแบบ คอ Server-Side Script เปนลกษณะการทางานบนเครอง

Server และแปลออกมาเปนภาษา HTML เชน ASP, CGI

Client-Side Script เปนลกษณะการทางานบนเครอง Client (เครองผใช) เชน JavaScript, VBScript

7

การทางานของ PHP

คอมพวเตอรทรนโปรแกรม Browser Server ทรนโปรแกรม IIS หรอ PWS

HTTP Request

ประมวลผล Scripts ในไฟล Php

สงไฟล HTML

8

ทาไมตองใช PHP (1) เปนภาษาทมลกษณะเปนแบบ Open Source ผใชสามารถ Download และนา Source Code ของ PHP ไปใชโดยไมเสยคาใชจาย เปนสครปตแบบ Server Side Script ดงนนจงทางานบนเวบเซรฟเวอร ไมสงผลกบการทางานบนเครอง Client โดย PHP จะอานโคด และทางานทเซรฟเวอร จากนนจงสงผลลพธทไดจากการประมวลผลมาทเครองของผใชในรปแบบของเอกสาร HTML ซงโคดของ PHP นผใชจะไมสามารถมองเหนได PHP สามารถทางานในเวบเซรฟเวอรหลายชนด เชน Personal Web Server (PWS,) Apache, OmniHttpd และ Internet Information Service (IIS)

Page 3: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

3

9

ทาไมตองใช PHP (2) PHP สามารถทางานไดในระบบปฏบตการทตางชนดกน เชน Unix, Windows, Mac OS หรอ Risc OS อยางมประสทธภาพ PHP มความสามารถในการทางานรวมกบระบบการจดการฐานขอมลทหลากหลาย ซงระบบการจดการฐานขอมลทสนบสนนการทางานของ PHP เชน Oracle, FilePro,Solid, FrontBase,MS SQL,mSQL และ MySQL PHP อนญาตใหผใชสรางเวบไซตซงทางานผานโปรโตคอลชนดตาง ๆได เชน LDAP, IMAP, SNMP,POP3 และ HTTP

10

รปแบบและโครงสรางของ PHP (1) รปแบบของ PHP ม 4 แบบดงน Short Style <?echo “My program PHP.<BR>”;?> รปแบบนจะใชตามรปแบบของ SGML (Standard Genralized Markup - Language) XML Style <?php echo “My program PHP.<BR>”;?> รปแบบนสามารถใชไดกบภาษา XML (Extensible Markup Language)

11

รปแบบและโครงสรางของ PHP (2) SCRIPT Style <SCRIPT LANGUAGE = ‘php’> echo “My program PHP.<BR>” ; </SCRIPT> ใชรวมกบภาษา HTML แลวระบภาษาลงไปใน SCRIPT ซงเหมอนกบการใช JavaScript และ VBScript ASP Style <% echo “My program PHP.<BR>” ;%> ใชรปแบบของแทกเหมอนกบภาษา ASP (Active Server Pages)

12

การกาหนดและใชตวแปรของ PHP (1) การกาหนดชนดของตวแปรในการเขยนโปรแกรมภาษา PHP นนอาจจะกาหนดหรอไมกได ถาไมกาหนดจะเรยกตวแปรนนวาเปนตวแปรแบบ “Type Strength” คอ ไมมการระบชนดของตวแปร โดยมากจะใชกบตวแปรทมคาจากการคานวณตวเลข เชน $Price=150*10; ตวแปร Price จะถกกาหนดใหเปนตวแปรทมชนดเปน Integer โดยอตโนมตเนองจากผลลพธท Price เกบไวมชนดเปน Integer กรณทมการกาหนดชนดใหกบตวแปรหลงจากทใชตวแปรไปแลว หรอเมอมการกระทาบางอยางแลวตองการเปลยนชนดของตวแปรเพอนาไปใชตอ จะเรยกตวแปรชนดนวาตวแปรแบบ “Type Casting”

Page 4: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

4

13

ตวอยาง แสดงการเปลยนชนดของตวแปรเพอนาไปใช เพอการคานวณ 1. <? php 2. $x=70.15; //เปนตวแปรชนด Float 3. $y=50.35; // เปนตวแปรชนด Integer 4. $z=$x+$y; //ผลลพธทไดจะเปนชนด Float เนองจากตวแปร $x มชนดเปน Float 5. $a=Sz/40; 6. $b=(Integer)$a; //เปลยนชนดของ $z จาก Float ใหเปน Integer เรยกวา “Type Casting” 7. Echo $b; //แสดงคาของ $b 8. ?>

14

การกาหนดและใชตวแปรของ PHP (2) ตวแปรและการอางอง ชอตวแปรในภาษา PHP จะมลกษณะเชนเดยวกนกบชอตวแปรในภาษา Perl กลาวคอตวแปรทกตว จะขนตนดวยเครองหมาย “$” เสมอ นอกจากนตงแต PHP version 4 เปนตนมายงมวธการ ในการอางองตวแปรแบบ reference ไดอกดวย ทงนการอางองตวแปรแบบ reference จะมลกษณะเหมอนกบการอางองดวย Pointer ในภาษา C คอขอมลจะถกชไปยงตาแหนงเดยวกน ในหนวยความจา โดยการอางองในลกษณะนจะใชอางองถงตวแปรตาแหนงเดยวกนดวยชอมากกวา 1 ชอ

15

ตวอยาง การอางองตวแปรแบบ Reference <?php $A = "Test"; $B = 10; $C = 10.01; $ptr = &$A; echo ("A : $A\n"); // A : Test echo ("B : $B\n"); // B : 10 echo ("C : $C\n"); // C : 10.01 echo ("ptr : $ptr\n"); // ptr : Test $ptr="Hello, $ptr"; $C=$B; $C=200; echo ("ptr : $ptr\n"); // ptr : Hello, Test echo ("B : $B\n"); // B : 10.01 echo ("C : $C\n"); // C : 200 echo ("A : $A\n"); // A : Hello, Test ?> 16

ตวแปร ในบางกรณเพออานวยความสะดวกอาจจะมการอางองถงตวแปรตว แปรกไดเชนกน เชน กรณตองการอางองถงตวแปรชอ $test อาจทา ไดโดยการอางองถง $$a โดย $a มความเปน “test” กได

Page 5: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

5

17

ตวอยาง การอางองตวแปร <?php

$a= "test; $$a="variable"; echo ("$a ${$a}"); // ทงสองบรรทดจะไดผลลพธเหมอนกน echo ("$a $test"); // ?>

18

การอางอง Array ดวยตวแปร ผใชจะตองเขยนเพอแยกแยะความสบสน ของการประมวผลดวย เชน $$a[1] อาจจะมความหมายไดวา ${$a[1]} หรอ ${$a}[1] กได ตวอยาง การอางอง Array ดวยตวแปรตวแปร <?php $a="HELLO.."; $b[1]="Test"; $Test="5555"; $x="a"; echo ${$x}[1]; // จะไดผลลพธ เปน "E" ซงเปนตวอกษรท 2 ใน "A" echo ${$b[1]}; // จะไดผลลพธ เปน "5555" ซงเปนคาของ $Test ?>

19

ตวแปรจากระบบ ตวแปรจากระบบคอตวแปรท ถกกาหนดขนโดย Web

Server และผานตอมายง PHP ซงรายละเอยดจะแตกตางกนไป ใน Web Server แตละตว ทงนเราอาจจะตรวจสอบไดวา Web Server ของเรานนมการสงคาใดบางมาถง PHP ไดโดยการเรยกใช Function phpinfo(); และดในสวนของ Web Server ของตน (กรณเปน Apache กใหดในสวน Apache กรณเปน IIS กใหดในสวน IIS เปนตน )

20

ตวแปรจาก PHP เปนขอมลทตวแปลภาษา PHP เตรยมใหผใชกอนเรมทาการประมวลผลคาสงตางๆ ทงนตวแปรบางตว จะมการกาหนดคเรมตนโดยตวแปลภาษา PHP หรอไมนนขนอยกบการตงคาบางตวใน PHP.INI ดวย

Page 6: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

6

21

ตวแปรระบบทไดจาก PHP Variable Description argv เปน Array ของ argument ทเรยกเขาส PHP ใน Command-lin หรอกรณGET Method จะแสดง QUERY_STING (ในลกษณะเดยวกนกบภาษา C) argc แสดงจานวนของ argument ทเรยกเขาส PHP ใน Command-line PHP_SELF แสดงชอ SCRIPT ทกาลงทาการประมวลผล (ไมสามารถ ใชไดในการเรยก PHP แบบ Command-line)

22

ตวแปรจาก Web (1) ตวแปรทไดรบจากหนา Web Page นนอาจจะไดรบมาจาก URL หรอ Form ผาน Get Method, Post Methid หรอ อาจจะมาจาก Cookie กได ทงนใน PHP จะเรยกตวแปรทไดรบผาน Web วา GPC ซงเปนตวยอของ Get, Post และ Cookie ตามลาดบ ซงโดยปกต PHP กจะประมวลผล ในการตงคาของขอมลตามลาดบเหลานเชนเดยวกน ดงนนขอมลใน Cookie จะมลาดบความสาคญสงสด และขอมลใน Get Method จะมความสาคญตาสด (สาหรบผทไมคนเคยกบการทางานของ Web นน Get Method คอการผาน Parameter ผาน URL เชน http://www.test.com/test.php?test=5555 เปนตน) กรณนทผใชตองการจะเปลยนลาดบในการประมวลผลคาตวแปรจาก Web นน ผใชอาจจะตงคาท gpc_order ใน PHP.INI กได

23

ตวแปรจาก Web (2) การอางองถงตวแปรทไดรบผาน Web สามารถกระทาได 2 วธ คอ การอางองผาน Global Variable หรอ การอางองผาน Array ชอ HTTP_*_VARS โดย * คอแหลงกาเนดของขอมลเชนGET,POST,COOKIE,SERVER หรอ ENV เปนตน (ในกรณของ PHP Version 4.0 เปนตนไปนน ผใชตองตงคา register_globals=on ใน PHP.INI กอนจงจะทาการอางองคาผาน Global Variable ได) ดงตวอยางของ Form ตอไปน

24

ตวอยาง Form <form method=post> <input type=text name="myvar"> </form> <?php echo $myvar; // or echo $HTTP_POST_VARS["myvar"]; ?>

Page 7: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

7

25

การใช IMAGE SUBMIT ในบางกรณผเขยน Web อาจจะใช Image แทนการใชป ม Submit กได ซงในกรณน PHP จะกาหนดตวแปรเพมขนอก 2 ตว คอ *_x และ *_y เพอใชแสดงตาแหนง X และ Y ของปมทถกกด

26

PHP Operator Arithmetic Operators (เครองหมายทใชในการคานวณ)

เครองหมาย ชอ ความหมาย ตวอยาง + - * / %

Addition Subtraction Multiplication Division Modulus

บวก ลบ คณ หาร เศษจากการหาร (Mod)

$A + AB $A - AB $A * AB $A / AB $A % AB

27

PHP Conditional Statement (1) กลมคาสงแบบมเงอนไข เปนกลมคาสงทใชตดสนใจในการเลอกเงอนไขตาง ๆภายใน โปรแกรมเพยงเงอนไขเดยวมาทางาน ไดแก คาสง if และ switch คาสง if เปนคาสงทใชสาหรบตดสนใจ โดยถาเปนจรงจะทาตามคาสงตางๆทกาหนดไวภายใตเงอนไข if ซงเงอนไขของคาสง if จะอยภายในเครองหมายวงเวบ ( ) แตถาไมจรงจะไปทางานคาสงถดไปทอยหลงเครองหมายปกกาปด }มรปแบบของคาสง if ดงน if (เงอนไข) } คาสงตาง ๆ เมอเงอนไขเปนจรง

28

ตวอยาง แสดงการใชคาสง if 1. if ($height >0 && $width > 0) 2. { $area = $height * $width; 3. echo “พนทสเหลยมเทากบ”.$area ; 4. }

Page 8: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

8

29

PHP Conditional Statement (2) คาสง if…else เปนคาสงทม 2 เงอนไขคอ ถาเงอนไขภายใน if เปนจรงกเขาไป ทาคาสงภายใน if แตถาเงอนเปนเทจกจะไปทาคาสงภายใน else รปแบบ เปนดงน if (เงอนไข) { คาสงตาง ๆเมอเงอนไขเปนจรง ; } else { คาสงตาง ๆเมอเงอนไขเปนเทจ ; } …

30

ตวอยาง แสดงการใชคาสง else 1. if ($height >0 && $width > 0) 2. { $area = $height * $width; 3. echo “พนทสเหลยมเทากบ”.$area ; 4. } 5. else 6. {echo “กรราปอนตวเลขใหม <br>” ; 7. echo “คาขอมลมากกวา 0” ;}

31

PHP Conditional Statement (3) คาสง if…elseif ใชในกรณทมเงอนไข if และ else จานวนมาก คาสง elseif เปนการรวมกนของคาสง if และ else ซงคาสงเหลานจะเรยงลาดบกน อย มรปแบบดงน if (เงอนไขท1) { คาสงตาง ๆเมอเงอนไขท 1 เปนจรง ; } elseif (เงอนไขท 2) {คาสงตาง ๆ เมอเงอนไขท 2 เปนจรง ; } elseif (เงอนไขท 3) {คาสงตาง ๆ เมอเงอนไขท 3 เปนจรง ; } … 32

ตวอยาง แสดงการใชคาสง if…elseif 1. if ($score < 0) 2. echo “กรณาตรวจสอบชวงคะแนนอกครง” ; 3. elseif ($score > 80.0) 4. $grade = “G” ; 5. elseif ($score >= 60.0) 6. $grade = “P” ; 7. elseif ($score <60) 8. $grade = “F” ;

Page 9: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

9

33

PHP Conditional Statement (4)

คาสง switch หลกการทางานของ switch จะคลายกบคาสง if แตวาเงอนไขใน switch จะมมากกวา 2 เงอนไข คอ ตรวจสอบเงอนไขโดยดจากคาของตวแปร โดยนาคาจากตวแปรทอยในคาสง switch มาตรวจสอบกบคาทอยหลงคาสง case แตละคาสงถาตรงกนจะทางานตามคาสงทอยใน case นน ถาไมตรงเลยจะมาทางานทคาสง default แทน มรปแบบดงน 34

รปแบบของคาสง switch switch (ตวแปร) { case คาท 1 : คาสงท 1 ; break ; case คาท 2 : คาสงท 2 ; break ; ... case คาท N : คาสงท N ; break ; default : คาสงเมอไมมคาทตรงกบทระบใน case ; }

35

ตวอยาง แสดงการใชคาสง switch 1. Switch ($year) 2. { 3. Case 5 : $Irate = 12; 4. break; 5. Case 15 : $Irate = 18; 6. break; 7. Case 30 : $Irate = 24; 8. break; 9. Default : echo “ตวเลอกผด ปอนตวเลข 5 , 15 หรอ 30 เทานน กรณาปอนใหมอกครง”; 10. }

36

PHP Looping Statement (1) กลมคาสงแบบวนรอบ เปนกลมคาสงทใชในการวนรอบ (loop) โปรแกรมจะทางานไปเรอยจนกวาเงอนไขทกาหนดไวจะเปนจรงจงหลดออกจากการทางาน คาสงในกลมนไดแก while, for, do…while คาสง while คาสง while จะคลายกบคาสง if มขอแตกตางคอ คาสง if จะทาคาสงภายใน if ทละคาสงรอบเดยวหากเงอนไขเปนจรง คาสง while จะทาตามคาสงภายใน while ตราบทเงอนไขเปนจรง

Page 10: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

10

37

รปแบบของคาสง while while (เงอนไข) { คาสงตาง ๆ เมอเงอนไขเปนจรง;} ตวอยาง 1. $sum = 100; 2. $num = 1; 3. While($num<=$sum) 4. {echo $num. “<BR>”; 5. $num++; 6. }

38

PHP Looping Statement (2) คาสง for เปนรปแบบทใชในการตรวจสอบเงอนไขพรอมทงคาเรมตนและการเปลยนแปลงของคาเรมตนไปพรอม ๆ กน โดยตราบใดทเงอนไขในคาสง for เปนจรง มรปแบบดงน for (คาเรมตนของตวแปร ; เงอนไข ; เปลยนแปลงคาตวแปร) { คาสงตางๆ เมอเงอนไขเปนจรง ;} ตวอยาง 1. for ($x = 0;$x<10 ;$x++) 2. {echo “รอบท”.$x;}

39

PHP Looping Statement (3) คาสง do…while โปรแกรมจะทางานตามคาสงตางๆ กอน เมอทาเสรจจงจะมาตรวจสอบเงอนไขทคาสง while ถาเงอนไขเปนจรงจะวนกลบขนไปทางานทคาสงตางๆ ใหม แตถาไมเปนจรงจะหลดออกมาทางานทคาสงตอไป มรปแบบดงน do {คาสงตางๆ เมอเงอนไขเปนจรง;} while (เงอนไข);

40

ตวอยาง แสดงการใชคาสง do…while 1. $sum = 100; 2. $num = 1; 3. do{ 4. echo $num. “<BR>” ; 5. $num++; 6. } 7. While ($num<=$sum);

Page 11: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

11

41

PHP Looping Statement (4) กลมคาสงกระโดดออกจากคาสงวนรอบ เปนคาสงททางานรวมกบกลมคาสงแบบวนรอบ เพอใหหลดออกจากลปหรอทางานตอไปภายในลปซงประกอบคาสง break, continue และ exit

คาสง break ถาโปรแกรมพบคาสงน จะหลดจากการทางานในลปทนท เพอไปทา คาสงอนทอยนอกลป คาสง continue คาสงนจะทาใหหยดการทางาน แลวยอนกลบไปเรมตนการทางานทตนลปใหม ทางานคลายๆกบ break แตแตกตางกนท break ใชหยดกาทางานในลปใหมทงหมด แต continue จะขามคาสงตางๆแลวยอนกลบไปเรมตนลปใหม คาสง exit ใชคาสง exit เพอใหโปรแกรมหยดทางาน กรณทตองการตรวจสอบขอผดพลาด ในโปรแกรมและออกจากโปรแกรมการทางานทงหมด

42

ตวอยาง แสดงการใชคาสง break,continue, exit 1. $num = 0; 2. while(1<2) 3. { 4. $num = $num +1; 5. if ($num = = 10) 6. { echo “จบการทางานใน while loop<BR>”; 7. break;} 8. if ($num > 0 && $num <= 9) 9. { echo “ตวเลข”.$num. “<BR>”; 10. continue;} 11. } 12. exit; 13. Echo “โปรแกรมการใชคาสงกระโดดออกจากลป”

43

PHP Functions (1) ในการใชงาน PHP นอกเหนอจากการควบคมโปรแกรมให เปนไปตามทตองการแลว ยงมอกสงหนงทมความสาคญและจาเปนใน การเขยนโปรแกรม เพอชวยใหการทางานมประสทธภาพสงมากขน และทางานไดดขน คอ "ฟงกชน (Function)" ฟงกชนคอโปรแกรมยอยทสามารถทาการประมวลผลไดดวยตวเอง และ สามารถคนผลลพธ จากการประมวลนนกลบสโปรแกรมหลก ทเรยกใชฟงกชน นน ฟงกชนของ PHP ม 2 สวนดวยกนคอ 1. ฟงกชนทผใชสรางเอง 2. ฟงกชนทมากบ PHP ซงสามารถเรยกใชงานไดเลย

44

PHP Functions (2) ฟงกชนทผใชสรางเอง PHP มความยดหยนใหผใชสามารถสรางฟงกชนขนมาใชงานไดเองโดยทไมตองคอมไพล การสรางกทาไดโดยอาศยโครงสรางพนฐาน, ตวแปร , คาคงท, โอเปอเรเตอร และการควบคมโปรแกรม สาหรบฟงกชนทผใชสรางเอง จะม 2 แบบคอ 1. ฟงกชนทไมมการสงคาระหวางฟงกชน 2. ฟงกชนทมการสงคาระหวางฟงกชน

Page 12: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

12

45

PHP Functions (3) ฟงกชนทไมมการสงคาระหวางฟงกชน ฟงกชนแบบนผใชจะตองกาหนดชอและขนตอนการทางานของฟงกชนไวทตนของโปรแกรมกอน หลงจากนนจงจะสามารถเรยกใชงานไดโดยมรปแบบดงน Function Func_Name(); { Instructions; } Func_Name(); // เรยกใชงาน

46

ตวอยาง การสรางฟงกชนทไมมการสงคาระหวางฟงกชน <?php Function Welcome() { echo"ยนดตอนรบสเวบไซตของเรา"."<br>"; } Welcome(); // เรยกใชงาน ?>

47

PHP Functions (4) ฟงกชนทมการสงคาระหวางฟงกชน ฟงกชนในลกษณะนจะเปนการสงคาเพอไปคานวณจนไดผลลพธแลวจะสงคากลบออกมา ภายในฟงกชนจะเปนการใชโครงสราง, ตวแปร , คาคงท, โอเปอเรเตอร และอนๆ เมอกาหนดฟงกชนเรยบรอยแลว หลงจากนนกสามารถใชงานไดดวยการสงคาเขาไป โดยรปแบบจะเปนดงน Function Func_Name(parameter); { return [Instructions]; } Func_Name(parameter_value);

48

ตวอยาง การสรางฟงกชนทมการสงคาระหวางฟงกชน <?php Function Dec_to_Bin($dec) //แปลงเลขฐาน 10 เปนฐาน 2 { return DecBin($dec); //ใชฟงกชนทางคณตศาสตรเขามาชวย } Function Bin_to_Dec($bin) //แปลงเลขฐาน 2 เปนฐาน 10 { return BinDec($bin); //ใชฟงกชนทางคณตศาสตรเขามาชวย } echo"เลข 2638961มคา = ".Dec_to_Bin(2638961)." ในเลขฐาน 2<br>"; $Diaw = Dec_to_Bin(2638961); //นาคาทไดจากฟงกชนแรกมาเกบในตวแปร แลวคานวณกลบ echo"เลข ".$Diaw." มคา = ".Bin_to_Dec($Diaw)." ในเลขฐาน 10<br>"; ?>

Page 13: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

13

49

String Functions (1) addslahes() จะทาการเพมเครองหมาย \ (Back Slashes) ใหกบ String ทมสญลกษณ ('), ("), (\) chr() เปนฟงกชนในการแปลงคาตวเลข ASCII กลบมาเปนตวอกษร echo() ใชในการแสดงขอความ สามารถแสดงไดหลายบรรทด และสามารถใชรหสคอบคม String ไดดวย explode() ใชในการแบง String โดยตองกาหนดอกขระทใชแบง เมอแบงเสรจแลวคา String ทถก แบงยอยจะเกบอยในตวแปรอาเรย htmlspecialchars() ใชในกรณทตองการแสดงแทก HTML บน Browser print() ใชในการแสดงขอความคลายกบคาสง echo() sprintf() ใชในการแสดงขอความแตสามารถกาหนดรปแบบได strlen() ใชในการคานวนอกขระทงหมดใน String

50

strpos() ใชในการหาตาแหนงของ String โดยทตาแหนงแรกคอ 0 strrev() ใชในการสลบตาแหนง String จากหลงมาหนา strstr() ใชในการคนหาคาใน String strtolower() ใชในการเปลยน String ใหเปนตวพมพเลกทงหมด strtoupper() ใชในการเปลยน String ใหเปนตวพมพใหญทงหมด str_replace() ใชในการคนหาและแทนท String trim() ใชในการตดชองวางทงหนาและหลง String ucfirst() ใชในการเปลยนตวอกษรตวแรกใหเปนตวพมพใหญ ucwords() ใชในการเปลยนตวอกษรตวแรกของทกคาใหเปนตวพมพใหญ

String Functions (2)

51

Mail Functions เปนฟงกชนทใชในการตดตอกบระบบ Mail ซงมรปแบบในการใช งานทดงตวอยางตอไปน <? $Address = "[email protected]"; $Subject = "Test PHP Mail Function"; $Message = "I Love You"; $From = "[email protected]"; mail($Address,"$Message","From : $From"); echo "Send Mail SuccessFully"; ?>

52

Data Files functions (แฟมขอมล Text Files) (1) fopen() ใชในการเปดแฟมขอมลและสรางแฟมขอมล ซงมโหลดในการทางานดงน r เปดแฟมขอมลสาหรบการอานขอมล r+ เปดแฟมขอมลสาหรบการอานขอมล / บนทกขอมล w สรางแฟมขอมลสาหรบบนทกขอมล w+ สรางแฟมขอมลสาหรบอาน / บนทกขอมล a ใชสาหรบบนทกขอมลตอจากแฟมขอมลเดม a+ ใชตอหรอสรางขอมลเพมเขาไปในแฟมขอมลเดม

Page 14: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

14

53

Data Files functions (แฟมขอมล Text Files) (2) fclose() ใชในการปดแฟมขอมล fputs() ใชในการบนทกขอมล ตรงตวชตาแหนงของขอมล fgets() ใชในการอานขอมล ตรงตวชตาแหนงของขอมล feof() ใชในการตรวจสอบแฟมขอมล โดยในการตรวจสอบนน ถายงไมจบแฟมขอมล ฟงกชนนจะคนคาเปน 0 แตถาจบแฟมขอมลไปแลว ฟงกชนนจะคนคาทไมใช 0 ออกมา

54

Mathematical Functions (1) sin() หาคา Sie ทางตรโกณมตของมมทตองการ cos() หาคา Cosine ทางตรโกณมตของมมทตองการ tan() หาคา Tangent ทางตรโกณมตของมมทตองการ sqrt() หาคารากทสองของคาคงทหรอตวแปร (Square Root) pow() หาคายกกาลงของคาคงทหรอตวแปร log() หาคา log ฐาน n (Natural Logarithm) ของคาคงทหรอตวแปร log10() หาคา log ฐาน 10 ของคาคงทหรอตวแปร max() หาคาสงสด

55

Mathematical Functions (2) min() หาคาตาสด bindec() ใชในการเปลยนเลขฐาน 2 ใหเปนฐาน 10 octdec() ใชในการเปลยนเลขฐาน 8 ใหเปนฐาน 10 hexdec() ใชในการเปลยนเลขฐาน 16 ใหเปนฐาน 10 decbin() ใชในการเปลยนเลขฐาน 10 ใหเปนฐาน 2 decoct() ใชในการเปลยนเลขฐาน 10 ใหเปนฐาน 8 dechex() ใชในการเปลยนเลขฐาน 10 ใหเปนฐาน 16 number_format() ใชในการกาหนดรปแบบการแสดงผลของตวเลข

56

PHP Forms (1) ในการออกแบบฟอรมรบขอมลผานทางหนาเวบเพจนน จะใชภาษา HTML เขามา เปนตวชวยในการทาตรงจดน โดยฟอรมทถกสรางขนมาจะทาการสงคาขอมลทผใชกรอก ขอมล ไปประมวลผลยงไฟล php ทอางองไวทเครองบรการ หรอ Web Server โดยทการเขยน HTML Fome การอางองชอไฟล และการกาหนดวธการสงขอมล ม รปแบบดงน <form method=“วธการสงขอมล” action=“ชอไฟล”> ............. .............แทก HTML Code ในการสรางฟอรม ............. </form>

Page 15: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

15

57

PHP Forms (2) การสรางฟอรมจะเรมการเปดและปดแทก<form>...</form> โดย คาตางๆ ทอยภายในแทก <form> เรยกวา Attribute action ใชในการกาหนดชอไฟล php ทเราจะสงขอมลจากฟอรมประมวลผล Method ใชกาหนดรปแบบในการสงขอมลไปยง Web Server แบบ GET กบ POST GET เปนการสงขอมลใหกบ php ไปพรอมกบ URL เชน test.php?User=Kitisak โดยทชดของสตรงตอทาย URL จะ ถกเกบไวทตวแปร $QUERY_STRING POST เปนการสงขอมลใหกบ php ไปทละบรรทด

58

PHP Forms (3) การสรางชองรบขอมล (Text Box) Textbox เปนการแสดงชองสาหรบใหผใชกรอกขอมลใดๆ ไมวาจะเปนตวอกษรหรอตวเลข สามารถสราง Textbox โดย การเขยนโคด HTML ไดดงน รปแบบ <input type =“text” name =“ชออางอง” size =“ขนาดความยาว”>

ขอมลทปอนจะเหนตามนน

59

PHP Forms (4) การสรางชองรบรหสผาน (Parssword Box) Parssword Box เปนการแสดงชองสาหรบใหผใชกรอกขอมลใดๆ ไมวาจะเปนตวอกษรหรอตวเลข แตเวลากรอกขอมลลงในชองแสดงจะเปน * แทน สามารถสราง Parssword Box โดยการเขยนโคด HTML ไดดงน รปแบบ <input type = “Parssword” name =“ชออางอง” size =“ขนาดความยาว”> ขอมลทปอนจะถกแทนดวยเครองหมาย *

60

PHP Forms (5) การสรางชองรบขอมลขนาดใหญ (Text Area) Text Area เปนการแสดงชองสาหรบใหผใชกรอกขอมลใดๆ ไมวาจะเปนตวอกษรหรอตวเลขเชนเดยวกบ Text Box แต Text Area จะสามารถกรอกขอความไดเปนจานวนมาก สามารถสราง Text Area ไดโดยการเขยนโคด HTML ดงน รปแบบ <textarea name = “ชออางอง” rows = “จานวนแถว” cols=“จานวนคอลมน”></textarea> เหมาะสาหรบการปอนขอมลทมขนาดมากๆ เชน รายละเอยด ความคดเหน

Page 16: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

16

61

PHP Forms (6) การสรางปมสงขอมล (Submit Button) ป ม Submit ใชสาหรบกดเพอสงขอมลในแบบฟอรมไปยง URL ทปรากฏในแอททรบวต action ของ FORM สามารถสรางปม

Submit ไดโดยการเขยนโคด HTML ดงน รปแบบ <input type = “Submit” value = “ขอความแสดงบนป ม”>

62

PHP Forms (7) การสรางยกเลกขอมล (Reset Button) ป ม Reset ใชสาหรบคนคาของขอมลทอยทก element ใน ฟอรมใหเปนคาเรมตน สามารถสรางปม Reset ไดโดยการเขยนโคด HTML ดงน รปแบบ <input type = “Reset” value = “ขอความแสดงบนป ม”>

63

PHP Forms (8) การสรางตวเลอกรายการ (List Box) List Box เปนตวเลอกทอนญาตใหผใชเลอกเพยงรายการใดรายการหนงจากหลายรายการเหลานน โดยจะปรากฏเปน List รายการใหเลอกเมอ Click mouse ทแถบเมนดานขาง รปแบบ กรณเลอกไดรายการเดยว <selete name = “= ชออางอง”> <input value = “คาทตองการจดเกบ”>ขอความทตองการแสดง</option> </select>

64

PHP Forms (9) รปแบบ กรณเลอกไดหลายรายการเดยว (โดยการกดปม <Ctrl> หรอ <Shift> คางไวแลว Click mouse เลอก) <select name = “ชออางอง[ ]” multiple> <option>ขอความทตองการแสดง </select>

Page 17: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

17

65

PHP Forms (10) การสรางรายการเลอกทางใดทางหนง (Radio Box) Radio Box เปนตวเลอกทใหผใชเลอกเพยงขอใดขอหนงจากหลาย รายการเหลานน เมอเลอกรายการใดรายการหนงแลวจะไมสามารถยกเลกรายการได แตสามารถยายไปเลอกรายการอนในกลมเดยวกนได สามารถสราง Radio Box ไดโดยการเขยนโคด HTML ดงน รปแบบ <input type = “radio” name = “ชออางอง” value = “คาทตองการจดเกบ”>ขอความแสดง

66

PHP Forms (11) การสรางรายการเลอกแบบ Check Box Check Box เปนการเลอกรายการจากกลมรายการเชนเดยวกบ Radio Button แต Check Box สามารถเลอกไดหลายรายการ สามารถสราง Check Box โดยการเขยนโคด HTML ดงน รปแบบ <input type = “checkbox” name = “ชออางอง” value = “คาทตองการจดเกบ”>ขอความแสดง

67

Cookies (1) Cookies คอ ขอมลขนาดเลกทสรปตสามารถเกบไวบนเครองฝงไคลเอนทได ประโยชนของการใชงาน Cookies คอใชเกบขอมลเกยวกบผใช โดยเมอผใชกลบมา ใชงานเวบเพจหนานนอกครง เวบเพจนนจะสามารถระบถงผใชและจดเตรยมเพจท เหมาะสมกบการใชงานใหอตโนมต สามารถตดตง Cookies บนเครองผใชโดยการ สง HTTP เฮดเดอรทบรรจขอมลทอยในรปแบบดงน Set – Cookies: NAME =VALUE;[expires = DATE;][path = PATH ;][domain = DOMAIN_NAME;][secure]

68

Cookies (2) การตดตง Cookies จาก PHP PHP มคาสงในการเรยกใช Cookies ดงน ฟงกชน setcookie ( ) เปนฟงกชนสาหรบกาหนดคาของ Cookies คาพารามเตอรตางๆ ใน ฟงกชน setcookie ( ) นน จะมความหมายเดยวกนกบการ Set –Cookies ใน HTTP เฮดเดอร รปแบบ Int setcookie (string name [,string value [, int expire [, string path [, string domain [, int secure]]]]])

Page 18: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

18

69

ตวอยาง การใชฟงกชน setcookie ( ) 1. <? 2. setcookie (“ck”, “Hello, My Cookie!”,time()+3600, “/work/”); 3. echo $HTTP+COOKIE_VARS[“ck”]; 4. ?>

70

Cookies (3) ฟงกชน session_set_cookie_params ( ) ฟงกชนนจะทาการกาหนดคาพารามเตอรตางๆ ให cookie ดวย session รปแบบ void session_set_cookie_params (int lifetime [, string path [, string domin]])

71

Cookies (4) ฟงกชน session_get_cookie_params ( ) เปนฟงกชนทรบคาพารามเตอรตางๆ จาก cookie ดวย session โดยจะสงคากลบมาเปน array ทเกบคา lifetime, path และ domain รปแบบ array session_get_cookie_params (void)

72

การเกบ Session ID โดยทวไปแลว PHP จะใช Session เพอเรยกใชงาน cookie อกท ซง cookie นสามารถเกบคา session ID ไดดวย สวนอกวธหนงทใชในการเกบ session ID คอ การรวม session ID เขากบ URL วธน Session ID จะถกฝงเขากบ link และ สงไปพรอมกน โดยท session ID จะถกเกบเปนตวแปรคาคงทชอ SID การสง วธนสามารถเพมเขาไปในสวนทายของ link ซงจะคลายกบวธการ GET พารามเตอร เชน <A HREF = “link.php?<? = SID?>”>

Page 19: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

19

73

PHP Session Session ใน PHP จะทางานดวย Session ID ซงไดมาจากการสมตวเลข Session ID ถกสรางขนโดย PHP และเกบไวบนเครองของผใชตามอาย Session ซงสามารถสงไปกบ URL ไดเลย Session id จะทาหนาทคลายกบคยทอนญาตใหใชไดกบตวแปรเฉพาะเทานน ตวแปรดงกลาว คอ ตวแปร Session รายละเอยดของตวแปรเหลาน จะเกบไวทเซรฟเวอร สวน Session ID เปนขอมลเดยวทปรากฏบนฝงไคลเอนตในชวงเวลาทผใชตดตอไปยง Session ID จะปรากฏผานทาง URL ซงชวยใหสามารถเขาถงตวแปร Session ทเกบบนเซรฟเวอร สาหรบ Session นนๆได โดยทวไปแลวตวแปร Session จะเกบใน Flat file บนเซรฟเวอร 74

การสรางและการจดการ Session ม 4 ขนตอน ดงน 1. การเรมตน Session 2. การกาหนดตวแปร Session 3. การใชตวแปร Session 4. การยกเลกตวแปร และการทาลาย Session

75

การเรมตน Session กอนทจะใชฟงกชนการทางานของ Session นน จะตองเรยกใช ฟงกชนสาหรบเรมตน Session กอน การเรมตน Session ดวย Session_start() ใชสาหรบการเรมตน session โดยจะตรวจสอบวาม Session ID อย แลวหรอไม ถามอยแลวจะโหลดตวแปร Session ทสามารถใชงานได รปแบบ ดงน

session_start() 76

การกาหนดตวแปร Session การกาหนดตวแปร Session สามารถทาไดโดยใชฟงกชน Session_register() ซงจะทาใหสครปตอนๆสามารถใชกบตวแปร Session ตวเดยวกนนได ฟงกชน Session_register() มรปแบบ ดงน

Session_register(“name”)

Page 20: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

20

77

การกาหนดคาใหกบตวแปร Session หลงจากลงทะเบยนตวแปร Session โดยใชฟงกชน Session_register() สามารถกาหนดคาใหกบตวแปรนนได โดยมรปแบบการใชงาน ดงน ** Session’s name หมายถง ชอของตวแปร Session ทจะกาหนด สามารถกาหนดไดหลายตว Session’s value หมายถง คาของ Session ทตองการกาหนดใหกบตวแปร

$_session[“Session’s name”] = “Session’s value”

78

ตวอยาง การกาหนดคาใหกบตวแปร Session 1. <?php 2. session_start(); 3. $_session [“count”]=“50”; 4. echo “คณเขาชมเวบเพจหนานเปนจานวน “.”“.$count.” “.” ครง”; 5. ?>

79

การใชตวแปร Session การเรยกใชตวแปร Session สามารถทาได 2 วธ คอ 1. การเรยกใชตวแปรแบบวธเดยวกบการเขาถงตวแปรทวไป โดยวธนสามารถเขาไปกาหนดในไฟล php.ini ทคา register_globals ใหเปน on 2. การเรยกใชตวแปรผานทาง associative array $HTTP_SESSION_VARS เชน ตวแปร Session นไมสามารถถกเขยนคาทบดวยขอมล GET หรอ POST ซง นบเปนคณสมบตทดในการรกษาความปลอดภย

$HTTP_SESSION_VARS[“var”];

80

การตรวจสอบตวแปร Session เนองจากตวแปรทวไปสามารถสรางโดยผใชผานทางวธ GET หรอ POST ได ดงนน จงไมสมควรทจะตรวจสอบตวแปร Session ดวยฟงกชน isset() sหรอ emply() แตควรใชฟงกชน session_is_registered() ในการตรวจสอบตวแปร session แทน ฟงกชนตรวจสอบตวแปร โดยท name หมายถง ชอตวแปร session ทตองการคนหา

bool session_is_registered(string name)

Page 21: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

21

81

ตวอยาง การตรวจสอบตวแปร Session <? Session_register (“count”); if(session_is_registered(“count”)){ echo “ตวแปร session count ถกสรางแลว <br>”; echo “คณเขาชมเวบเพจหนานเปนจานวน”.$count++.

“ครง”; } else echo “ไมพบตวแปร session count”; ?> 82

การยกเลกตวแปร และการทาลายตวแปร Session ฟงกชน Session_unregister() เมอสรางตวแปร Session แลวหากไมตองการตวแปรนนอก สามารถยกเลกดวยฟงกชน โดยท name หมายถง ชอของตวแปร Session เมอตองการจะปด Session ควรจะทาการยกเลกตวแปร Session ทกตวกอน แลวจงปด Session ดวยฟงกชน Session_destroy()

session_unregister(name)

83

การยกเลกตวแปร และการทาลายตวแปร Session ฟงกชน Session_destroy() ฟงกชนสาหรบปดการเชอมตอ Session โดย void หมายถง ชอของตวแปร Session

Session_destroy(void);

84

Class และObject ของ PHP Class หรอ Object เปนโครงสรางของโปรแกรมทรวบรวมขอมล และฟงกชนไวดวยกนอยางเปนหมวดหม โดยในแตละ Class นนจะม ขอมลและ Method สาหรบจดการโครงสรางขอมลนนๆ โครงสราง Class การสราง Class คอการสรางโครงรางของขอมลและฟงกชนทเกยวของเทานนเมอตองการใชงาน ผใชจะตองสรางตวแปรและกาหนดใหเปนขอมลประเภท Class ทกาหนด โครงสรางของ Class จะประกอบดวย ขอมล Method ตางๆ และจะม Method พเศษอนหนงซงจะเปน Construction ทจะถกเรยกเมอมการสราง Class ทงนฟงกชนทเปน Construction จะตองมชอเดยวกนกบ Class เสมอ

Page 22: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

22

85

ตวอยางการสราง Class <? class Queue { var $lists; // the list for queue var $max; // the max of queue var $curr; // the max of queue function Queue($maxlist = 100) { // Construction $max=$maxlist; $curr=0; } function enQueue($data) { // enQueue Method if ($curr==$maxlist) return -1 ; // Queue is full else { $lists[$curr++] = $data; } } function deQueue($data) { // deQueueMethod if ($curr==0) return -1 ; // Queue is empty else { $data = $lists[$curr--]; } return $data; } } $queue1 = new Queue(10); $queue2 = new Queue(); $queue1->enQueue("data1"); $queue2->enQueue("data2"); ?> 86

การสราง Class ใหมจาก Class เดม นอกจากนเรายงสามารถทจะสราง class ใหมทมพนฐานมาจาก Class เดมทมอยไดอกดวย ซงเราเรยกการทางานในลกษณะนวา การ Derive Class ซงการเรยกใชจะเขยนในทานองเดยวกนกบการ Extend Class ของ Java ดงตวอยางแสดงการสราง Queue แบบใหมทสามารถจะดจานวนทวางทเหลอใน Queue ได ทงนการอางองถง Class ทกาลงทางานดวยเราจะใชตวแปรชอ $this เสมอ

87

ตวอยาง <? class Ext_Queue extends Queue{ function Ext_Queue($maxlist = 100) { // Construction $this->Queue($maxlist); } function RemainQueue() { // enQueue Method return max-curr; } } $queue1 = new Ext_Queue(10); echo $queue1->RemainQueue(); ?> **ทงนขอควรระวงคอ Class ท Derived มาใหมนจะไมมการเรยก Constructor ของ Class ทเปนตนแบบมาดวย 88

การใช PHP ตดตอกบฐานขอมล สรางฐานขอมลโดยใช DBMS ตางๆ เชน Access และ

SQL server กาหนด Data Source Name ใน ODBC ทจะใชตดตอกบฐานขอมลนน ใช ADO Data Component ในการตดตอกบ Data

Source Name

Page 23: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

23

89

การเขาถงขอมลจากฐานขอมลของ PHP Application DBMS ODBC SQL SQL

Data Data

90

การใช PHP ตดตอกบฐานขอมล การใช PHP ตดตอกบฐานขอมล ม 2 สวน 1. โดยสวนแรกใช SQL server ซง SQL server จะสนบสนนผใช UNIX และ Windows 2. จะเปนการตดตอโดยใช ODBC ซงการใช ODBC จะจากดอยเฉพาะผใชงาน Windows เทานน

91

การเพมขอมลเขาสตาราง รปแบบ INSERT INTO<ชอตาราง>(field1,field2)VALUES(data1,data2) การเรยกดขอมลจากตาราง รปแบบ SELECT<field> FROM<ชอ>

คาสงภาษา SQL ทจาเปนตองใช(1)

92

คาสงภาษา SQL ทจาเปนตองใช (2) การปรบขอมลในตาราง รปแบบ UPDATE<ชอตาราง> SET<field>=<ขอมล> WHERE<เงอนไข>

Page 24: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

24

93

คาสงภาษา SQL ทจาเปนตองใช(3) การเปดการตดตอกบฐานขอมล MySQL การสราง Connection ในการเปดการตดตอกบฐานขอมล MySQL เราจะใชฟงกชน mysql-connect() โดยตองระบคาอากวเมนต 3 ตว คอ “ชอ Host” , “ชอผใช” , “รหสผาน”

94

คาสงภาษา SQL ทจาเปนตองใช(4) การเลอกฐานขอมลมาใชงาน (Select Database) หลงจากสราง Connection ไดแลว เราตองเลอกฐานขอมลทจะทางานดวย โดยการเรยกใชงานฟงกชน mysql-select-db() ซงตองระบอากวเมนต 2 ตว คอ “ชอฐานขอมล” , “Connection ทไดสรางไว”

95

คาสงภาษา SQL ทจาเปนตองใช(5) การปดการตดตอกบฐานขอมล MySQL การยกเลกหรอการปด Connection ทตดตอกบฐานขอมล MySQL เราจะใชฟงกชน mysql-close() โดยระบคาอากวเมนต 1 ตว คอ “Connection” ทตองการตดตอ

96

ตดตอฐานขอมล Access ดวย ODBC การทเราจะเขยน php ตดตอกบฐานขอมล Microsoft Access เราจะตองตดตอผาน ODBC ซงเปน Driver ของการเชอมตอฐานขอมล ซงการตดตอผาน ODBC จะตองมการ Set ชอ DSN เพอเปนชออางองในการตดตอกบฐานขอมลนน ๆ

Page 25: PHP (Personal Home Page Tool).pptblog.bru.ac.th/wp-content/uploads/bp-attachments/9507/PHP.pdf · 3+3 +\shuwh[w 3uhsurfhvvruv µ¦¦oµ Áª ÈÁ¡ ªo¥ 3+3 à ¥ ° ¼«´ · Í

PHP: Hypertext Preprocessors

25

97

ฟงกชนทใชตดตอฐานขอมล Access ดวย ODBC (1) ฟงกชน ความหมาย odbc_close() ปดการเชอมตอกบฐานขอมล odbc_close_all() ปดการเชอม ODBC แนนอน odbc_commit() สงทาคาสงกบ ODBC odbc_connect() เชอมตอกบฐานขอมล หรอ datasource odbc_do() เตรยมและเอกซควสคาสง SQL odbc_exec() เตรยมและเอกซควสคาสง SQL odbc_execute() เอกซควสคาสงทเตรยมไวแลว

98

ฟงกชนทใชตดตอฐานขอมล Access ดวย ODBC(2) ฟงกชน ความหมาย odbc_fetch_into() ดงขอมลครงละ 1 Reccord และเกบขอมลลง Array odbc_fetch_row() ดงขอมลครงละ 1 Reccord odbc_filed_name() แสดงชอฟวส odbc_filed_type() แสดงประเภทของฟวส odbc_filed_len() แสดงคาขนาดของฟวส odbc_num_files() นบจานวนฟวส odbc_pconnect() เปดการเชอมฐานขอมลทมอย

99

ฟงกชนทใชตดตอฐานขอมล Access ดวย ODBC(3) ฟงกชน ความหมาย odbc_perpare() เตรยมคาสงสาหรบการเอกซควส odbc_num_rows() หาจานวน Reccord ของขอมล odbc_result() แสดงขอมลอกมา odbc_result_all() แสดงขอมลเปนตารางของ Html odbc_rollback() ทาคาสงอกครง odbc_setoption() ปรบแตงการตงคา Odbc จะใหคา false ถาเกด ขอผดพลาดนอกจากเปนจรง