วิชา webProgramming
posted on 01 Oct 2008 21:50 by interviewz in PHPการเขียนแบบฟอร์ม ด้วยภาษา HTML
การรับส่งข้อมูลในแบบฟอร์มจากไฟล์ HTML ไปยังไฟล์ PHP
การเปิดไฟล์ ปิดไฟล์ อ่านไฟล์ เขียนไฟล์ ด้วย PHP
การเชื่อมต่อกับฐานข้อมูลด้วย PHP
แนวข้อสอบปีนี้
ข้อสอบเก่าของรุ่นพี่
เฉลยข้อสอบเก่า วิชา web programming
รวมอยู่ในนี้แล้วจ้า
จัดไป ๆ ๆ ขอให้ทำได้ทุก ๆ ๆ คนนะจ๊า
Download เป็นไฟล์ Word

สิ่งที่ต้องรู้
1. การเขียนแบบฟอร์ม จะใช้ภาษา html
แบบ text
ที่จำเป็น : <input type=”text” name=”ชื่อตัวแปร”>
Add เพิ่มได้ : size=”ความยาวช่องรับข้อมูล” maxlength=”จำนวนสูงสุดที่รับเข้ามาได้” value=”ข้อความที่แสดงตั้งแต่เริ่ม”
แบบ password
ที่จำเป็น : <input type=”password” name=”ชื่อตัวแปร”>
Add เพิ่มได้ : size=”ความยาวช่องรับข้อมูล” maxlength=”จำนวนสูงสุดที่รับเข้ามาได้” value=”ข้อความที่แสดงตั้งแต่เริ่ม”
!!! สังเกตว่า text กับ password เป็นช่องรับข้อมูลเหมือนกัน ต่างกันตรงที่แบบ password ข้อมูลที่ป้อนเข้ามาจะเห็นเป็น***
แบบ radio
ที่จำเป็น : <input type=”radio” name=”ชื่อตัวแปร” value=”ค่า”>
Add เพิ่มได้ : checked
!!! ต้องเลือกอันใดอันนึง ทุกตัวเลือกต้องมีชื่อเหมือนกัน และค่าต้องแตกต่างกัน
แบบ checkbox
ที่จำเป็น : <input type=”checkbox” name=”ชื่อตัวแปร” value=”ค่า”>
Add เพิ่มได้ : checked
!!! เลือกกี่อันก็ได้ ทุกตัวเลือกต้องมีชื่อต่างกัน อันที่ไม่ถูกเลือกจะไม่ถูกสร้าง อันที่ถูกเลือกจะถูกสร้างเป็นตัวแปร และมีค่าเป็น on
แบบ submit
ที่จำเป็น : <input type=”submit” value=”ข้อความที่แสดงบนปุ่ม”>
แบบ reset
ที่จำเป็น : <input type=”reset” value=”ข้อความที่แสดงบนปุ่ม”>
แบบ select
ที่จำเป็น : <select name=”ชื่อตัวแปร” size=”จำนวนบรรทัดที่แสดงให้เลือก” multiple>
ตัวเลือกที่1
ตัวเลือกที่2
</select>
แบบ textarea
ที่จำเป็น : <textarea name=”ชื่อตัวแปร” rows=”ขนาดแถว” cols=”ขนาดหลัก”></textarea>
แบบ hidden
ที่จำเป็น : <input type=”hidden” name=”ชื่อตัวแปร” value=”ค่า”>
แบบ image
ที่จำเป็น : <input type=”image” src=”urlของรูปภาพ”>
โดยทั้งหมดทั้งมวลนี้ต้องอยู่ภายในแท็ก
ชื่อฟอร์ม” method=”วิธีส่งข้อมูล” action=”ไฟล์ที่ได้รับข้อมูลจากฟอร์ม”> และ !!! get = ส่งข้อมูลทาง Url เห็นกันจะจะ / post = ส่งข้อมูลแบบแอบ แนบไปไม่มีใครเห็น
2. การรับค่าจากแบบฟอร์ม นำไปคำนวณ หรือแสดงผล จะใช้ภาษา php
เริ่มต้นด้วย และจบด้วย ?> และตรงกลางจะเป็นคำสั่งในภาษา PHP
รูปแบบ : $ชื่อตัวแปร
หากต้องการพิมพ์ข้อความออกมา : echo "$ชื่อตัวแปร";
sample1.html
post" action="sample2.php">
ชื่อ
name">
นามสกุล
surname">
sample2.php
ชื่อ "$name"; ?>
นามสกุล $surname"; ?>

Counter.html
counter
กรุณากดปุ่ม
value ="press now">
Counter.php
$filename = "enter.txt"; กำหนดชื่อไฟล์ว่า enter.txt
if( file_exists($filename) ) เช็คว่าไฟล์นี้มีหรือไม่
{ $fp = fopen($filename,"r"); ถ้ามี สร้าง $fp เป็น pointer ชี้ไปที่ไฟล์นั้น ทำการเปิดแบบอ่าน
$counter = fgets($fp,99); อ่านค่ามาใส่ใน $counter
fclose($fp); อ่านเสร็จ ปิดตัวชี้ $fp
}
else
{ $counter=0; ถ้าไม่มี กำหนดให้ $counter เป็น 0
}
$fp = fopen($filename,"w"); ให้ $fp ชี้ไปที่ไฟล์ ทำการเปิดแบบเขียน
$counter = $counter+1; เพิ่มค่าให้ counter 1 ค่า
fwrite($fp,$counter); เขียน $counter ลงไปในไฟล์
fclose($fp); เขียนเสร็จปิดตัวชี้
echo “counter = $counter"; และแสดงผล $counter
?>
จากโปรแกรมข้างบน จะเกิดไฟล์ enter.txt ขึ้นมาในคอมพิวเตอร์เราด้วย
การเปิดไฟล์ fopen(ชื่อไฟล์,โหมดของการเปิด) -> fopen($filename,"r");
โหมดการเปิดมี 6 โหมด r=read / w=write / a=attend
R เปิดเพื่ออ่าน โดย pointer ชี้ที่จุดเริ่มต้นของไฟล์
R+ เปิดเพื่ออ่านและเขียน โดย pointer ชี้ที่จุดเริ่มต้นของไฟล์
W เปิดเพื่อเขียนอย่างเดียว เขียนครั้งใหม่ทับของเก่าทุกครั้ง โดย pointer ชี้ที่จุดเริ่มต้นของไฟล์
W+ เปิดเพื่ออ่านและเขียน เขียนครั้งใหม่ทับของเก่าทุกครั้ง โดย pointer ชี้ที่จุดเริ่มต้นของไฟล์
A เปิดเพื่อเขียนอย่างเดียว โดย pointer ชี้ที่จุดสิ้นสุดของไฟล์
A+ เปิดเพื่ออ่านและเขียน โดย pointer ชี้ที่จุดสิ้นสุดของไฟล์
การปิดไฟล์ fclose(ตัวแปรที่ชี้ไฟล์) -> fclose($fp);
การอ่านข้อมูลจากไฟล์ มีฟังก์ชั่น
fread(ตัวแปรที่ชี้ไฟล์,จำนวนไบต์ที่ต้องการอ่าน) อ่านเท่าความยาวที่ระบุ -> fread($fp,99);
fgets(ตัวแปรที่ชี้ไฟล์,จำนวนไบต์ที่ต้องการอ่าน) อ่านทีละบรรทัด ถ้าจะอ่านหลายๆบรรทัดก็วน loop เอา -> fgets($fp,99);
fpassthru(ตัวแปรที่ชี้ไฟล์) อ่านหมดทั้งไฟล์ -> fpassthru($fp);
การเขียนข้อมูลลงไฟล์ ใช้อันไหนก็ได้ ผลลัพธ์เหมือนกันจ้า
fputs(ตัวแปรที่ชี้ไฟล์,ข้อมูลที่จะเขียนลงไฟล์) -> fputs($fp,$counter);
fwrite(ตัวแปรที่ชี้ไฟล์,ข้อมูลที่จะเขียนลงไฟล์) -> fwrite($fp,$counter);
สู้ ๆ
ๆ http://interviewz.exteen.com
การเชื่อมต่อฐานข้อมูล ทำได้ 2 แบบ
แบบแรก มี prepare และใช้ odbc_execute
$conn = odbc_connect("ชื่อDSN","username","password");
$stmt = odbc_prepare($conn,”select* from customer ");
$cur = odbc_execute($stmt)
แบบสอง ไม่มี prepare และใช้ odbc_exec !!! ใช้แบบนี้ง่ายกว่าป่าว
$conn = odbc_connect("mydb","username","password");
$cur = odbc_exec($cx,"select* from customer");
การเลื่อนตัวชี้ข้อมูล ไปทีละรายการ
while(odbc_fetch_row($cur)) มักจะใส่ใน loop while เพื่อวนอ่านให้มันหมดไฟล์ วนloopทีละ 1 record
การแสดงข้อมูล ดึงข้อมูลจาก record นั้นมาใส่ไว้ในตัวแปร
$name1 = odbc_result($cur,1); เลข 1 คือลำดับเลขที่ของ filed หรือจะใส่ชื่อ field name ก็ได้
จากนั้นถ้าอยากแสดงผลออกมาก็ echo “$name”; ได้ตามปกติ
การปิดฐานข้อมูล
odbc_close($conn)
select.php
$conn = odbc_connect("mydb","","");
$cur = odbc_exec($conn,"select * from customer order by custNo");
$counter=0;
echo "
| No.
| รหัส
| ชื่อ
| เพศ
| ที่อยู่
| เบอร์โทรศัพท์
|
|---|---|---|---|---|---|
| $counter | $name1 | $name2 | ";
if($name3=='F') { echo"หญิง | ";
}
$name4 | $name5 |
echo "
จำนวนลูกค้าทั้งหมด $counter คน";
?>

ข้อสอบ 5-6 ข้อ
- ให้โปรแกรมมา หาที่ผิด
- ให้เขียนโปรแกรม
- เขียน form กับ php ให้ทำงานได้
- odbc ออกแน่ อาจารย์ว่างี้
- พิเศษสุดๆ ข้อสุดท้ายต้องทำ ถ้าไม่ทำจะหักคะแนน ในโจทย์จะไม่บอกว่าให้เขียน session แต่อาจารย์สั่งในห้องว่าต้องเขียน session ด้วย ห้ามลืม !!!
เกร็งงงงข้อสอบ
1.ให้ภาพหน้า html มาเป็นเกี่ยวกับการคิดแบบเครื่องคิดเลข(ฟอร์มเดียวกับที่เขียนกลางภาคของปี 50) จะมี ช่องรับตัวเลข 2 ช่อง แล้วก็มี radio box 4 ตัว ซึ่งจะเป็น บวก ลบ คูณ หาร แล้วก็มีปุ่ม submit กะ reset หน้าจอประมาณนี้ (20 คะแนน)
TEST1.HTML
การคำนวณแบบเครื่องคิดเลข
ตัวเลขตัวแรก : (ข่อง input )
ตัวเลขตัวที่สอง : (ช่อง input)
(Radio) บวก (Radio) ลบ (Radio) คูณ (Radio) หาร
(ปุ่ม Submit) (ปุ่ม Reset)
ให้เขียนโปรแกรม .html ที่เป็นฟอร์มตามรูปดังกล่าว แล้วก็ให้ผลลัพธ์ไปออกที่ ไฟล์ .php
ผลลัพธ์เช่น
TEST1.PHP
ตัวแรกตัวแรก : 20
ตัวเลขตัวที่สอง : 50
20 + 50 = 70
2. ให้ตารางฐานข้อมูลมา ในตารางประกอบด้วย รหัส (Code) ชื่อ(Name) ภาษี(TAX) เงินเดือน(Salary) ตารางชื่อ Personal ส่วนชื่อ DSN คือ persondb ให้เขียนโปรแกรมเพื่อดึงข้อมูลจากฐานข้อมูลมาแสดง โดยให้ เงินสุทธิ = เงินเดือน - ภาษี
แสดงข้อมูลที่ประกอบด้วย รหัส ชื่อ และเงินเดือนสุทธิ โดยเรียงตามจำนวนเงินเดือนสุทธิ จากน้อยไปมาก ดังนี้ (10 คะแนน)
TEST2.PHP
รายงานเงินเดือนพนักงาน
รหัส ชื่อ เงินเดือนสุทธิ
01 ปป 10
02 กก 15
.............................................................
จำนวนพนักงานทั้งหมด 6 คน ยอดเงินเดือนรวมทั้งหมด 10000 บาท
3. ให้เขียนโปรแกรม .html รับข้อมูลชื่อผู้ใช้ระบบเข้ามา จากนั้นบันทึกข้อมูล ชื่อ และเวลาในการใช้ระบบลงใน TEST3.TXT แล้วจึงแสดงผลลัพธ์ออกมา
(20 คะแนน)
TEST3.HTML
ชื่อผู้ใช้ : (ช่อง input)
(submit) (reset)
TEST3.PHP
ผู้เข้าใช้ระบบ : นาย.......
วันเวลา : 19 January 2007
(กลับสู่หน้าหลัก)
ตรง กลับสู่หน้าหลัก เป็นปุ่มที่เมื่อคลิกแล้วจะกลับไปหน้า TEST3.HTML
4. เค้าให้โปรแกรม php มาแล้วให้จับผิดอ่ะ เป็นเรื่องของการติดต่อฐานข้อมูล ส่วนใหญ่ที่ผิดนะ ก็เป็นพวก " ; แล้วก็ " ที่ซ้อนอยู่ใน echo แล้วก็ตัวแปรบางตัวที่ใช้ชื่อผิด หรือเป็นตัวแปรแต่ไม่มี $ นำหน้า จำได้ว่าบรรทัดรองสุดท้าย ตรงการ close database อ่ะ มันเขียน obdc_close อันนี้ผิดนะ (10 คะแนน)
5. ให้โดเมนมาแล้วออกแบบฐานข้อมูลและโปรแกรมที่ใช้ในระบบ
มีบริษัทที่ทำการให้บริการให้เช่าที่จอดรถ ที่จดรถจะมี 10*20 หรือก็คือ 200 ที่ หมายเลขที่จอดจะบอกถึง แถวและหลักของที่จอดรถ ในการเข้ามาใช้ช่องจอด จะได้รับบัตรจอด ที่จะมีข้อมูล วันที่ เวลา และหมายเลขที่จอดรถให้ โดยระบบจะเป็นคนหาที่จอดรถที่ว่างให้ ที่จอดมีทางเข้าออกทางเดียว เมื่อมีคนเช่าช่องจอดใดๆ ช่องจอดนั้นจะมีสถานะ ไม่ว่าง เมื่อเวลาคืนบัตรก็ให้เปลี่ยนสถานะช่องจอดนั้นๆ เป็นช่องจอดว่าง
นอกจากนี้ระบบยังต้องสามารถบอกสิ่งต่างๆ ดังนี้
- จำนวนช่องจอดที่ว่างทั้งหมด
-จำนวนรถเฉลี่ยที่เข้ามาใช้ช่องจอดในแต่ละชั่วโมง
-ถ้าไม่มีช่องจอดว่างจะไม่อนุญาตให้เข้าใช้ช่องจอดได้
-จำนวนรถที่เข้ามาใช้ช่องจอดนานเกิน 10 ชั่วโมง
(20 คะแนน)

เฉลยข้อสอบข้อแรก
form.html
ข้อสอบข้อ1
การคำนวณแบบเครื่องคิดเลข
ตัวเลขตัวแรก
ตัวเลขตัวที่สอง
บวก
ลบ
คูณ
หาร
>
calculate.php
echo "ตัวแรกตัวแรก = $a
ตัวเลขตัวที่สอง = $b
";
if($operation=="add")
{ $c = $a+$b;
echo "$a + $b = $c ";
}
elseif($operation=="minus")
{ $c = $a-$b;
echo "$a - $b = $c ";
}
elseif($operation=="multiply")
{ $c = $a*$b;
echo "$a * $b = $c ";
}
elseif($operation=="devide")
{ $c = $a / $b;
echo "$a / $b = $c ";
}
สู้ ๆ ๆ
http://interviewz.exteen.com