Code

[PHP] Guest Book : Part 2

posted on 09 Sep 2006 01:45 by rije  in Code

ห่างหายไปนานเลย โทษทีครับ
เรามาต่อโค้ดกันดีกว่านะ จาก entry ที่แล้ว ในส่วนแรก

<form method="post" action="gb_save.php" id="form" name="gb">

ที่ action ผมให้มันส่งข้อมูลไปเก็บเอาไว้ โดยรันไปที่ gb_save.php
ซึ่งจะเป็นหน้าเพจอีกหน้าหนึ่ง โดยจะมีโค้ด php ดังนี้ครับ

<?
if(empty($name)){
$name="unknow";
}
if(empty($email)){
$email="-";
}
if(empty($url)){
$email="-";
}
if(empty($title)){
$title="no title";
}
if(empty($text)){
$text="test guestbook<br>you can not post guestbook";
}

include("connect.php");
$command_sql="insert into gb(name,email,url,text,title) values('$name','$email','$url','$text','$title')";

$check=mysql_query($command_sql);
if(!$check){
echo "command sql fail";
exit();
}
?>

Thx for your message<br />
<a href="inguest.php" target=_parent>
Click back to Guest Book</a>

ผมนำโค้ดนี้ใส่ไว้ระหว่างแท็ก <body>...</body>
แต่เซฟไฟล์ให้เป็น .php ครับ

*---------------------------------------------*

ในส่วนแรกที่เป็นสีม่วง ผมให้เช็คค่าตัวแปรที่รับมา
ซึ่งคือค่าที่กรอกจาก entry ที่แล้ว (ดูที่ตัวแปร $...)
โดยใช้ if ในการวนลูป (loop) คือถ้าค่าตัวแปรว่าง
ให้ใส่ค่าตามใน "" เช่น $email="-";

ในส่วนที่ 2 สีฟ้า include ดึงเอาไฟล์ connect.php
มาใช้ ซึ่งจะใช้เชื่อมต่อเข้าฐานข้อมูล โดยจะ
ส่งค่าเข้าฐานข้อมูล ดูจากบรรทัด
$command_sql

ส่วนที่ 3 สร้างตัวแปร check ขึ้นมา เพื่อเช็คดูว่า
MySQL ของเรามีปัญหาหรือไม่ ถ้ามีปัญหา
จะเจอคำสั่ง echo แล้ว
exit(); ออกไปทันที
หากไม่มีปัญหาจะข้ามส่วนนี้ไปยังส่วนต่อไป

ในส่วนที่ 4 หากข้อมูลถูกส่งไปแล้วจะขึ้นข้อความ
Thx for your message ขึ้นมาครับ

------------------------------------------------

ต่อไปจากข้างบน include เอาไฟล์ connect.php
มาใช้ เราไปดูโค้ดที่ไฟล์ตัวนี้กันครับ

<?
mysql_connect("localhost","user","password")
or die("user can't connect to database please wait for fix");
mysql_select_db("database") or
die("can't connect to database maybe server is down");
?>

เขียนโค้ดให้เชื่อมต่อไปยังฐานข้อมูล โดยดูที่ตัวหนานะครับ
localhost ในที่นี้หากใช้ฐานข้อมูลออนไลน์มันจะมี url ให้ครับ
แต่ถ้าเป็น ฐานข้อมูลที่อยู่ที่เครื่อง server ของเราก็ใช้คำนี้ได้ครับ
user คือ id สำหรับเชื่อมเข้าสู่ฐานข้อมูลครับ
password ก็รหัสผ่านครับ
ถ้าเกิดว่าเข้าไม่ได้จะขึ้นข้อความ user can't connect ขึ้นมา
database ให้ใส่ชื่อฐานข้อมูลที่สร้างครับ
ถ้าเชื่อมต่อเข้าฐานข้อมูลตัวนี้ไม่ได้ก็จะขึ้นข้อความว่า
can't connect to database ครับ

-*************************************************-

สำหรับ Guest Book ก็มีเพียงเท่านี้เองครับ
ที่ Guest Book ที่ผมให้ url ไว้นั้น ไม่สามารถส่งข้อมูลได้
รู้สึกว่าจะเป็นที่ฐานข้อมูลครับ T[]T ยังไงก็ลองเอาโค้ดไปปรับ
ใช้ดูนะครับ สวัสดีครับ~!

[PHP] Guest Book : Part 1 + 5000 HITS!

posted on 01 Sep 2006 14:47 by rije  in Code

วันนี้ผมคิดว่าผมน่าจะมีสติพอจะมาบอกเรื่อง PHP นะครับ
หลังจากไม่ได้นอนมาหลายวัน พอได้นอนยาวๆ แล้วมึนเลยครับ
จาก 2 entry ที่แล้ว ผมได้ฝากเว็บ Guest Book ไว้
ตอนนี้ผมรู้แล้วครับว่าทำไมข้อมูลถึงไม่เข้า database
นั่นเป็นเพราะ database เองครับ -[]- ของฟรีก็งี้แหละครับ!
วันนี้ผมขอลงเรื่อง code : Guest Book อย่างเดียวนะครับ
ผมใช้ MySQL ตัวนี้ครับ ซึ่งไว้คราวหน้าสำหรับเรื่องนี้ครับ

-------------------------------------------------------------------

เริ่มแรกผมออกแบบก่อนว่าจะให้รูปแบบ guest book ผมเป็นยังไง

[*************************************************]

<form method="post" action="gb_save.php" id="form" name="gb">
<table width="400" height="335" valign=top>
<tr><td height=10></td></tr>
<tr><td CLASS=textcon align="right">

name :
<INPUT TYPE="TEXT" NAME="name" id="name"
class=textload VALUE="<? echo $name; ?>">

<br>
e-mail :
<INPUT TYPE="TEXT" NAME="email"
class=textload VALUE="<? echo $email; ?>">

<br>
url :
<INPUT TYPE="TEXT" NAME="url"
class=textload VALUE="<? echo $url; ?>">

<br>
subject :
<INPUT TYPE="TEXT" id="title" NAME="title"
class=textload VALUE="<? echo $title; ?>">
<br>
<TEXTAREA NAME="text" id="text" "ROWS="9"
COLS="60" class=textload><? echo $text; ?> </TEXTAREA>
<input type="hidden" name="name" value="<?=$name; ?>">
<input type="hidden" name="email" value="<?=$email; ?>">
<input type="hidden" name="url" value="<?=$url; ?>">
<input type="hidden" name="text" value="<?=$text; ?>">
<input type="hidden" name="title" value="<?=$title; ?>">

<INPUT TYPE="button" onclick="check()"
NAME="submit" VALUE="s u b m i t" class=textcon>
<INPUT TYPE="RESET" NAME="reset"
VALUE="r e s e t" class=textcon>

</form>

[*************************************************]

จากโค้ด ผมสร้างตารางอยู่ใน <form>...</form>
ผมตั้งชื่อให้ form ว่า gb เพื่อใช้เรียก function มาเช็ค
ส่วนที่เป็นโค้ดด้านใน form คือส่วนที่ให้กรอกรายละเอียด
name , e-mail , url , subject และกล่องข้อความ (textarea)

ใน input ใส่โค้ด VALUE="<? echo $name; ?>"
ใน่ส่วนนี้ไม่จำเป็นต้องใส่ก็ได้ครับ อันนี้เป็นโค้ดตัวเก่า
ที่ผมทำไว้สำหรับ back กลับมาแก้ข้อความเดิมได้นะครับ

พวก input , textarea คงจะไม่งงกันนะครับ ใส่ส่วนของ
input type="button" เมื่อคลิกจะไปทำการ check
ว่าข้อมูลที่กรอกนั้นมีส่วนไหนจำเป็นต้องกรอกแต่
ไม่ได้กรอกบ้าง จะขึ้นหน้าต่างขึ้นมาเตือนครับ

ใส่ไว้ระหว่าง <head>...</head>

[*************************************************]

<script language="javascript">

function check(){
if(document.gb.name.value.length==0){
alert("NAME BLANK IT IS EMPTY");
}
if(document.gb.text.value.length==0){
alert("MESSAGE BLANK IT IS EMPTY");
}
if(document.gb.title.value.length==0){
alert("SUBJECT BLANK IT IS EMPTY");
}

if(document.gb.name.value.length!=0 &&
document.gb.text.value.length!=0 &&
document.gb.title.value.length!=0){

document.gb.submit();
}//end last if

}//END FUNCTION

</script>

[*************************************************]

name ของ form ที่ชื่อ gb ไว้สำหรับเรียก function
ด้านบนนี้ครับ ซึ่งจะเช็คว่า ใส่ name , subject
และข้อความรึเปล่า หากไม่จะขึ้น alert ขึ้นมา ส่วน

if(document.gb.name.value.length!=0 &&
document.gb.text.value.length!=0 &&
document.gb.title.value.length!=0){

document.gb.submit();
}

จะเช็คว่าถ้าหากว่า name , subject และข้อความ
ไม่ว่าง (มีข้อความเขียน) จะ submit ไป
gb_save.php
ซึ่งเพจของ gb_save.php จะว่ากันอีกทีใน entry หน้าครับ

ใน guest book ผมจะให้แสดงข้อความขึ้นมาด้านล่างเลย

[*************************************************]

<?
include("connect.php");
$sql="select * from gb";
$query=mysql_query($sql);
if(!$query){
echo "sql command error";
exit();
}
$row=mysql_num_rows($query);
$i=1;
while($i<=$row){
$data=mysql_fetch_array($query);
$title=$data['title'];
$name=$data['name'];
$email=$data['email'];
$url=$data['url'];
$text=$data['text'];
?>

<table width=370 align=right class=textcon>
<tr><td>
<? echo $title;?>
</td></tr>
<tr><td bgcolor=#696969 class=textw>
<? echo $text;?>
</td></tr>
<tr><td>
<b>Post :</b> <? echo $name;?>
</td></tr>
</table>
<?
$i++;
}
?>

</table>

[*************************************************]

ในที่นี้มี table ซ้อน table ดูตามสีดีๆ นะครับ
ผมให้โค้ด php เป็นสีเขียวออกฟ้าอ่อนๆ นะครับ

ผม include จากเพจ connect.php เข้ามาใช้ (ดูต่อใน entry หน้า)
$sql="select * from gb"; ซึ่งเลือกไฟล์ทั้งหมดในฐานข้อมูล
ซึ่งผมสร้าง table ชื่อ gb ไว้ที่ database ของผม
*
หมายถึงไฟล์ทั้งหมด และผมสร้างตัวแปล query
สำหรับเช็คว่าเชื่อมต่อ sql ได้หรือไม่ และใช้ตัวแปล
$row
เพื่อจะสร้างตารางแสดงข้อมูลจากฐานข้อมูลออกมา

จากนั้นผมสร้าง <table width=370 align=right class=textcon>
เพื่อใช้โชว์ข้อความที่ถูงส่งเข้าฐานข้อมูลไปครับ

สำหรับเพจนี้ผมเซฟโดยใช้ชื่อว่า inguest.php
ดูได้จากลิงค์ไป guest book ที่ 2 entry ที่แล้ว

ถ้าหากมีปัญหาเกิดขึ้นที่ inguest.php ของผมแจ้งให้ทราบ
ด้วยจะดีมากเลยครับ เหอๆ บางทีผมก็ไม่มีเวลาเช็ค
อีกอย่างผมใช้ firefox เปิด แล้วมันจะไม่เหมือนกับ IE
ไว้ entry หน้าจะมาพูดถึงการเชื่อมต่อเข้าฐานข้อมูล
และเกี่ยวกับ My SQL ที่เหลือครับ^[]^/

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ผมลืม counter ตัวเองไป T[]T ตอนนี้มัน 5000+ แล้วครับ!!
ดีจาย~~~~~~~ ขอบคุณที่เข้ามาเยี่ยมชมบล็อคผมนะครับ