ปรับปรุง : 2562-10-24 (เตรียมชั้นเรียน) |
บทเรียน 1. การใช้ข้อมูลจากอาร์เรย์ 2. การจัดการข้อมูลในแฟ้มตัวอักษร 3. การจัดการข้อมูลในมายเอสคิวแอล 4. การใช้จาวาสคริปต์ในฟอร์ม 5. การใช้งานเซสชัน และคุกกี้ 6. การจัดการตัวนับ 7. การจัดการแฟ้ม และอัพโหลด 8. การรับส่งอีเมลด้วยพีเอชพี 9. การเขียนภาพกราฟฟิก 10. การใช้เชลคอมแมน 11. ระบบแกลลารี่อย่างง่าย 12. ระบบยืนยันตัวตนด้วยภาพอักษร 13. ระบบซีเอ็มเอส 14. ระบบสมาชิก 15. ระบบเว็บบอร์ด 16. ระบบเว็บโฮสติ้ง 17. การสร้างระบบติดตั้ง Work Shop - สร้างฐานข้อมูล และตารางนักเรียน - การแปลงข้อมูล (Data Convertion) - การสร้างฟอร์ม และรับค่าจากฟอร์ม |
|
เอกสารคู่มือแบบออฟไลน์ (.chm หรือ .htm) | |
แฟ้มเอกสารควรมีไว้ศึกษา
+ php_manual_chm.zip (14 MB) + php_manual_en.tar.gz (3 MB) + refman-5.1-en.chm (4 MB) รวมแหล่งเอกสาร PHP - http://www.php.net/download-docs.php - Online : http://www.php.net/manual/en/ - Online : http://dev.mysql.com/doc/ |
|
ฟังก์ชันที่ควรจดจำ | ||
|
T01. ความรู้เบื้องต้นเกี่ยวกับพีเอชพี (Professional Home Page) | ||
1. พีเอชพีมีหลายรุ่น และต้องติดตั้งอยู่บน Web Server เช่น IIS หรือ Apache 2. ภาษานี้ถูกพัฒนาอย่างต่อเนื่อง มีโครงสร้างเหมือนภาษา C และนำไปใช้ได้ฟรี 3. netstat -a ใน DOS ใช้ดู Port 80 ที่ LISTENING 4. ผู้ดูแลระบบควรฝึก เปิด และ ปิดบริการต่าง ๆ ด้วยความเข้าใจ 5. ฟังก์ชัน phpinfo() ทำหน้าที่รายงานข้อมูลเกี่ยวกับ php module + environment value 6. code เดียวกันอาจใช้ไม่ได้กับทุก server เช่น $x หรือ $_GET["x"] ขึ้นอยู่กับหลายองค์ประกอบ 7. กำหนด register_globals = On ใน php.ini ทำให้ใช้ $x หรือ $_GET["x"] ได้ 8. ตัวอย่าง code ทำซ้ำ คือ for ($i=1;$i<=5;$i++) echo $i . "\n"; 9. ตัวอย่างโปรแกรม x.php <? echo 5; // phpinfo(); ?> 10. ตัวอย่างผลการประมวลผลผ่าน command line เช่น DOS>php x.php Content-type: text/html X-Powered-By: PHP/4.3.9 5 11. ตัวอย่างทดสอบ POST GET และ REQUEST <form action="" method=post> <input name=a value='bb'> <input type=submit> </form> <a href="?a=cc">click</a> <? echo $a.$_GET["a"].$_POST["a"].$_REQUEST["a"]; // bbccbbbb phpinfo(); ?> 12. ตัวอย่างฟังก์ชันที่สร้างขึ้นใช้งาน $x = 5; echo a(100,200); function a($a1,$a2) { global $x; $t = $a1 + $a2 + $x; return $t; } | หมายเหตุ 1. $_ENV["REMOTE_ADDR"] คืออะไร 2. php in command line ช่วยตรวจสอบข้อมูล 3. DOS>php x.php > x.htm คืออะไร 4. DOS>explorer x.htm 5. เขียน พิมพ์ 1 ถึง 10 ใน command line 6. เขียน POST และ GET 7. เขียน $_ENV["QUERY_STRING"]; |
T03. การติดตั้งเว็บเซิร์ฟเวอร์ | ||
1. Web Server คือ เครื่องบริการเว็บ มักเปิดบริการผ่าน port 80 2. โดยปกติการติดตั้ง apache + php + mysql และ config มีความซับซ้อน 3. โปรแกรม WAMP = Windows + Apache + MySQL และ PHP เช่น appserv, foxserv, wmserver, phpdev, phpTraid, nusphere หรือ thaiabc 4. การสร้างโปรแกรมติดตั้ง สามารถใช้ NSIS ที่ใครก็ทำได้ (ขั้นตอน) 5. แฟ้ม c:\thaiabc\apache\apache2\conf\httpd.conf 6. ตัวแปรใน httpd.conf ที่น่าสนใจ DocumentRoot, Listen, DirectoryIndex, Virtualhost 7. แก้ไข httpd.conf เพื่อให้บริการ php ใน apache | หมายเหตุ 1. httpd.conf คืออะไร อยู่ห้องใด 2. ตรวจ PORT 80 ว่าเปิดหรือไม่ |
T13. ตรวจสอบข้อมูลก่อนส่ง | ||
1. เพิ่มฟอร์มรับระเบียนข้อมูล แบบ refresh <form action=''> <script language=JavaScript> <!-- function getvar(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } } document.write("<input name=a1>"); document.write("<a href=?t=2>#</a><br>"); if (getvar("t") > 0) { for(j=2;j<=getvar("t");j++) { document.write("<input name=a" + j + ">"); document.write("<a href=?t=" + (j + 1) +">#</a><br>"); } } --> </script> <input type=submit> </form> 2. เพิ่มฟอร์มรับระเบียนข้อมูล แบบไม่ refresh <form name=f action='' method=get> <input type=checkbox name=a selected> <div id=frmout> <input name=a1><a href='javascript:;' onclick='getvar(2)'>#</a><br> </div> <input type=submit></form> <script language=JavaScript> <!-- function getvar(variable) { x = document.getElementById("frmout"); for (var j=variable;j<=variable;j++) { x.innerHTML +="<input name=a" + j + ">"; x.innerHTML +="<a href='javascript:;' onclick='getvar(" + (j + 1) +")'>#</a><br>"; } } --> </script> 3. ตัวอย่างตรวจความยาวตัวอักษร ด้วย javascrpt + php <script type="text/javascript"> function chklen() { var n = document.f.n; if (n.value.length > 3) document.f.submit(); else alert("should more than 3"); } </script> <? if (!isset($_GET["n"])) { ?> <form name=f action="" method=get> your name :<input name=n> <input type=button value=send onclick={chklen();}> </form> <? exit; } ?> <a href="?">Logout</a> | หมายเหตุ 1. ท่านว่าแบบใดเหมาะกับท่าน เพราะอะไร 2. 2 บรรทัดนี้เขียนอย่างไรให้ถูกต้อง # |
T31. ศึกษาระบบสมาชิก | ||
1. ศึกษา Intranet School หมายเหตุ 1. ถ้าเพิ่มวิชาใหม่ต้องทำอย่างไร 2. ถ้ามีข้อมูลนักเรียนใน .mdb จะนำมาใช้อย่างไร 3. ถ้าเปลี่ยนชื่อแฟ้มทั้งหมด ต้องแก้ไขอะไรบ้าง |
T32. ศึกษาระบบเว็บบอร์ด | ||
1. ศึกษา webboard.php 1.3c หมายเหตุ 1. ตัวแปร $webmaster_password ถูกใช้เมื่อใด 2. ตัวแปร $edit_topic_password ถูกใช้เมื่อใด 3. ตัวแปร $program_type มีค่าอะไรได้บ้าง 4. ฝึกใช้ $file_header และ $file_footer (x.htm) |
T33. ศึกษาระบบเว็บโฮสติ้ง | ||
1. ศึกษา filemanager.php ของ thainame.net หมายเหตุ 1. เปลี่ยนค่า $admin_password อย่างไร 2. ลบสมาชิกด้วยวิธีใด 3. กำหนดสกุลของแฟ้มที่อนุญาตผ่านตัวแปรใด 4. กำหนดประเภทผู้ใช้ด้วยวิธีใด |
T34. การสร้างระบบติดตั้ง | ||
1. โปรแกรมสร้างตัวติดตั้งชื่อ NSIS = Nullsoft Scriptable Install System 2. Download จาก http://nsis.sourceforge.net/Download 3. การสร้างตัวติดตั้ง 5 ขั้นตอน หมายเหตุ 1. บอกประโยชน์ของ NSIS 2. ใช้ NSIS ง่ายกว่าไม่ใช้อย่างไร |
T35. ฝึกติดตั้งระบบที่พัฒนาขึ้นในเครื่องอื่น | ||
1. ชื่อแฟ้ม เช่น x.nsi, log1.exe หรือ log1setup.exe เป็นเพียงตัวอย่าง ท่านเปลี่ยนได้ |
Work Shop 1 : สร้างฐานข้อมูล และตารางนักเรียน | ||
1. ตัวอย่างตาราง 3 ตารางเกี่ยวกับระบบนักเรียน [student97.mdb] ? ทั้ง 3 ตารางนี้มีอะไรที่น่าสงสัยบ้าง .. เพราะคำถาม ก็คือคำตอบในตัว 2. ตัวอย่าง SQL ที่ใช้สร้างตาราง create database students; use students; create table student(sid varchar(20), sname varchar(50)); create table regist(ryear int, rsem int, subj varchar(8),sid varchar(20), score int,grade varchar(3)); create table subject(subj varchar(8), subjname varchar(30)); 3. ตัวอย่างการใช้ SQL ใน PHP $c = mysql_connect("127.0.0.1:3306","admin","p"); mysql_query("set names tis620"); if (!$result=mysql_query("create database students;")) echo "create db : error"; else { $sql = "create table student(sid varchar(20), sname varchar(50));"; $result = mysql_db_query("students",$sql); $sql = "create table regist(ryear int, rsem int, subj varchar(8),sid varchar(20), score int,grade varchar(3));"; $result = mysql_db_query("students",$sql); $sql = "create table subject(subj varchar(8), subjname varchar(30));"; $result = mysql_db_query("students",$sql); echo "create db & tb : ok"; } mysql_close($c); 4. ตัวอย่างการใช้ SQL ใน PHP เพิ่มข้อมูล $c = mysql_connect("127.0.0.1:3306","admin","p"); mysql_query("set names tis620"); $ar = array( "insert into student values('1','นาย สมปอง สมชาย')", "insert into student values('2','นาย กะทิ ชาวเกาะ')", "insert into regist values(2550,1,'1','1',52,'ง')", "insert into regist values(2550,1,'1','2',81,'ก')", "insert into regist values(2550,1,'2','1',62,'ค')", "insert into regist values(2550,1,'2','2',85,'ก')", "insert into regist values(2550,2,'3','1',55,'ง')", "insert into regist values(2550,2,'3','2',66,'ค')", "insert into subject values('1','คณิต')", "insert into subject values('2','วิทย์')", "insert into subject values('3','อังกฤษ')"); // foreach ($ar as $v) echo $v."<br>"; foreach ($ar as $v) $result = mysql_db_query("students",$v); $result = mysql_db_query("students","select * from student"); echo mysql_num_rows($result); mysql_close($c); 5. ตัวอย่างนับระเบียน $c = mysql_connect("127.0.0.1:3306","admin","p"); $result = mysql_db_query("students","select * from student"); echo mysql_num_rows($result); mysql_close($c); |
Work Shop 2 : การแปลงข้อมูล (Data Convertion) | ||
1. มีข้อมูลใน Microsoft Access เช่น student97.mdb 2. คัดลอกข้อมูลจากตารางใน Microsoft Access แล้ว Paste ลงไปใน Microsoft Excel 3. พิมพ์สูตรนำข้อมูลมารวมกันเป็น SQL Command ใน Microsoft Excel |
Work Shop 3 : การสร้างฟอร์ม และรับค่าจากฟอร์ม | ||
1. ตัวอย่างจัดเรียงของข้อมูลที่รับเข้ามา <form action='' method=get> <input name=a2 value=5> <input name=a1 value=9> <input name=a3 value=8> <input type=submit> </form> <? foreach($_REQUEST as $v) echo $v; // 598 ksort($_REQUEST); foreach($_REQUEST as $v) echo $v; // 958 sort($_REQUEST); foreach($_REQUEST as $v) echo $v; // 589 ?> 2. ตัวอย่างสร้างฟอร์มแบบมีลำดับ <form action='' method=get> <? for($i=8;$i<=12;$i++) { ?> <input name=a<? echo sprintf("%03d",$i); ?> value=<?=$i?>> <? } ?> <input type=submit> </form> <? foreach($_REQUEST as $k=>$v) echo $k; // a008a009a010a011a012 ?> 3. ตัวอย่างรับค่าจาก textarea <form action='' method=post> <textarea name=t> a,b,c,d e,f,g,h,i </textarea> <input type=submit> </form> <? $ar = split("\r\n",$_REQUEST["t"]); foreach($ar as $v) { if(strlen($v) > 0) echo $v."<hr>"; } echo count($ar); // 3 ?> 4. ตัวอย่างรับ SQL จาก textarea (คล้าย textarea ของ phpmyadmin) <body bgcolor=#ffffdd> <b>database</b>: test <b>table</b>: student, subject, regist<br> <form action=''> <input name=db value=students> <input type=checkbox name=select checked> <input type=submit value=query><br> <textarea name=q rows=6 cols=100> <? if (isset($_REQUEST["q"])) echo $_REQUEST["q"]; else { ?> select * from student,subject,regist where student.sid = regist.sid and regist.subj = subject.subj order by regist.ryear,regist.sid <? } ?> </textarea> </form> <hr> <? $c = mysql_connect("127.0.0.1:3306","admin","p"); if (!isset($_REQUEST["db"])) $db = "students"; else $db = $_REQUEST["db"]; if (isset($_REQUEST["q"]) && strlen($_REQUEST["q"]) > 5) { $q = stripslashes($_REQUEST["q"]); } else { $q = "select * from student"; } $result = mysql_db_query($_REQUEST["db"],$q); if (isset($_REQUEST["select"])) { while($row = mysql_fetch_array($result)) { for($i=0;$i<count($row);$i++) if(isset($row[$i])) echo $row[$i]."_"; echo "<hr>"; } } mysql_close($c); ?> |
โครงการพัฒนาโปรแกรมเมอร์ทางการศึกษาระยะที่ 2 หลักสูตร การสร้างเว็บแอพลิเคชันด้านการบริหาร และจัดการการศึกษา PHP & MySQL (2 - 5 เมษายน 2550) รายชื่อผู้เข้ารับการอบรม
| ณ แม่ต่ำการ์เด้นท์ฮิลล์รีสอร์ท อ.เมือง จ.ลำปาง teacher.txt
ผู้รับการอบรม : อภิโชค สันตะจิตต์ +
บรรลังษ์ ลังการัตน์ +
มงคล ใบแสง +
ชาติ หมีเอี่ยม +
ชาติ ตันกุระ +
ธรรมนูญ เสาร์แก้ว +
พีรศิษฐ์ เผ่าต๊ะใจ +
ชูเกียรติ เมืองกรุง +
สัญญา เสียงหวาน +
สุณา รัตนชีวพงศ์ +
ศักดิ์ณรงค์ พรมสะวะนา +
ประสิทธิ์ วินันท์ +
วิเชียร ยาสมุทร +
เอกรักษ์ ชัยวงค์ +
สุทิน ศรวิจิตร์ +
วิเชษฐ์ ลังกากาศ +
สิทธิกร ตุ้ยเต็มวงศ์ +
ปรีดาภรณ์ ตาลี
วิทยากร : บุรินทร์ รุจจนพันธุ์ + วิเชพ ใจบุญ
|
| |
+ ผู้สนับสนุน + รับผู้สนับสนุน |
|
"Imagination is more important than knowledge" - Albert Einstein |
|
|
|
|
|