ปรับปรุง : 2564-11-11 (เพิ่มรูปแบบ) |
|
บทเรียน
1. อาร์เรย์ (Array) 2. แฟ้มข้อความ (Text File) 3. มายเอสคิวแอล (MySQL) 4. การเก็บภาพในมายเอสคิวแอล (Image) 5. ไมโครซอฟต์แอคเซส (Microsoft Access) 6. เขียนแฟ้มภาพ (PNG Header) 7. ส่งข้อมูลเข้าเครื่องบริการ (Uploading) 8. การตรวจสอบ (Verification) | แนะนำเว็บ (Web Guides)
- http://www.thaiall.com/webserver - http://www.thaiall.com/html/html.htm - http://www.thaiall.com/php - http://www.thaiall.com/mysql - http://www.thaiall.com/source - http://www.thaiall.com/programming - http://www.thaiabc.com - http://www.php.net |
1. อาร์เรย์ (Array)
- ตัวแปรชื่อเดียว แต่มีได้หลายสมาชิก โดยอาศัยเลขระบุสมาชิก - ตัวบ่งชี้สมาชิกของอาร์เรย์สามารถเป็นข้อความได้ | แบบฝึกหัด ? สร้างอาร์เรย์เก็บชื่อภาพ และเรียกใช้ ? สร้างอาร์เรย์เก็บชื่อแฟ้มเอกสาร และเรียกใช้ |
ex.0101 zz0101.php |
ประกาศอาร์เรย์ทีละค่า
| ตัวอย่างผลลัพธ์ หรืออธิบาย tom 65 97 161 # การสร้างอาร์เรย์และเรียกใช้ # กำหนดค่าของอาร์เรย์ทีละบรรทัด # เลขลำดับของสมาชิกตัวแรกเริ่มที่ 0 |
ex.0102 zz0102.php |
ประกาศอาร์เรย์ครั้งเดียว
| ตัวอย่างผลลัพธ์ หรืออธิบาย tom 65 97 161 # กำหนดค่าของอาร์เรย์บรรทัดเดียว # array() เป็นฟังก์ชันใช้ประกาศค่าอาร์เรย์ |
ex.0103 zz0103.php |
ฟังก์ชันแปลง ASCII กับอาร์เรย์
| ตัวอย่างผลลัพธ์ หรืออธิบาย a 65 # chr ใช้แปลงรหัส Ascii เป็นตัวอักษร # ord ใช้แปลงตัวอักษร เป็นเลขลำดับ |
ex.0104 zz0104.php |
การประกาศแบบต่าง ๆ
| ตัวอย่างผลลัพธ์ หรืออธิบาย tom65one6 # count ใช้นับจำนวนสมาชิกในอาร์เรย์ # สมาชิกตัวสุดท้าย คือ (จำนวนสมาชิก - 1) |
ex.0105 zz0105.php |
แสดงการแยก และรวมอาร์เรย์
| ตัวอย่างผลลัพธ์ หรืออธิบาย Ia Iaamaaaboy # explode สามารถนำ String มาแยกเป็น Array # implode สามารถนำ Array มารวมเป็น String # explode ให้ผลลัพธ์เป็น Array คล้าย Split |
ex.0106 zz0106.php |
foreach กับอาร์เรย์
| ตัวอย่างผลลัพธ์ หรืออธิบาย tom6597161I am a boy # foreach สามารถท่องไปใน array ได้ # split สามารถแยกข้อความมาเป็น array ได้ |
ex.0107 zz0107.php |
แสดงภาพจาก array
| ตัวอย่างผลลัพธ์ หรืออธิบาย # img เป็นคำสั่งนำชื่อภาพมาแสดง |
ex.0108 zz0108.php |
แสดงข้อมูลพจนานุกรม
| ตัวอย่างผลลัพธ์ หรืออธิบาย ant = มดเป็นแมลงชนิดหนึ่ง cat = แมวเป็นสัตว์สี่เท้า dog = สุนัข(หมา)เป็นสัตว์สี่เท่าไม่ชอบแมว fish = ปลาเป็นสัตว์น้ำ # ใช้อาร์เรย์เก็บข้อมูลแบบกำหนด key |
ex.0109 zz0109.php |
พจนานุกรมแบบเลือกคำจาก select
| ตัวอย่างผลลัพธ์ หรืออธิบาย cat = แมวเป็นสัตว์สี่เท้า # ถ้า click cat ก็จะได้ผลตามตัวอย่าง |
ex.0110 zz0110.php |
ค้นหาคำใน String แล้วเน้นคำ
| ตัวอย่างผลลัพธ์ หรืออธิบาย cat = แมวเป็นสัตว์สี่เท้า dog = สุนัข(หมา)เป็นสัตว์สี่เท่าไม่ชอบแมว fish = ปลาเป็นสัตว์น้ำ # ตัวอย่างนี้ใช้ REQUEST หรือ GET ก็ไม่ต่างกัน # ผลลัพธ์นี้แสดงผลการค้น สัตว์ ไม่ใช่ แมว # str_replace( คำเก่า , คำใหม่ , ประโยคเป้าหมาย) # stristr ใช้ตัดคำตั้งแต่ตำแหน่งที่ต้องการ # echo stristr("abcd","b"); ผลคือ bcd # หากใช้ stristr ใน if จะได้ผลเป็นจริง ถ้าพบ |
ex.0111 zz0111.php |
นำอาร์เรย์ไปเขียนในตาราง
| ตัวอย่างผลลัพธ์ หรืออธิบาย
|
ex.0112 zz0112.php |
พิมพ์ตารางแยกสีละบรรทัด
| ตัวอย่างผลลัพธ์ หรืออธิบาย
# เมื่อใช้ % 2 จึงได้เศษคือ 0 หรือ 1 |
ex.0113 zz0113.php |
การจัดเรียงค่าในอาร์เรย์
| ตัวอย่างผลลัพธ์ หรืออธิบาย 35699653 # sort ใช้เรียงจากน้อยไปมาก # rsort ใช้เรียงจากมากไปน้อย |
ex.0114 zz0114.php |
ประกาศอาร์เรย์แบบกำหนด Key เป็นข้อความ
| ตัวอย่างผลลัพธ์ หรืออธิบาย 123122 boy => 12 tom => 31 big => 22 # foreach สามารถใช้ key ของอาร์เรย์ได้ |
ex.0115 zz0115.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 221231 tom => 31 boy => 12 big => 22 # ksort ใช้เรียงตาม key # krsort ใช้เรียงแบบ Reverse |
ex.0116 zz0116.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย A 65 38502 B 66 38450 C 67 38447 : : X 88 38465 Y 89 38406 Z 90 38453 8.6548380851746 Seconds # เครื่องผมเร็ว 500 MHz PII RAM 256 # ไม่มีอาร์เรย์ใช้เวลา 5.7208440303802 |
ex.0117 zz0117.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 1 2 3 4 AEFIJLMNOPQRTVWXYZ Q 81 1 R 82 2 T 84 1 V 86 2 W 87 1 # ตัวอย่างนี้มีค่า page = 3 # link เลือกหน้าจะใช้ตัวแปร ?page=1 เป็นต้น |
2. แฟ้มข้อความ (Text File)
- ถ้าข้อมูลไม่ซับซ้อน Text file น่าสนใจ - นำเสนอตัวอย่างการ อ่านแฟ้ม เพิ่ม ลบ และแก้ไข | แบบฝึกหัด
? ทดสอบกับฟอร์ม หลาย ๆ แบบ ? สร้างระบบสมาชิก |
ex.0201 zz0201.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย ไม่มีผลลัพธ์ใด # แฟ้ม data1.txt มีขนาด 8 * 3 = 24 Byte # รหัสปิดบรรทัดคือ 0A หรือ Line Feed # ถ้าเพิ่ม \r ก่อน \n ก็จะได้ 0D0A ตามปกติ # ใน DOS ใช้ debug data1.txt แล้ว d แล้ว q |
ex.0202 zz0202.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 101,200 102,150 103,180 # กำหนด Buffer ไว้มาก ๆ ใช้ไม่หมดก็ไม่เป็นไร # ที่มี hr เกิน เพราะครั้งสุดท้ายอ่านแล้วไม่เป็น eof # ถ้าไม่ใช้ $d สามารถ echo fgets( .. ) ได้เลย # ผลการพิมพ์มีรหัส \n ติดมากับค่าที่อ่านด้วย |
ex.0203 zz0203.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 101,200 102,150 103,180 # if ใช้เพื่อตรวจสอบว่าผลการอ่าน สำเร็จหรือไม่ # fgetss จะตัว html tag ให้เหลือแต่ข้อความ # data1.txt ไม่มี html tag ผลของ fgets จึงไม่ต่าง |
ex.0204 zz0204.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 101,200 | 102,150 | 103,180 | # file_exists ใช้ตรวจว่ามีแฟ้มอยู่หรือไม่ # ผลการพิมพ์มีรหัส \n ติดมากับค่าที่อ่านด้วย # พบช่องไฟหน้าเครื่องหมาย | ทุกบรรทัด # foreach อ่านข้อมูลจากอาร์เรย์มาแสดงผล |
ex.0205 zz0205.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 1 : 101,200 2 : 102,150 3 : 103,180 # แสดงเลขลำดับระเบียน (Record) # for อ่านข้อมูลจากอาร์เรย์มาแสดงผล |
ex.0206 zz0206.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย
|
ex.0207 zz0207.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 530 # $d[1] = str_replace("\n","",$d[1]); # ไม่ลบ \n ก็สามารถหาผลรวมได้ # ไม่ตรวจ if($d) ก็ไม่พบปัญหาเช่นกัน |
ex.0208 zz0208.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย ไม่มีผลลัพธ์ใด # ถ้าเรียกหลาย ๆ ครั้ง ก็จะเพิ่มหลายระเบียน # ต้องใช้โปรแกรมเรียกดูข้อมูล จึงจะเห็นผลการเพิ่ม |
ex.0209 zz0209.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # default method คือ GET ใช้ REQUEST รับได้ # ก่อน fputs จะตรวจสอบว่ามีค่า id หรือไม่ # $d = str_replace(",",",",$d); # ประโยคข้างบนแก้ปัญหา การเพิ่มข้อมูลที่มี , |
ex.0210 zz0210.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # อ่านข้อมูลทั้งหมดด้วย file # เขียนลงใหม่ด้วย fopen # พบรหัสที่รับเข้ามา จะไม่เขียนลงไป |
ex.0211 zz0211.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # เดิม 103 มี 180 ถ้า click จะเปลี่ยนเป็น 500 |
ex.0212 zz0212.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย ข้อมูลทั้งหมดในแฟ้ม training492.htm จะถูกนำมาแสดง # fgetss จะอ่านแบบตัด html ออก |
ex.0213 zz0213.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย แสดงเฉพาะหัวข้อ 0102 # อ่าน training492.htm แต่เลือกหัวข้อ 0102 มาแสดง # ค้นหาจนพบ จุดเริ่มต้น ก็จะให้ $found เป็น 1 # ค้นหาจนพบ จุดสิ้นสุด ก็จะให้ $found เป็น 0 # ถ้า $found เป็น 1 ก็จะแสดงทุกอย่างที่อ่านได้ |
ex.0214 zz0214.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # แฟ้มไหนสกุล jpg จะนำมาแสดงเป็นภาพหมด # สำหรับ sprintf("%03d",1) เพิ่ม 0 อีก 2 หลักหน้า 1 |
3. มายเอสคิวแอล (MySQL)
- SQL ย่อมาจาก Structured Query Language - memmysql.php ที่ http://www.thaiall.com/perlphpasp/source.pl?9121 - http://www.thaiall.com/mysql มีตัวอย่าง และรายละเอียด | แบบฝึกหัด ? ฝึกสร้างฐานข้อมูล และตารางหลาย ๆ ครั้ง ? ฝึกทั้งแบบ phpmyadmin และ command line |
ex.0301 |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # แบบของ Field หรือ Data Type ของ mysql ที่พบใน phpmyadmin มี 27 แบบ ได้แก่ VARCHAR TINYINT TEXT DATE SMALLINT MEDIUMINT INT BIGINT FLOAT DOUBLE DECIMAL DATETIME TIMESTAMP TIME YEAR CHAR TINYBLOB TINYTEXT BLOB MEDIUMBLOB MEDIUMTEXT LONGBLOB LONGTEXT ENUM SET BINARY VARBINARY # สามารถกำหนดต่อท้าย Data type ได้หลายแบบ # 1. primary key not null auto_increment # 2. primary key auto_increment # 3. primary key # auto_increment ใช้ insert into w values('',10); # char varchar เก็บไม่เกิน 255 แต่ text ได้ถึง 65535 # char ใช้พื้นที่เท่าที่ตั้งไว้ แต่ varchar ใช้ตามจริง |
ex.0302 zz0302.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 11 น้อย 15 12 ต้อง 35 13 ปาน 20 14 ขาว 5 15 ปอง 25 จำนวน 5 # เพิ่มข้อมูล ถ้าไม่พบ ??? ใน phpmyadmin ก็ ok # copy SQL จาก IE ไปใน mysql ไม่พบปัญหา # copy SQL จาก Notepad พบปัญหา ??? |
ex.0303 zz0303.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย result ok # ฟังก์ชันเชื่อมต่อ คือ mysql_connect # ฟังก์ชันประมวลผล คือ mysql_db_query |
ex.0304 zz0304.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย result ok |
ex.0305 zz0305.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย result ok |
ex.0306 zz0306.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย m1: m2: m3: # ฟอร์ม และสั่ง update อยู่ในโปรแกรมเดียวกัน # ส่วนส่ง ตั้งชื่อตัวส่งว่า x1, x2 และ x3 |
4. มายเอสคิวแอลอีกครั้ง (Again MySQL)
- ตัวอย่างชุดนี้ใช้ แฟ้มสั่งซื้อ แฟ้มสั่งซื้อละเอียด แฟ้มลูกค้า และแฟ้มสินค้า - ถ้าฝึกทำให้ลองใช้ แฟ้มวิชา แฟ้มนักเรียน แฟ้มครู แฟ้มลงทะเบียน (yr, subj, sid, grade) - แฟ้มครู ให้เชื่อมต่อกับแฟ้มวิชา .. ลองวางแผนว่าจะเขียนโปรแกรมอย่างไรนะครับ | แบบฝึกหัด ? เขียนโปรแกรมสร้างตาราง และเพิ่มระเบียนใหม่ ? สร้างตารางใหม่ที่สัมพันธ์กัน และทำรายงานที่สัมพันธ์กัน |
ex.0401 |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # ถ้าข้อมูลเป็นอังกฤษ จะไม่พบปัญหาอักษรภาษาไทย # cust คือ แฟ้มลูกค้า # prod คือ แฟ้มสินค้า # o คือ แฟ้มสั่งซื้อ # odtl คือ แฟ้มสั่งซื้อละเอียด # คำถาม : มีกี่ตาราง # คำถาม : จำนวน field ทุกตารางรวมกันเท่าใด # คำถาม : แต่ละตารางมีกี่ระเบียน # คำถาม : ยอดซื้อของแต่ละคนเป็นเท่าใด # คำถาม : ลูกค้าคนใดมียอดซื้อสูงสุด |
ex.0402 zz0402.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 1 1 2 1 3 2 จำนวน 3 # count, max, min, avg ต้องใช้ร่วมกับ group by |
ex.0403 zz0403.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 1 1 1 1 1 3 2 3 2 2 3 3 จำนวน 4 # พบใน Query ของ MS Access อย่างอัตโนมัติ # หรือใช้ SQL ดังด้านล่าง ก็ให้ผลเหมือนกัน select o.oid, o.cust, odtl.pro from o,odtl where o.oid = odtl.oid |
ex.0404 zz0404.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 1 300 2 350 # oid คือ รหัสใบสั่งซื้อ # quan คือ ปริมาณการสั่งซื้อ # price คือ ราคาสินค้า |
ex.0405 zz0405.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 1 1 ต้อย 300 2 3 หวาน 350 # ต้องใช้ทั้ง 4 แฟ้มจึงจะได้ข้อมูลนี้ |
ex.0406 zz0406.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย 1 1 ต้อย 1 สมุด 200 3 เข็ม 100 # SQL แรกเชื่อมด้วย รหัสลูกค้า # SQL ที่สองเชื่อมด้วย รหัสสินค้า # ถ้าใช้ form จะเลือกใบสั่งได้ |
ex.0407 zz0407.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย ไม่แสดงผลลัพธ์ใด # drop table ใช้ลบตาราง # create table ใช้สร้างตาราง # a เพิ่มอัตโนมัติ # b เป็น index # c มีค่าเหมือน b # d เป็นเลขที่ได้จากการสุ่ม (65 - 90) |
ex.0408 zz0408.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย Please wait! 23.871053934097 Seconds # ใช้ตาราง million1 ที่สร้างไว้ก่อนหน้านี้ # เพิ่มครั้งละหมื่นไม่ได้ พบ Maximum execution 30 seconds # จึงลดเหลือครั้งละ 5000 Records ใช้เวลา 15.8 วินาที # ถ้าครั้งละหมื่น ใช้เวลาไม่ถึง 30 วินาที ก็จะเพิ่มได้ # ถ้าเพิ่มครั้งละหมื่นไม่หมด .. ก็จะไม่เพิ่มอะไรเลย # ประมาณที่อยู่ในฐานข้อมูล ไม่มีทำให้เวลา insert เพิ่มขึ้น # ถ้าเครื่องของท่านไม่ใหม่กว่า 500MHz ให้ลดปริมาณการ insert # a เป็น auto จึงเพิ่มต่อจากเดิมเสมอ |
ex.0409 zz0409.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย Please wait! 88 80 79 89 74 0.081300973892212 Seconds # ให้เปลี่ยนเงื่อนไข แล้วดูเวลาที่แตกต่าง # เริ่มจากระเบียนที่ 0 นำมา 5 ระเบียน # ถ้ามี 8000 แล้วใช้ limit 7997,5 ได้ 3 ระเบียน # limit 0,5 ใช้เวลาน้อยกว่า 7997,5 |
ex.0410 zz0410.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย Please wait! 8000 0.19571304321289 Seconds 69 0.01213812828064 Seconds 69 0.0032780170440674 Seconds # Query ครั้งแรก ช้าเสมอ # b เป็น index จึงได้ผลการค้นเร็วกว่า c # แม้ค้น c อีกครั้งหลังค้น b ก็ได้ผลเหมือน c เดิม # ลดจำนวนบรรทัดด้วย function gap () |
5. มายเอสคิวแอลเก็บภาพ (Image in MySQL)
- สร้างตารางไว้เก็บข้อมูลใน MySQL - สร้างตัวส่ง ตัวนำไปเก็บ และตัวเรียกใช้ | แบบฝึกหัด ? นำไปใช้ร่วมกับตารางอื่น เช่น พนักงาน ? สร้าง Gallery แบบของท่าน |
ex.0501 |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # file ใช้เก็บข้อมูล ประกอบภาพ # filedata ใช้เก็บแฟ้มภาพจริง |
ex.0502 zz0502.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # ส่งแฟ้มให้กับ zz0503.php นำไปเก็บใน MySQL |
ex.0503 zz0503.php |
|
ex.0504 zz0504.php |
|
ex.0505 zz0505.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย |
6. ไมโครซอฟต์แอคเซส (Microsoft Access)
- SQL ในตัวอย่างนี้มีเฉพาะ select และ insert - ละตัวอย่าง delete และ update ซึ่งเหมือนตัวอย่างก่อนหน้านี้ | แบบฝึกหัด ? เพิ่มตารางพนักงาน ? เขียนโปรแกรมเพิ่ม ลบ แก้ไขให้สมบูรณ์ |
ex.0601 zz0601.php |
การเชื่อมต่อฐานข้อมูล แบบ DNSLess
| ตัวอย่างผลลัพธ์ หรืออธิบาย oid=1 cust=1 oid=2 cust=3 oid=3 cust=3 # ให้ save order497.mdb 108 KB # นำแฟ้มนี้ไปไว้ในห้องที่เก็บโปรแกรม # ตัวอย่างนี้เป็นการใช้ php เชื่อมต่อแบบ DNSLess # ทดสอบใส่ข้อมูลใน .mdb แล้ว ท่านเริ่มใช้งานได้เลย |
ex.0602 zz0602.php |
เพิ่มระเบียนใหม่ แบบ DNSLess
| ตัวอย่างผลลัพธ์ หรืออธิบาย insert : ok # ใช้ SQL ตามที่เคยใช้ คือ insert |
ex.0603 zz0603.php |
| ขั้นตอนการเพิ่ม o497 ใน ODBC ของ XP # Start, Settings, Control Panel, # Administrative Tools, Data Sources(ODBC), # System DSN, Add, Microsoft Access Driver(*.mdb), # Select (file.mdb), Data Source Name กรอก o497 |
ex.0604 zz0604.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย insert : ok # ใช้ SQL ตามที่เคยใช้ คือ insert |
7. เขียนแฟ้มภาพ (PNG Header)
- PNG ย่อมาจาก Portable Network Graphics (PNG image format) [ libpng.org ] - JPEG ย่อมาจาก Joint Photographic Experts Group - GIF ย่อมาจาก Graphics Interchange Format | แบบฝึกหัด ? วาดรูปอื่นดู ? รับคำสั่งจากฟอร์มไปกำหนดรูป ? เขียนเลขที่อ่านได้จากฐานข้อมูล |
ex.0701 zz0701.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # imagestring($im , ขนาด , col , row) # RGB = Red Green Blue # 0,255,0 = สีเขียว # 255,255,0 = สีเหลือง # 255,255,255 = ขาว # 0,0,0 = สีดำ |
ex.0702 zz0702.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # imageline คือ เส้นตรง # imagerectangle คือ สี่เหลี่ยม # imagearc คือ เส้นวงกลม วงรี |
ex.0703 zz0703.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # header png จะ open .jpg .gif .png ก็ได้ # หรือใช้ 2 บรรทัดนี่ก็ load รูปได้ $im = imagecreatefrompng("test.png"); imagepng($im); |
ex.0704 zz0704.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # แฟ้มภาพต้องเป็น .png |
8. ส่งข้อมูลเข้าเครื่องบริการ (Uploading)
- ถ้ามี FTP หรือ File manager แล้วเทคนิคนี้ก็ไม่จำเป็น - managefile.php ที่ http://www.thaiall.com/perlphpasp/source.pl?9102 | แบบฝึกหัด ? ถ้า upload หบายแฟ้มจะทำอย่างไร ? unlink ใช้ลบแฟ้มได้ แล้วใช้อย่างไร |
ex.0801 zz0801.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # ใช้ type แบบ file |
ex.0802 zz0802.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย upload : ok # copy จะ copy จากห้องชั่วคราวเข้าห้องที่กำหนด |
ex.0803 zz0803.php |
|
# unlink ใช้ลบแฟ้ม # file_exists ใช้ตรวจสอบการมีอยู่ของแฟ้มก่อนลบ # ฟอร์มถามชื่อโปรแกรมที่จะลบ ต้องทำอย่างไร |
ex.0804 zz0804.php |
| # กำหนดชื่อมาจากฟอร์ม |
9. การตรวจสอบ (Verification)
- ไม่มีตัวอย่างการลบ และแก้ไข เพราะน่าจะดูจากส่วนของ MySQL ได้ | แบบฝึกหัด ? ลองรับคำสั่งจากฟอร์ม ? ลองเขียนส่วน delete และ update |
ex.0901 zz0901.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # คำถาม : ทำไงถึงจะเปลี่ยนรหัสผ่านจาก a เป็นอื่น # crypt เป็นการเข้ารหัสแบบทางเดียง ถอดไม่ได้ # $p คือ ผลการ crypt อักษร a # การเข้ารหัสที่ถอดได้ คือ base64_encode |
ex.0902 zz0902.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # crypt($a) คือ การเข้ารหัสที่ถอดไม่ได้ # ต้องนำค่าที่ถูกต้องมาเปรียบเทียบ ดังตัวอย่างแรก # ตัวอย่างการเข้ารหัส ที่ถอดรหัสได้ $a = base64_encode("bb"); echo base64_decode($a); // result = bb # ฟังก์ชันจากตัวอย่างนี้ - stripslashes () - addslashes () - urlencode () - urldecode - htmlspecialchars () & => & - htmlentities () & => & - base64_encode () - base64_decode () - crypt () |
ex.0903 zz0903.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย
# สกุลของแฟ้มนี้เป็น .htm ได้ # เปลี่ยน action ตามต้องการ cookie หรือ session # ต้องใช้ user=a และ password=bbbb จึงจะผ่าน |
ex.0904 zz0904.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย Login : Complete zz0906.php # ถ้าไม่ผ่าน setcookie("u","",time()-3600); # เพิ่มการตรวจสอบในตัวอย่างถัดไป |
ex.0905 zz0905.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย Login : Fail # ถ้ารหัสผ่าน้อยกว่า 3 ตัวอักฒร จะไม่ตรวจ # การพบ Login : Fail อาจหมายถึงการ Logout # อาจใส่เว็บเพจหลังปิด PHP ก็ได้ # ตัวอย่างนี้เพียงแต่ echo บรรทัดเดียว ถ้ารหัสถูก |
ex.0906 zz0906.php |
| ตัวอย่างผลลัพธ์ หรืออธิบาย # ถ้าต้องการเห็นภาพนี้ ต้อง Login ให้ผ่าน # ต้องผ่านระบบ Login ที่กำหนดค่า session มาแล้ว |
ตัวอย่าง members กับการ signin และ การจัดการ ที่ตรวจสอบสิทธิ์ในแต่ละ script และเก็บ log การเข้าใช้
ตัวอย่าง 2 โปรแกรมที่ผิดพลาด (error code) 63 บรรทัดใน 8 แฟ้ม และ 194 บรรทัดใน 14 แฟ้ม (#)
|
|
|
ใช้เวลาโหลดเว็บเพจ = 196 มิลลิวินาที สูง = 23334 จุด กว้าง = 1264 จุด
|
"ไม่เริ่มต้นในวันนี้ จะไม่มีทางสำเร็จในวันพรุ่ง" โดย โยฮัน ว็อล์ฟกัง ฟ็อน เกอเทอ |