Transcript PHP-2

การส่งข้ อมูลด้ วย Html Form
การส่งข้ อมูลด้ วย Querystring
การเก็บค่าและส่งค่าโดยใช้ Session Object
การเก็บค่าและส่งค่าโดยใช้ Cookie Object
ตัวแปร Global function
1
OUTLINE
การส่ งข้ อมูลด้ วย Html Form
การส่ งข้ อมูลด้ วย Querystring
การเก็บค่ าและส่ งค่ าโดยใช้ Session Object
การเก็บค่ าและส่ งค่ าโดยใช้ Cookie Object
ตัวแปร Global function
2
การส่งข้ อมูลด้ วย HTML FORM
คาสัง่ ที่ใช้ อา่ นค่าจาก ค่ า ของ Form เราสามารถเรี ยกใช้ จากตัวแปรที่เรา
ตังขึ
้ ้นมาได้ เลย
รู ปแบบ
$var-name
หากต้ องการพิมพ์ ข้อความออกมา
echo"$var-name";
3
รูปแบบ
<form=" [action=url]" name="ชือ
่ ฟอร์ม" method="[post/get]">
.
code
.
</form>
4
ดูตวั อย่างซักตัวอย่าง
Php2-1.php
<html>
<head>
<form name="form1" method="post" action="Php2-2.php">
ชือ
่
<input type="text" name="name">
<br>
นามสกุล
<input type="text" name="surname">
<br>
<br>
<input type="submit" value="Submit">
<input type="reset"value="Reset">
</form>
</body>
</html>
5
ต่อ
Php2-2.php
<html>
<body>
ชือ
่ <? echo"$name" ?>
<br>
นามสกุล <?echo "$surname" ?>
</body>
</html>
Out Put
6
แบบฝึ กหัด 1
PHP2-3.php
ชื่อ
PHP2-4.php
Name
นามสกุล
Surname
ทีอ่ ยู่
เพศ
Submit
ชื่อ xxxxx
Address
ชาย
หญิง Sex
นามสกุล xxxxx
ทีอ่ ยู่
Xxxxx
xxxxx
เพศ xxxxx
Cancel
7
QUERYSTRING คืออะไร ?
Querystring คือข้ อมูลที่ Browser ส่งต่อท้ าย URL ของ Page ที่ต้องการใช้ ไปยัง
Web Server โดยข้ อมูลจะประกอบไปด้ วยชื่อของข้ อมูลและค่าของข้ อมูล
รู ปแบบ http://127.0.0.1/file-name.php?var-name=value
หากต้ องการส่ งค่ ามากกว่ าหนึ่งค่ า ให้ ใช้ เครื่ องหมาย & ขัน้ ระหว่ างตัวแปร
รู ปแบบ http://127.0.0.1/file-name.php?var-name1=value&var-name2=value
การอ่ านข้ อมูลจาก Querystring
สามารถอ่านได้ จากค่า var-name ที่เราตังขึ
้ ้นมาได้ เลย
เช่น
$var-name
echo"$var-name";
8
การสร้ างข้ อมูลให้ อยูใ่ นรูป QUERYSTRING
สามารถ สร้ างได้ 3 รู ปแบบคือ
1. สร้ างจาก Tag <a>... </a>
กาหนดในส่วนคุณสมบัติของ HREF ของ TAG <a> </a> ตัวอย่าง
Php2-5.php
<html>
<body>
<a href=“php2-6.php?name=werachai numkitram&old=21">Test Querystring </a>
</body>
</html>
Out Put
9
ต่อ
Php2-6.php
<html>
<body>
ชือ
่ <? echo"$name" ?>
<br>
อายุ<?echo "$old" ?>
</body>
</html>
Out Put
10
2. การสร้ าง Querystring ด้ วย HTML Form
เหมือนกันการออกแบบ Form ธรรมดาครับ แต่แตกต่างตรงที่ method="get"
ตัวอย่าง
Php2-7.php
<html>
<body>
<form name="form1" method="get" action= "php2-8.php">
ชือ
่
<input type="text" name="name">
<br>
อายุ
<input type="text" name="old">
<br>
<br>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
Out Put
11
ต่อ
Php2-8.php
<html>
<body>
ชือ
่ <? echo"$name" ?>
<br>
อายุ<?echo "$old" ?>
</body>
</html>
Out Put
12
3. การนาค่ า Querystring จากค่ าของตัวแปรก็สามารถทาได้
Php2-9.php
<html>
<body>
<?
$name="วีระชัย นุกจิ รัมย์";
$old=21;
?>
<a href=“php210.php?name=<?echo"$name"; ?>&old=<?
echo"$old"; ?>">Test Querystring </a>
</body>
</html>
Php2-10.php
<html>
<body>
ชือ
่ <? echo"$name" ?>
<br>
อายุ<?echo "$old" ?>
</body>
</html>
13
การเก็บค่าและส่งค่าโดยใช้ SESSION OBJECT
session ? คืออะไร
คือ การเก็บค่า จาก Web Server ลงในหน่วยความจาของเครื่ อง Client แต่ละ
ราย server จะกาหนดเวลาและติดตามการใช้ งานของเครื่ อง Client
Session ID คืออะไร
Session ID คือ หมายเลขประจาตัว ที่ Web Server ส่ งมายัง Client ค่า Session
จะไม่มีทางซ้ ากัน Session ID มีประโยชน์ใรการอ้างอิงเกี่ยวกับการใช้งานของ Client
รู ปแบบการอ่ านค่ า Session ID
Session_ID();
14
รู ปแบบการใช้ งาน SESSION อื่น ๆ
Session_Type("Session-name") เมื่อ Type คือ ชนิดของ Session เช่น
name,register,unset,unregister
สามารถศึกษาเพิ่มติมได้ จาก PHP manual ( Download ได้ ที่
http://www.php.net )
15
การสร้ างและการอ่ านค่ า SESSION
การสร้ าง session
Session_Start()
$session-name=value;
Session_register("session-name");
การอ่านค่ าจาก Session
Session_Start();
$session-name;
echo"$session-name";
16
การตรวจสอบและการลบตัวแปร SESSION
การตรวจสอบตัวแปร Session
Session_Start();
$session-name;
if(Session_is_registered("$session-name"))
{
echo"ตัวแปรนี้มีคา่ อยู"่ ;
}
else
{
echo"ตัวแปรนี้ไม่มีคา่ อยู"่ ;
การลบค่าใน Session
}
-การลบ Session เฉพาะตัวแปร
Session_unregister("session-name ");
- การลบ Session ทัง้ หมด
Session_destroy();
17
ดูตวั อย่าง SESSION
Php2-11.php เป็ นการกาหนดค่าให้กบั Session
<?
Session_Start();
$name="นายวีระชัย นุกจิ รัมย์";
$old=21;
Session_register("name");
Session_register("old")
?>
ได้กาหนดค่าให้ Session แล้ว<br>
ตรวจสอบค่า Session <a href="Php2-12.php"> Php2-12.php </a>
Php2-12.php
18
ดูตวั อย่าง SESSION (ต่อ)
Php2-12.php เป็ นการแสดงค่าใน Session
<?
session_start();
echo "ค่าใน Session Name คือ $name <br>";
echo "ค่าใน Session Old คือ $old <br>";
?>
<br>
<br>
ตรวจสอบค่า Session <a href="php2-13.php">php2-13.php</a>
Php2-13.php
19
ดูตวั อย่าง SESSION (ต่อ)
Php2-13.php เป็ นการแสดงค่าใน Session อีกครัง้
<?
session_start();
echo "ค่าใน Session Name จะยังเป็ น $name <br>";
echo "ค่าใน Session Old จะยังเป็ น $old <br>";
?>
<br>
ตัง้ ค่า Session <a href=“php2-11.php">php2-11.php</a>
** หากต้องการลบ Session ทาได้โดย
Session_unregister("name"); และ
Session_unregister("old");
หรือจะใช้ Session_destroy(); เพือ
่ ลบค่า
Session ทัง้ หมด
Php2-11.php
20
การเก็บค่าและส่งค่าโดยใช้ COOKIE OBJECT
Cookie คืออะไร ?
เป็ นการเก็บค่าจาก Server มาเก็บใว้ ที่เครื่ อง Client โดยเก็บใว้ ในรูป
ไฟล์ พูดง่าย ๆ ก็คือ การเขียนลงไฟล์นนเอง
ั ้ ซึง่ จะถูกเก็บใว้ ที่
Windows\Cookies
การ Set Cookie จะต้ อง Set ใว้ ในส่วนบนสุดครับ ( header )
21
การสร้ าง COOKIE
รู ปแบบ
setcookie(cookie-name,value,[Time]);
หรื อจะกาหนดจากตัวค่ าตัวแปร
$va-name-value = value";
setcookie(var-name, $var-name-value,[Time] );
22
เมื่อ
Cookie-name ชื่อ ของ Cookie
value,$var-name-value คือ ค่าของ Cookie
Time กาหนดเวลาหมดอายุของ Cookie
 ตัวอย่ าง 1
Setcookie("name","วีระชัย นุกิจรัมย์",time()+3600); // กาหนดเวลา 1 ชัว่ โมง
 ตัวอย่ าง 2
$name="นายวีระชัย นุกิจรัมย์";
Setcookie("name",$name,time()+60); // กาหนดเวลา 1 นาที
23
การอ่ านค่ าจาก COOKIE
$cookie-name
echo"$cookie-name";
การกาหนดวันหมดอายุของ Cookie
รูปแบบ
Time() , Date()
ตัวอย่ าง
Setcookie("name",$name,time()+60); // กาหนดเวลา 1 นาที
24
การลบ COOKIE
รูปแบบ
SetCookie("Cookie-name")
เช่ น
SetCookie("name") // เป็ นการลบ Cookie name ออก
หากยังไม่ เข้ าใจลองมาดูตัวอย่ างกันหน่ อยครับ
Php2-14.php เป็ นการกาหนดและตังค่
้ า Cookie
Out
put
Php2-15.php
<?
$name="วีระชัย นุกจิ รัมย์";
$old=21;
Setcookie("name",$name,time()+60);
Setcookie("old",$old,time()+60);
?>
ได้กาหนดค่าให้ Cookie แล้ว<br>
ตรวจสอบค่า Cookie <a href=“php2-15.php">php2-15.php</a>
25
 Php2-15.php เป็ นการแสดงค่าใน Cookie
 Out put
<?
echo "ค่าใน Cookie name คือ $name <br>";
echo "ค่าใน Cookie old คือ $old <br>";
?>
<br>
<br>
ตรวจสอบค่า Cookie อีกครั้ง <a href=“php2-16.php">php2-16.php</a>
Php2-16.php
26
Php2-16.php เป็ นการแสดงค่าใน Cookie อีกครัง้
<?
echo "ค่าใน Cookie Name จะยังเป็ น $name <br>";
echo "ค่าใน Cookie Old จะยังเป็ น $old <br>";
?>
<br>
ตัง้ ค่า Cookie <a href=" php2-16.php">php2-16.php</a>
Out put
Php2-16.php
27
การใช้ OB_START(); เพื่อให้ สามารถกาหนด
SETCOOKIE ใว้ ส่วนใดก็ได้
 ปกติการ SetCookie เราต้ องกาหนดใว้ สว่ นบนสุด หรื อ headder แต่ถ้าเราใส่ ob_start();
จะสามารถกาหนดใว้ สว่ นอื่น ๆ ได้ เช่น การใช้ คาสัง่ echo ใว้ ก่อน SetCookie ซึง่ ถ้ าไม่ใส่
ob_start(); จะไม่สามารถใช้ คาสัง่ echo ได้ ดังตัวอย่าง
Php2-17.php
<?
ob_start();
echo "ปกติจะไม่สามารถ แทรกส่วนตรงนี้ได้
<br>";
setcookie("name", "นายวีระชัย นุกจิ รัมย์",
time() + 60);
echo "แต่ตอนนี้ได้กาหนดค่าให้ Cookie name
แล้ว ";
ob_end_flush();
?>
Out Put
28
ตัวแปร GLOBAL FUNCTION
การใช้ ตัวแปรแบบ global ภายในฟั งก์ ชัน บางครัง้ เราไม่ต้องการที่จะ
ผ่านตัวแปรเป็ นอาร์ กิวเมนต์ของฟั งก์ชนั เพื่อนาไปใช้ ภายในฟั งก์ชนั เหล่านัน้ ก็
จะทาได้ โดยการแจ้ งใช้ ตวั แปรที่มีชื่อเหมือนตัวแปรภายนอกที่เราต้ องการใช้ ให้
เป็ น global หรื อใช้ ผ่านตัวแปรที่เป็ นอาร์ เรย์ของ PHP ที่มีชื่อว่า
$GLOBALS ดังตัวอย่างต่อไปนี ้
29
<?
$a = 10;
$b = 20;
function getMin ( ) {
global $a, $b;
if ($a < $b)
return $a;
else
return $b;
}
function getMin2 () {
if ($GLOBALS["a"] < $GLOBAL["b"])
return $GLOBALS["a"];
else
return $GLOBALS["b"];
}
echo getMin()."<BR>\n";
echo getMin2()."<BR>\n";
?>
ในกรณีนี ้เราต้ องการจะใช้ ตวั แปร $a
และ $b ซึง่ อยูน่ อกฟั งก์ชนั getMin()
เพื่อเช็คดูวา่ ค่าของตัวแปรใดมีคา่
น้ อยกว่ากัน ถ้ าเราไม่แจ้ งใช้ global
$a, $b; ตามตัวอย่างแล้ ว $a และ $b
จะกลายเป็ นตัวแปรภายในแม้ วา่ จะ
ชื่อเหมือนกันตัวแปรภายนอกที่มีอยู่
แล้ วก็ตาม ทาให้ ได้ ผลการทางานไม่
ถูกต้ องตามที่ต้องการ
30
 ฟั งก์ชนั getMin() อีกรูปแบบหนึง่ โดยไม่ใช้ ตวั แปรแบบ global ภายในฟั งก์ชนั และใช้
วิธีผ่านค่าแทน
<?
$a = 10;
$b = 20;
function getMin ($a, $b) {
if ($a < $b)
return $a;
else
return $b;
}
echo getMin($a, $b)."<BR>\n";
?>
31
 การตัวแปรแบบ static ภายในฟั งก์ชนั
สมมุติวา่ เราต้ องการจะใช้ ตวั แปรภายในฟั งก์ชนั และสามารถเก็บค่าไว้ ได้ ตลอดเวลา โดยไม่
สูญหายไปทุกครัง้ ที่มีการเรี ยกใช้ ฟังก์ชนั ในกรณีนี ้เราจะแจ้ งใช้ ตวั แปรให้ เป็ นแบบ static
ตามตัวอย่างต่อไปนี ้
ทุกครัง้ ที่มีการเรี ยกใช้ ฟังก์ชนั ดังกล่าว ตัวแปรชื่อ $num_func_calls ซึง่ มีค่าเริ่ มต้ นเป็ นศูนย์ใน
ตอนแรก จะเพิ่มค่าที่เก็บขึ ้นทีละหนึง่
function MyFunc() {
static $num_func_calls = 0;
echo "my function\n";
return ++$num_func_calls;
}
32
 การผ่านค่ากลับคืนมากกว่าหนึ่งจากฟั งก์ชนั
โดยปรกติแล้ วเราไม่สามารถผ่านค่ากลับคืนจากฟั งก์ชนั ได้ มากกว่าหนึง่ แต่อย่างไรก็ตาม
ยังมีวิธีการหนึง่ ที่ช่วยแก้ ปัญหาดังกล่าวได้ วิธีนี ้คือ เก็บค่าต่างๆที่ต้องการจะใช้ เป็ นค่า
กลับคืนไว้ ใน array แล้ วใช้ array นันเป็
้ นค่ากลับคืน และผู้เรี ยกใช้ ฟังก์ชนั สามารถใช้
ฟั งก์ชนั list() อ่านค่าเหล่านันได้
้ ตัวอย่างเช่น
<?
function foobar() {
return array ("foo", "bar", 0xff);
}
list ($foo, $bar, $num) = foobar();
echo "$foo $bar $num <BR>\n";
?>
จากตัวอย่าง ฟั งก์ชนั foobar() จะให้ ค่ากลับคืนเป็ น array ประกอบด้ วยสามสมาชิก ค่าที่ได้ จาก
ฟั งก์ชนั นี ้ก็จะส่งไปยังฟั งก์ชนั list() เพื่อให้ เก็บแยกลงในตัวแปรตามชื่อที่กาหนดคือ $foo, $bar และ
$num ตามลาดับ
33
ตัวอย่างเพิ่มเติม
การตัดคาหยาบ
 โดยเริ่ มจากการสร้ างฟอร์ มรับค่า จากนันส่
้ งไปแสดงในไฟล์ cut_word.php
Formcutword.php
<form name="form1" method="post" action="cut_word.php">
ทดสอบตัดคาหยาบ
<input name="word" type="text" id="word">
<input type="submit" name="Submit">
</form>
34
การตัดคาหยาบ (ต่อ)
Cut_word.php
<?
$word_cut = array("ไอ้","อี","มึง","กู");
$replace = "<font color=red>***</font>";
for ($i=0 ; $i<sizeof($word_cut) ; $i++) {
$word = str_replace($word_cut[$i],$word,$replace);
}
echo $word;
?>
ถ้ามีการป้ อนค่าในฟอร์มที่ตรงกับคาหยาบที่อยูใ่ น array ก็จะขึ้นเป็ น *** สี แดง
35
ตัวอย่างเพิ่มเติม
เทคนิคการทา Search ใน Google
เริ่ มจากฟอร์ มค้ นหา เช่น
formSearchengine.php
<form action="http://www.google.co.th/search?q" method="get">
ค้นหาใน Google : <input name="q" type="text" >
<input name="submit" type="submit" value="ค้นหา">
</form>
36
ตัวอย่างเพิ่มเติม
การ Upload File
การส่ งค่าและรับค่าในรู ปแบบของ Files Field หรื อการ Upload ไฟล์ โดยต้อง
สร้างโฟลเดอร์ myfile ไว้ที่ www ด้วย
โดยจะต้องใช้ enctype="multipart/form-data" ในส่ วนของ<form></form>
รูปแบบคือ <input type="file" name="[name]">
PageFiles1.html
<form name="form1" method="post" action="PageFiles2.php" enctype="multipart/form-data">
ไฟล์ <input type="file" name="filUpload">
<input name="btnSubmit" type="submit" value="Submit">
</form>
37
การ Upload File ต่ อ
PageFiles2.php
<?
if(copy($_FILES["filUpload"]["tmp_name"],"myfile/".$_FILES["filUpload"]["name"]))
{
echo "Copy/Upload Complete";
}
?>
โดยไฟล์ที่ upload ขึ้นนี้จะไปอยูใ่ นโฟลเดอร์ชื่อ myfile ที่สร้างไว้
38
อ้ างอิง
 www.thaicreate.com
39