![]() | การเขียนเว็บเพจ ด้วยพีเอชพี (PHP) ติดต่อฐานข้อมูล ระดับกลาง | ![]() |
บทเรียน 1. อาร์เรย์ (Array) 2. แฟ้มข้อความ (Text File) 3. มายเอสคิวแอล (MySQL) 4. การเก็บภาพในมายเอสคิวแอล (Image) 5. ไมโครซอฟต์แอคเซส (Microsoft Access) 6. เขียนแฟ้มภาพ (PNG Header) 7. ส่งข้อมูลเข้าเครื่องบริการ (Uploading) 8. การตรวจสอบ (Verification) | แนะนำเว็บ (Web Guides) |
วันที่ 1 10.40 - 12.00 อาร์เรย์ 2 13.00 - 14.30 เท็กไฟล์ 1 14.40 - 16.00 เท็กไฟล์ 1 วันที่ 2 10.40 - 12.00 มายเอสคิวแอล 2 13.00 - 14.30 มายเอสคิวแอล 3 14.40 - 16.00 มายเอสคิวแอล 4 วันที่ 3 10.40 - 12.00 เขียนภาพ 13.00 - 14.30 ส่งแฟ้ม 14.40 - 16.00 การตรวจสอบ |
1. อาร์เรย์ (Array)
แบบฝึกหัด ? สร้างอาร์เรย์เก็บชื่อภาพ และเรียกใช้ ? สร้างอาร์เรย์เก็บชื่อแฟ้มเอกสาร และเรียกใช้ |
|
ex.0101 zz0101.php |
ประกาศอาร์เรย์ทีละค่า
<?
$a[0] = "tom";
$a[1] = 65;
$a[2] = 97;
$a[3] = 161;
for($i=0;$i<4;$i++) { echo "$a[$i]<br>"; }
?>
|
|
ex.0102 zz0102.php |
ประกาศอาร์เรย์ครั้งเดียว
<?
$a = array("tom",65,97,161);
for($i=0;$i<count($a);$i++)
echo "$a[$i]<br>";
?>
|
|
ex.0103 zz0103.php |
ฟังก์ชันแปลง ASCII กับอาร์เรย์
<?
$a = array("tom",65,97);
$a[3] = 161;
$a[4] = "A";
echo chr($a[2])."<br>";
echo ord($a[4])."<br>";
?>
|
|
ex.0104 zz0104.php |
การประกาศแบบต่าง ๆ
<?
$a = array("tom",65,97,161);
$a[count($a)] ="boy";
$a[count($a)] ="one";
echo $a[0].$a{1};
echo $a[count($a) - 1].count($a);
echo "<hr size=20 color=black>";
?>
|
|
ex.0105 zz0105.php |
แสดงการแยก และรวมอาร์เรย์
<?
$a = explode(" ","I am a boy");
echo "$a[0]$a[2]<br>";
$b = implode("a",$a);
echo $b;
?>
|
|
ex.0106 zz0106.php |
foreach กับอาร์เรย์
<?
$a = array("tom",65,97,161);
foreach($a as $v1) echo $v1;
$b = split(" ","I am a boy");
foreach($b as $v2) echo $v2."<br>";
?>
|
|
ex.0107 zz0107.php |
แสดงภาพจาก array <? $a = array(); $a[count($a)] = "a1.jpg"; $a[count($a)] = "a2.jpg"; $a[count($a)] = "a3.jpg"; foreach($a as $v) echo "<img src=$v>"; ?> |
|
ex.0108 zz0108.php |
แสดงข้อมูลพจนานุกรม <? $a = array(); $a["ant"] = "มดเป็นแมลงชนิดหนึ่ง"; $a["cat"] = "แมวเป็นสัตว์สี่เท้า"; $a["dog"] = "สุนัข(หมา)เป็นสัตว์สี่เท่าไม่ชอบแมว"; $a["fish"] = "ปลาเป็นสัตว์น้ำ"; foreach($a as $k => $v) echo "$k = $v<br>"; ?> |
|
ex.0109 zz0109.php |
พจนานุกรมแบบเลือกคำจาก select
<?
$a = array();
$a["ant"] = "มดเป็นแมลงชนิดหนึ่ง";
$a["cat"] = "แมวเป็นสัตว์สี่เท้า";
$a["dog"] = "สุนัข(หมา)เป็นสัตว์สี่เท่าไม่ชอบแมว";
$a["fish"] = "ปลาเป็นสัตว์น้ำ";
echo "<form action='' method=get><select name=k>";
foreach($a as $k => $v)
echo "<option value=$k>$k";
echo "</select><input type=submit></form>";
if (isset($_REQUEST["k"])) {
foreach($a as $k => $v) {
if ($k == $_REQUEST["k"])
echo "$k = $v<br>";
}
}
?>
|
|
ex.0110 zz0110.php |
ค้นหาคำใน String แล้วเน้นคำ
<?
$a = array();
$a["ant"] = "มดเป็นแมลงชนิดหนึ่ง";
$a["cat"] = "แมวเป็นสัตว์สี่เท้า";
$a["dog"] = "สุนัข(หมา)เป็นสัตว์สี่เท่าไม่ชอบแมว";
$a["fish"] = "ปลาเป็นสัตว์น้ำ";
echo "<form action='' method=get>
<input name=s value=แมว>
<input type=submit></form>";
if (isset($_REQUEST["s"])) {
$r = $_REQUEST["s"];
foreach($a as $k => $v) {
if (stristr($v,$r)) {
$v=str_replace($r,"<b>$r</b>",$v);
echo "$k = $v<br>";
}
}
}
?>
|
|
ex.0111 zz0111.php |
นำอาร์เรย์ไปเขียนในตาราง <table width=50% align=center border=1> <? $a = array(); $a["ant"] = "มดเป็นแมลงชนิดหนึ่ง"; $a["cat"] = "แมวเป็นสัตว์สี่เท้า"; $a["fish"] = "ปลาเป็นสัตว์น้ำ"; foreach($a as $k => $v) echo "<tr><td>$k</td><td>$v</td></tr>"; ?> </table> |
|
ex.0112 zz0112.php |
พิมพ์ตารางแยกสีละบรรทัด
<table width=50% bgcolor=yellow>
<?
$a = array();
$a["ant"] = "มดเป็นแมลงชนิดหนึ่ง";
$a["bat"] = "ค้างคาวเป็นสัตว์ปีก";
$a["cat"] = "แมวเป็นสัตว์สี่เท้า";
$a["fish"] = "ปลาเป็นสัตว์น้ำ";
$i = 0;
foreach($a as $k => $v) {
if ($i % 2 == 0)
echo "<tr><td>$k $v</td></tr>";
else
echo "<tr bgcolor=red><td>$k $v</td></tr>";
$i++;
}
?>
</table>
|
|
ex.0113 zz0113.php |
การจัดเรียงค่าในอาร์เรย์ <? $a = array(9,5,3,6); sort($a); foreach($a as $v) echo $v; rsort($a); foreach($a as $v) echo $v; ?> |
|
ex.0114 zz0114.php |
ประกาศอาร์เรย์แบบกำหนด Key เป็นข้อความ
<?
$age = array("boy"=>12,"tom"=>31,"big"=>22);
foreach($age as $v) echo $v;
echo "<br>";
foreach($age as $k => $v)
echo "$k => $v<br>";
?>
|
|
ex.0115 zz0115.php |
ประกาศทีละค่า และเรียงตาม key <? $age["boy"] = 12; $age["tom"] = 31; $age["big"] = 22; ksort($age); foreach($age as $v) echo $v; echo "<br>"; krsort($age); foreach($age as $k => $v) echo "$k => $v<br>"; ?> |
|
ex.0116 zz0116.php |
จับความเร็ว เมื่อทำงานกับอาร์เรย์
<?
list($usec, $sec) = explode(" ", microtime());
$start = (float)$usec + (float)$sec;
for($i=1;$i<=1000000;$i++) {
$a = rand(65,90);
if (isset($c[$a])) $c[$a]++; else $c[$a] = 1;
}
ksort($c);
foreach($c as $k => $v) {
echo chr($k)." $k $v<br>";
}
list($usec, $sec) = explode(" ", microtime());
$stop = (float)$usec + (float)$sec;
$s = ($stop - $start) / 1;
echo $s. " Seconds";
?>
|
|
ex.0117 zz0117.php |
รายงานแยกหน้า กับอาร์เรย์
<?
for($i=1;$i<=30;$i++) {
$a = rand(65,90);
if (isset($c[$a])) $c[$a]++; else $c[$a] = 1;
}
$tot = count($c);
if(isset($_GET["page"]))
$page = $_GET["page"]; else $page = 1;
$lpp = 5; // line per page
$totpage = round(($tot / $lpp) + 0.499);
for($p=1;$p<=$totpage;$p++)
echo "<a href=?page=$p>$p</a> ";
$start = $lpp * ($page - 1) + 1;
$stop = $lpp * $page;
if ($stop > $tot) $stop = $tot;
echo "<hr>";
ksort($c);
foreach($c as $k => $v) echo chr($k);
echo "<hr>";
$j = 1;
foreach($c as $k => $v) {
if ($j>=$start && $j<=$stop) {
echo chr($k)." $k $v<br>";
}
$j++;
}
?>
|
2. แฟ้มข้อความ (Text File)
แบบฝึกหัด ? ทดสอบกับฟอร์ม หลาย ๆ แบบ ? สร้างระบบสมาชิก |
|
ex.0201 zz0201.php |
สร้างแฟ้ม และเขียนทับข้อมูลเดิม
<?
$f = fopen("data1.txt","w");
fputs($f,"101,200\n");
fputs($f,"102,150\n");
fputs($f,"103,180\n");
fclose($f);
?>
|
|
ex.0202 zz0202.php |
อ่านข้อมูลจากแฟ้มด้วย fopen
<?
echo "<pre>";
$f = fopen("data1.txt","r");
while(!feof($f)){
$d = fgets($f,1000);
echo "$d<hr color=red>";
}
fclose($f);
?>
|
|
ex.0203 zz0203.php |
อ่านข้อมูล แบบตรวจค่าก่อนแสดงผล
<?
echo "<pre>";
$f = fopen("data1.txt","r");
while(!feof($f)){
$d = fgetss($f,1000);
if ($d) echo "$d<hr color=red>";
}
fclose($f);
?>
|
|
ex.0204 zz0204.php |
ตรวจแฟ้มก่อนอ่านข้อมูลมาแสดง
<?
if (file_exists("data1.txt")) {
$f = file("data1.txt");
foreach($f as $v){ echo $v."|<br>"; }
}
?>
|
|
ex.0205 zz0205.php |
พิมพ์เลขลำดับนำหน้าระเบียน
<?
$f = file("data1.txt");
for($i=0;$i<count($f);$i++){
echo $i + 1 . " : $f[$i]<br>";
}
?>
|
|
ex.0206 zz0206.php |
อ่านข้อมูลมาแยก field ลงตาราง
<?
echo "<table border=1>";
$f = file("data1.txt");
foreach($f as $v){
$d = split(",",$v);
if ($d) echo "<tr><td>$d[0]<td>$d[1]";
}
echo "</table>";
?>
|
|
ex.0207 zz0207.php |
หาผลรวมเฉพาะบางเขตข้อมูล
<?
$sum = 0;
$f = file("data1.txt");
foreach($f as $v){
$d = split(",",$v);
$sum += $d[1];
}
echo $sum;
?>
|
|
ex.0208 zz0208.php |
เพิ่มข้อมูล 1 ระเบียน
<?
$f = fopen("data1.txt","a");
fputs($f,"104,600\n");
fclose($f);
?>
|
|
ex.0209 zz0209.php |
รับข้อมูลจาก form เพิ่มระเบียนใหม่
<form action=''>
<input name=id size=5 value=105>
<input name=salary size=5 value=280>
<input type=submit></form>
<?
if (isset($_REQUEST["id"])) {
$f = fopen("data1.txt","a");
fputs($f,$_REQUEST["id"].",");
fputs($f,$_REQUEST["salary"]."\n");
fclose($f);
}
?>
|
|
ex.0210 zz0210.php |
รับข้อมูลจาก form ลบระเบียนเดิม
<form action=''>
<input name=id size=5 value=106>
<input type=submit></form>
<?
if (isset($_REQUEST["id"])) {
$fo = file("data1.txt");
$fn = fopen("data1.txt","w");
foreach($fo as $v){
$r = split(",",$v);
if ($r[0] == $_REQUEST["id"])
echo "del : $r[0]";
else
fputs($fn,$v);
}
fclose($fn);
}
?>
|
|
ex.0211 zz0211.php |
รับข้อมูลจาก form เปลี่ยนระเบียนเดิม
<form action=''>
<input name=id size=5 value=103>
<input name=salary size=5 value=500>
<input type=submit></form>
<?
if (isset($_REQUEST["id"])) {
$fo = file("data1.txt");
$fn = fopen("data1.txt","w");
foreach($fo as $v){
$r = split(",",$v);
if ($r[0] == $_REQUEST["id"]) {
fputs($fn,$_REQUEST["id"].",");
fputs($fn,$_REQUEST["salary"]."\n");
} else
fputs($fn,$v);
}
fclose($fn);
}
?>
|
|
ex.0212 zz0212.php |
อ่านเว็บเพจหน้านี้มาแสดงแบบลบ html tag
<?
echo "<pre>";
$f = fopen("training492.htm","r");
while(!feof($f)) {
echo fgetss($f,10000);
}
fclose($f);
?>
|
|
ex.0213 zz0213.php |
เลือกบางส่วนของเว็บเพจมาแสดง
<?
$f = fopen("training492.htm","r");
$found = 0;
$start = "<a name=ch0102></a>";
$stop = "<a name=ch0103></a>";
while(!feof($f)) {
$d = fgets($f,10000);
if (stristr($d,$start)) $found = 1;
if (stristr($d,$stop)) $found = 0;
if ($found == 1) echo $d;
}
fclose($f);
?>
|
|
ex.0214 zz0214.php |
อ่านแฟ้มใน directory ปัจจุบันมาแสดงเป็นภาพ
<?
$d = opendir(".");
while($l = readdir($d)) {
if (substr($l,-3) == "jpg") echo "<img src=$l> ";
}
closedir($d);
?>
|
3. มายเอสคิวแอล (MySQL)
แบบฝึกหัด ? ฝึกสร้างฐานข้อมูล และตารางหลาย ๆ ครั้ง ? ฝึกทั้งแบบ phpmyadmin และ command line |
| ex.0301 |
สร้างตารางและเพิ่มข้อมูลผ่าน Command Line
mysql> use test;
mysql> create table hello(
->m1 int ,
->m2 varchar(50),
->m3 double);
mysql> create table m(m1 int,m2 varchar(50),m3 int);
mysql> insert into m values(11,"น้อย",15);
mysql> insert into m values(12,"ต้อง",35);
mysql> insert into m values(13,"ปาน",20);
mysql> insert into m values(14,"ขาว",5);
mysql> insert into m values(15,"ปอง",25);
mysql> show databases;
mysql> show tables;
mysql> show columns from m;
mysql> drop table wow1;
mysql> drop database oho;
|
|
ex.0302 zz0302.php |
อ่านข้อมูลจาก mysql มาแสดงผล
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "select * from m";
$r = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($r)) {
echo "$o->m1 $o->m2 $o->m3<br>";
}
echo "จำนวน ".mysql_num_rows($r);
mysql_close($c);
?>
|
|
ex.0303 zz0303.php |
เพิ่มระเบียนใหม่
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "insert into m values(16,'ทอง',26)";
$r = mysql_db_query("test",$q);
echo "result ";
if ($r) echo "ok"; else echo "error";
?>
|
|
ex.0304 zz0304.php |
ลบระเบียนตามเงื่อนไข
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "delete from m where m1 = 16";
$r = mysql_db_query("test",$q);
echo "result ";
if ($r) echo "ok"; else echo "error";
?>
|
|
ex.0305 zz0305.php |
เปลี่ยนข้อมูลตาม m1
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "update m set m2='ใหม่',m3=88 where m1=12";
$r = mysql_db_query("test",$q);
echo "result ";
if ($r) echo "ok"; else echo "error";
?>
|
|
ex.0306 zz0306.php |
รวมฟอร์ม และคำสั่งปรับปรุงด้วยกัน
<form action=''>
m1: <input name=x1><br>
m2: <input name=x2><br>
m3: <input name=x3><br>
<input type=submit value=update>
</form>
<?
if (isset($_GET["x1"])) {
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "update m set ";
$q.= "m2='".$_GET["x2"]."',";
$q.= "m3=".$_GET["x3"]." ";
$q.= "where m1=".$_GET["x1"];
$r = mysql_db_query("test",$q);
echo "result ";
if ($r) echo "ok"; else echo "error";
}
?>
|
4. มายเอสคิวแอลอีกครั้ง (Again MySQL)
แบบฝึกหัด ? เขียนโปรแกรมสร้างตาราง และเพิ่มระเบียนใหม่ ? สร้างตารางใหม่ที่สัมพันธ์กัน และทำรายงานที่สัมพันธ์กัน |
| ex.0401 |
SQL Command for 4 Tables
use test;
create table cust(
cust int key auto_increment,
cname varchar(50));
create table prod(
pro int key auto_increment,
pname varchar(50),
price double,
amt int);
create table o(
oid int key auto_increment,
cust int);
create table odtl(
oid int,
pro int,
quan int);
insert into cust(cname)values("ต้อย");
insert into cust(cname)values("แดง");
insert into cust(cname)values("หวาน");
insert into prod values("","สมุด",10,100);
insert into prod values("","มีด",5,200);
insert into prod values("","เข็ม",20,100);
insert into o values("",1);
insert into odtl values(1,1,20);
insert into odtl values(1,3,5);
insert into o values("",3);
insert into odtl values(2,2,10);
insert into odtl values(2,3,15);
|
|
ex.0402 zz0402.php |
ใบสั่งแต่ละใบมีสินค้ากี่รายการ
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "select pro,count(pro) as p from odtl
group by pro";
$r = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($r)) {
echo "$o->pro $o->p<br>";
}
echo "จำนวน ".mysql_num_rows($r);
mysql_close($c);
?>
|
|
ex.0403 zz0403.php |
ใบสั่งแต่ละใบ มีใคร ซื้ออะไรบ้าง
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "
select o.oid, o.cust, odtl.pro
from (o inner join odtl on o.oid = odtl.oid)
";
$r = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($r)) {
echo "$o->oid $o->cust $o->pro<br>";
}
mysql_close($c);
?>
|
|
ex.0404 zz0404.php |
ยอดซื้อของใบสั่งแต่ละใบ เป็นเงินเท่าใด
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "select odtl.oid, sum(odtl.quan * prod.price) as t
from odtl,prod
where odtl.pro = prod.pro
group by odtl.oid
";
$r = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($r)) {
echo "$o->oid $o->t<br>";
}
mysql_close($c);
?>
|
|
ex.0405 zz0405.php |
ยอดซื้อของใบสั่งแต่ละใบ มีใครซื้อ เป็นเงินเท่าใด
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "select odtl.oid, o.cust, cust.cname,
sum(odtl.quan * prod.price) as t
from odtl,prod,o,cust
where odtl.pro = prod.pro and o.oid = odtl.oid
and o.cust = cust.cust group by odtl.oid
";
$r = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($r)) {
echo "$o->oid $o->cust $o->cname $o->t<br>";
}
mysql_close($c);
?>
|
|
ex.0406 zz0406.php |
ดูข้อมูลอย่างละเอียดของใบสั่งที่ 1
<?
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "select o.oid, o.cust, cust.cname
from o,cust
where o.cust = cust.cust and o.oid = 1";
$r = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($r)) {
echo "$o->oid $o->cust $o->cname<br>";
}
$q = "select prod.pro, prod.pname, odtl.oid,
sum(odtl.quan * prod.price) as t
from odtl,prod
where odtl.pro = prod.pro and odtl.oid = 1
group by odtl.pro";
$r = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($r)) {
echo "$o->pro $o->pname $o->t<br>";
}
mysql_close($c);
?>
|
|
ex.0407 zz0407.php |
ลบตาราง ก่อนสร้างตารางใหม่
<?
$db = "test";
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "drop table if exists million1";
$r = mysql_db_query($db,$q);
$q = "CREATE TABLE `million1` (
`a` INT NOT NULL AUTO_INCREMENT ,
`b` INT NOT NULL ,
`c` INT NOT NULL ,
`d` INT NOT NULL ,
PRIMARY KEY ( `a` ) ,
INDEX ( `b` )
)";
$r = mysql_db_query($db,$q);
?>
|
|
ex.0408 zz0408.php |
ลบ แล้วเพิ่มระเบียนใหม่จำนวนมาก
<?
$db = "par";
echo "Please wait!<br>";
list($usec, $sec) = explode(" ", microtime());
$start = (float)$usec + (float)$sec;
// ===
$db = "par";
$c = mysql_connect("127.0.0.1:3306","root","");
$q= "delete from million1";
$r= mysql_db_query($db,$q);
for($i=1;$i<=8000;$i++) {
$a= rand(65,90);
$q= "insert into million1(b,c,d)values($i,$i,$a)";
$r= mysql_db_query($db,$q);
}
mysql_close($c);
// ===
list($usec, $sec) = explode(" ", microtime());
$stop = (float)$usec + (float)$sec;
$s = $stop - $start;
echo $s. " Seconds";
?>
|
|
ex.0409 zz0409.php |
เลือกข้อมูลมาแสดง จากข้อมูลปริมาณมาก
<?
echo "Please wait!<br>";
list($usec, $sec) = explode(" ", microtime());
$start = (float)$usec + (float)$sec;
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "select d from million1 limit 0,5";
$r = mysql_db_query("test",$q);
while ($o = mysql_fetch_object($r)) {
echo "$o->d<br>";
}
mysql_close($c);
list($usec, $sec) = explode(" ", microtime());
$stop = (float)$usec + (float)$sec;
$s = $stop - $start;
echo $s. " Seconds";
?>
|
|
ex.0410 zz0410.php |
เปรียบเทียบการค้นหาจาก index
<?
echo "Please wait!<br>";
$start = microtime();
$c = mysql_connect("127.0.0.1:3306","root","");
$q = "select * from million1";
$r = mysql_db_query("par",$q);
echo mysql_num_rows($r);
gap();
//
$start = microtime();
$q = "select * from million1 where c = 7000";
$r = mysql_db_query("par",$q);
while ($o = mysql_fetch_object($r)) echo "$o->d ";
gap();
//
$start = microtime();
$q = "select * from million1 where b = 7000";
$r = mysql_db_query("par",$q);
while ($o = mysql_fetch_object($r)) echo "$o->d ";
gap();
//
mysql_close($c);
//
function gap (){
global $start;
list($usec1, $sec1) = explode(" ", $start);
list($usec2, $sec2) = explode(" ", microtime());
$s = ($usec2 + $sec2) - ($usec1 + $sec1);
echo "<br>$s Seconds<hr>";
}
?>
|
5. มายเอสคิวแอลเก็บภาพ (Image in MySQL)
แบบฝึกหัด ? นำไปใช้ร่วมกับตารางอื่น เช่น พนักงาน ? สร้าง Gallery แบบของท่าน |
| ex.0501 |
สร้างตารางเก็บภาพ CREATE TABLE file ( id mediumint(8) unsigned auto_increment, datatype varchar(60) default 'application/octet-stream', name varchar(120) default '', size bigint(20) unsigned default '1024', filedate datetime default '0000-00-00 00:00:00', PRIMARY KEY (id) ) TYPE=MyISAM; CREATE TABLE filedata ( id mediumint(8) unsigned auto_increment, masterid mediumint(8) unsigned default '0', filedata blob, PRIMARY KEY (id), KEY master_idx (masterid) ) TYPE=MyISAM ; |
|
ex.0502 zz0502.php |
ฟอร์มส่งข้อมูล <form action=zz0503.php method=post enctype="multipart/form-data"> <input type=file name=file1> <input type=submit name=submit value=submit> </form> |
|
ex.0503 zz0503.php |
นำข้อมูลภาพไปเก็บใน MySQL
<?
$c = mysql_connect("127.0.0.1:3306","root","");
mysql_select_db("test", $c);
if (isset($HTTP_POST_FILES["file1"])) {
$SrcPathFile = $HTTP_POST_FILES["file1"]["tmp_name"];
$SrcFileType = $HTTP_POST_FILES["file1"]["type"];
$DstFileName = $HTTP_POST_FILES["file1"]["name"];
clearstatcache();
$time = filemtime($SrcPathFile);
$storedate = date("Y-m-d H:i:s", $time);
if (file_exists($SrcPathFile)) {
$q = "insert into file (datatype, name, size, filedate) values ('";
$q .= $SrcFileType . "', '" . $DstFileName . "', " . filesize($SrcPathFile);
$q .= ", '" . $storedate . "')";
if (!$RES = mysql_query($q, $c)) die("มีปัญหากับ : ". $q);
$fileid = mysql_insert_id($c);
$fp = fopen($SrcPathFile, "rb");
while (!feof($fp)) {
$binarydata = addslashes(fread($fp, 65535));
$q = "insert into filedata (masterid, filedata) values (";
$q .= $fileid . ", '" . $binarydata . "')";
if (!mysql_query($q, $c)) die("มีปัญหากับ : ". $q);
}
fclose($fp);
echo "Upload Complete<br>";
echo "<img src=zz0504.php?id=". $fileid . "><br>";
echo "<a href=zz0504.php?id=". $fileid . ">click</a>";
} }
?>
|
|
ex.0504 zz0504.php |
นำภาพออกจาก MySQL มาใช้
<?
$c = mysql_connect("127.0.0.1:3306","root","");
mysql_select_db("test", $c);
$nodelist = array();
if (isset($_GET["id"])) {
$q = "select * from file where id = " . $_GET["id"];
if (!$RES = mysql_query($q, $c)) die("อ่านข้อมูลไม่ได้" . $q);
if (mysql_num_rows($RES) != 1) die("ไม่พบรหัสนี้!" . $q);
$FileObj = mysql_fetch_object($RES);
$q = "select id from filedata
where masterid = " . $_GET["id"] . " order by id";
if (!$RES = mysql_query($q, $c)) die("ไม่พบรหัสนี้!" . $q);
while ($CUR = mysql_fetch_object($RES)) {
$nodelist[] = $CUR->id;
}
Header ( "Content-Type: $FileObj->datatype" );
Header ( "Content-Length: " . $FileObj->size );
Header ( "Content-Disposition: attachment; filename=$FileObj->name" );
for ($Z = 0 ; $Z < count($nodelist) ; $Z++) {
$q = "select filedata from filedata where id = " . $nodelist[$Z];
if (!$RESX = mysql_query($q, $c)) die("ไม่พบรหัสนี้!" . $q);
$DataObj = mysql_fetch_object($RESX);
echo $DataObj->filedata;
}
} else { echo "zz0504.php?id=1"; }
?>
|
|
ex.0505 zz0505.php |
เรียกภาพมาใช้ได้หลายวิธี <img src=zz0504.php?id=1> <form action=zz0504.php method=get> <input name=id value=1> <input type=submit> </form> |
6. ไมโครซอฟต์แอคเซส (Microsoft Access)
แบบฝึกหัด ? เพิ่มตารางพนักงาน ? เขียนโปรแกรมเพิ่ม ลบ แก้ไขให้สมบูรณ์ |
|
ex.0601 zz0601.php |
การเชื่อมต่อฐานข้อมูล แบบ DNSLess
<?
$db_connection = new COM("ADODB.Connection");
$db_connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=";
$db_connstr.= realpath("order497.mdb").";";
$db_connection->open($db_connstr);
$rs = $db_connection->execute("select * from o");
$rs_fld0 = $rs->Fields(0);
$rs_fld1 = $rs->Fields(1);
while (!$rs->EOF) {
echo $rs_fld0->name . "=".$rs_fld0->value ." ";
echo $rs_fld1->name . "=".$rs_fld1->value ."<br>";
$rs->MoveNext();
}
$rs->Close();
?>
|
|
ex.0602 zz0602.php |
เพิ่มระเบียนใหม่ แบบ DNSLess
<?
$db_connection = new COM("ADODB.Connection");
$db_connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=";
$db_connstr.= realpath("order497.mdb").";";
$db_connection->open($db_connstr);
$q = "insert into o (cust)values(6)";
if ($rs = $db_connection->execute($q))
echo "insert : ok"; else echo "insert : error";
?>
|
|
ex.0603 zz0603.php |
การเชื่อมต่อฐานข้อมูล แบบ ODBC
<?
$cnx = odbc_connect('o497','','');
$SQL_Exec_String = "select * from o";
$cur= odbc_exec( $cnx, $SQL_Exec_String );
while( odbc_fetch_row( $cur ) ) {
$field1= odbc_result( $cur, 1 );
$field2= odbc_result( $cur, 2 );
echo "$field1 $field2 <br>";
}
odbc_close($cnx);
?>
|
|
ex.0604 zz0604.php |
เพิ่มระเบียนใหม่ แบบ ODBC
<?
$cnx = odbc_connect('o497','','');
$q = "insert into o(cust)values(17)";
if ($cur= odbc_exec( $cnx, $q ))
echo "insert : ok"; else echo "insert : error";
?>
|
7. เขียนแฟ้มภาพ (PNG Header)
แบบฝึกหัด ? วาดรูปอื่นดู ? รับคำสั่งจากฟอร์มไปกำหนดรูป ? เขียนเลขที่อ่านได้จากฐานข้อมูล |
|
ex.0701 zz0701.php |
เขียนอักษร 2 บรรทัด
<?
header("Content-type: image/png");
$im = @imagecreate (120,60);
$yellow = ImageColorAllocate($im, 255, 255, 0);
imagefill($im, 0, 0, ImageColorAllocate($im, 0, 0, 0));
imagestring ($im, 1, 5, 10, "thai", $yellow);
imagestring ($im, 5, 50, 20, "lampang", $yellow);
imagepng ($im);
imagedestroy($im);
?>
|
|
ex.0702 zz0702.php |
เขียนลายเส้นแบบต่าง ๆ
<?
header("Content-type: image/png");
$im = @imagecreate (120,60);
$yellow = ImageColorAllocate($im, 255, 255, 0);
imagefill($im, 0, 0, ImageColorAllocate($im, 0, 0, 0));
imageline($im, 5, 15, 110, 55, $yellow);
imagerectangle($im, 5, 20, 80, 40, $yellow);
imagearc($im, 30, 30, 15, 50, 0, 280, $yellow);
imagepng ($im);
imagedestroy($im);
?>
|
|
ex.0703 zz0703.php |
อ่านภาพมาแสดง
<?
header("Content-Type: image/png");
$fn=fopen("a3.jpg","r");
fpassthru($fn);
?>
|
|
ex.0704 zz0704.php |
เปิดภาพพร้อมเขียนตัวอักษร
<?php
$im = imagecreatefrompng("a3.png");
$yellow = ImageColorAllocate($im, 255, 255, 0);
imagestring ($im, 5, 1, 10, "THAI", $yellow);
imagepng ($im);
imagedestroy($im);
?>
|
8. ส่งข้อมูลเข้าเครื่องบริการ (Uploading)
แบบฝึกหัด ? ถ้า upload หบายแฟ้มจะทำอย่างไร ? unlink ใช้ลบแฟ้มได้ แล้วใช้อย่างไร |
|
ex.0801 zz0801.php |
ฟอร์มส่งแฟ้ม <form action=zz0802.php enctype="multipart/form-data" method=post> <input type=file name=uploadfile> <input type=submit> </form> |
|
ex.0802 zz0802.php |
นำแฟ้มเข้า Server
<?
if (isset($_FILES["uploadfile"]["name"])) {
$tmp = $_FILES["uploadfile"]["tmp_name"];
if(copy($tmp,"./".$_FILES["uploadfile"]["name"]))
echo "upload : process";
else
echo "upload : error";
}
?>
|
|
ex.0803 zz0803.php |
ตรวจสอบก่อนลบแฟ้ม
<?
if (file_exists("l.php")) {
unlink("l.php");
}
?>
|
|
ex.0804 zz0804.php |
โปรแกรมส่งแฟ้มแบบมีฟอร์มในตัว <form action='' enctype="multipart/form-data" method=post> <input name=new value="new.jpg"> <input type=file name=uploadfile> <input type=submit> </form> <? if (isset($_POST["new"])) if (copy($_FILES["uploadfile"]["tmp_name"],"./".$_POST["new"])) echo "upload : completely"; ?> |
9. การตรวจสอบ (Verification)
แบบฝึกหัด ? ลองรับคำสั่งจากฟอร์ม ? ลองเขียนส่วน delete และ update |
|
ex.0901 zz0901.php |
การตรวจรหัสผ่าน <form action=''> <input name=s value="a"> <input type=submit> </form> <? $p = '$1$WI5.ni4.$B6ZHKHpVRFhzzkMpQRp8b1'; if (isset($_GET["s"]) && crypt($_GET["s"],$p) == $p) echo "pass"; ?> |
|
ex.0902 zz0902.php |
การเข้ารหัสข้อมูลแบบต่าง ๆ <pre><? $a = 'ลอง/aaa // \ // \ '; // Un-quote string quoted with addslashes() echo stripslashes($a)."\n"; # Output: ลอง/aaa // // // Quote string with slashes echo addslashes($a)."\n"; # Output: ลอง/aaa // \\ // \\ // URL-encodes string echo urlencode($a)."\n"; # Output: %C5%CD%A7%2Faaa+%2F%2F+%5C+%2F%2F+%5C+ // Decodes URL-encoded string echo urldecode(urlencode($a))."\n"; # Output: ลอง/aaa // \ // \ // Convert special characters to HTML entities echo htmlspecialchars($a)."\n"; # Output: ลอง/aaa // \ // \ // Convert all applicable characters to HTML entities echo htmlentities($a)."\n"; # Output: Åͧ/aaa // \ // \ // Encodes data with MIME base64 echo base64_encode($a)."\n"; # Output: xc2nL2FhYSAvLyBcIC8vIFwg // Decodes data encoded with MIME base64 echo base64_decode(base64_encode($a))."\n"; # Output: ลอง/aaa // \ // \ // One-way string encryption (hashing) (ผลไม่ซ้ำกัน) echo crypt($a)."\n"; # Output: $1$.Q1.tg/.$rH.lR8C2COYhyWZv4Ddkw0 ?> |
|
ex.0903 zz0903.php |
ฟอร์มส่งรหัสผู้ใช้ และรหัสผ่าน <form action=zz0904.php> <table> <tr><td>UserName:<td><input name=u><br> <tr><td>Password:<td><input name=p type=password><br> </table> <input type=submit value=Login> </form> <form action=zz0904.php> <input name=u type=hidden> <input name=p type=hidden value=logout> <input type=submit value=Logout> </form> |
|
ex.0904 zz0904.php |
ตรวจสอบ และส่งค่าเข้า cookie
<?
if (isset($_GET["u"])) {
if ($_GET["u"]=="a" && $_GET["p"]=="bbbb") {
setcookie("u","ok",time()+3600);
echo "Login : Complete<br>";
echo "<a href=zz0906.php>zz0906.php</a>";
}
}
?>
|
|
ex.0905 zz0905.php |
ตรวจสอบ และส่งค่าเข้า session
<?
session_start();
if (isset($_GET["u"])) {
if (strlen($_GET["p"]) < 3) {
echo "รหัสผ่านต้องมากกว่า 3 ตัวอักษร";
exit;
}
if ($_GET["u"]=="a" && $_GET["p"]=="bbbb") {
$_SESSION["right"] = "ok";
echo "Login : Complete<br>";
echo "<a href=zz0906.php>zz0906.php</a>";
} else {
$_SESSION["right"] = "";
echo "Login : Fail";
exit;
}
} else exit;
?>
|
|
ex.0906 zz0906.php |
ทดสอบค่า session
<?
session_start();
if ($_SESSION["right"]!="ok") {
echo "ท่านยังไม่ได้รับสิทธิเข้าใช้";
exit;
}
?>
<img src=a3.jpg>
|