Creating a simple PHP guestbook
Last Updated on Saturday, 27 December 2008 15:40 Written by Zack Friday, 26 December 2008 17:21
ခု ကြၽန္ေတာ္ေရးတဲ့ POST ကေတာ့ PHP Based Guest Book တစ္ခုကို ဘယ္လို Create လုပ္တယ္ဆိုတာကို
General ရွင္းျပမွာ ျဖစ္ပါတယ္။ ကြၽန္ေတာ္ Site မွာ ဆိုရင္လည္း Guest Book ရွိပါတယ္။ အဲလိုမ်ိဳး Guest Book
ကို ဘယ္လို Create လုပ္တယ္ဆိုတာ ကို Database Structure ေရာ PHP Coding ပါဘယ္လို အလုပ္လုပ္တယ္
ဆိုတာကို အေသးစိတ္ ရွင္းျပမွာ ျဖစ္ပါတယ္။ ကြၽန္ေတာ္ Site မွာ သုံးထားတာကေတာ့ Joomla ရဲ႕ Guest Book
Component တစ္ခု ျဖစ္ပါတယ္။ Logic က အတူတူပါပဲ UI ေတာ့ကြာပါတယ္။ UI ပိုင္းကေတာ့ CSS
ကိုနားလည္ရင္ နားလည္သေလာက္ ႐ိႈင္းလို႔ ရပါတယ္။ Guest Book အေၾကာင္းေလး စလိုက္ၾကရေအာင္
Overview အေနနဲ႔ ေျပာမယ္ ဆိုရင္ guestbook ဆိုတဲ့ table တစ္ခုရယ္၊
guestbook.php, addguestbook.php, viewguestbook.php ဆိုတဲ့ php file ၃ ခုပဲ လိုပါတယ္။
guestbook table ကို ပုံထဲမွာ ၾကည့္လို႔ ရပါတယ္။ ဒါကေတာ့ query ျဖစ္ပါတယ္။
CREATE TABLE `guestbook` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
`comment` longtext NOT NULL,
`datetime` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Database Site ကလိုအပ္တဲ့ guestbook table ျဖစ္ပါတယ္။ Coding ပိုင္းကို ဆက္လိုက္ၾက ရေအာင္
ပထမ အေနနဲ႔ guestbook.php ကိုစလုပ္ ပါမယ္။ Client Browser မွာ ပုံထဲက အတိုင္းျမင္ရပါမယ္။
Name, email ဆိုတဲ့ textbox ၂ ခုရယ္၊ comment ဆိုတဲ့ textarea ၁ ခုရယ္၊ Submit, Reset ဆိုတဲ့ Button ၂ ခုရယ္၊
"View GuestBook" ဆိုတဲ့ link တစ္ခုကို ေတြ႔ရမွာ ျဖစ္ပါတယ္။
guestbook.php coding ျဖစ္ပါတယ္။
<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td><strong>Test Sign Guestbook </strong></td>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form id="form1" name="form1" method="post" action="addguestbook.php">
Submit ကို Click ရင္ addguestbook.php ကို run ပါလိမ့္မယ္။
<td>
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="117">Name</td>
<td width="14">:</td>
<td width="357"><input name="name" type="text" id="name" size="40" /></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input name="email" type="text" id="email" size="40" /></td>
</tr>
<tr>
<td valign="top">Comment</td>
<td valign="top">:</td>
<td><textarea name="comment" cols="40" rows="3" id="comment"></textarea></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td><strong><a href="viewguestbook.php">View Guestbook</a> </strong></td>
"View Guestbook" link ကို Click ရင္ေတာ့ Entry လုပ္ထားသမ်ွ ေတြကိုျပဖို႔ viewguestbook.php ကို ေခၚပါတယ္။
</tr>
</table>
addguestbook.php ကိုဆက္ ၾကည့္လိုက္ရေအာင္
ဒီ ပုံေလး ကေတာ့ addguestbook.php ဘယ္လို အလုပ္လုပ္တယ္ ဆိုတာကို ရွင္းျပထားတာပါ။ Form က Pass လုပ္တဲ့
Data ေတြကို Database ထဲ ဘယ္လို Store လုပ္တယ္ ဆိုတာကို အေသးစိတ္ ရွင္းျပထားတာပါ။
addguestbook.php ရဲ႔ code ပါ
<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="guestbook"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");
$datetime=date("y-m-d h:i:s"); //date time
$sql="INSERT INTO $tbl_name(name, email, comment, datetime)VALUES('$name', '$email', '$comment', '$datetime')";
$result=mysql_query($sql);
//check if query successful
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='viewguestbook.php'>View guestbook</a>"; // link to view guestbookpage
}
else {
echo "ERROR";
}
mysql_close();
?>
ေနာက္ဆုံး တစ္ခုကေတာ့ viewguestbook.php ပါ။ Table ထဲက Store လုပ္ထားတဲ့ record ေတြအားလုံးကို looping ပတ္ျပီး
ျပန္႐ိုက္ျပတာ ျဖစ္ပါတယ္။ ပုံေလး ကိုၾကည့္ရင္ ရွင္းသြားပါလိမ့္မယ္။
viewguestbook.php ရဲ႔ code ျဖစ္ပါတယ္။
<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td><strong>View Guestbook | <a href="guestbook.php">Sign Guestbook</a> </strong></td>
</tr>
</table>
<br>
<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="guestbook"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
?>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td><table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td>ID</td>
<td>:</td>
<td><? echo $rows['id']; ?></td>
</tr>
<tr>
<td width="117">Name</td>
<td width="14">:</td>
<td width="357"><? echo $rows['name']; ?></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><? echo $rows['email']; ?></td>
</tr>
<tr>
<td valign="top">Comment</td>
<td valign="top">:</td>
<td><? echo $rows['comment']; ?></td>
</tr>
<tr>
<td valign="top">Date/Time </td>
<td valign="top">:</td>
<td><? echo $rows['datetime']; ?></td>
</tr>
</table></td>
</tr>
</table>
<BR>
<?
}
mysql_close(); //close database
?>
ဒီ coding ကေတာ့ database ထဲက ရလာတဲ့ record ေတြအားလုံးကို HTML ရဲ႔ Table tag ကို သုံးျပီး while loop နဲ႔
႐ိုက္ျပတာျဖစ္ပါတယ္။
ဒါကေတာ့ Guest Book တစ္ခုလုပ္ခ်င္ရင္ သိသင့္တဲ့ Coding နဲ႔ DB Design ပဲျဖစ္ပါတယ္။ Guest Book ရဲ႔ Basic Feature
ကေတာ့ ဒါပါပဲဗ်ာ။ ထပ္ျပီး modify လုပ္ခ်င္တယ္ဆိုရင္ေတာ့ idea ရွိရင္ရွိသေလာက္ လုပ္လို႔ရပါတယ္။
Ref: http://www.phpeasystep.com/phptu/15.html
တျခား PHP Post ေတြအားလုံး ကို ႏွစ္သက္ရာ ေရြးဖတ္ ခ်င္တယ္ဆိုရင္ ဒီ Link ေလးကို Click လိုက္ပါ။
-
2009-07-22 15:32:02 |SAdministrator| admin - Re: sandy
Database ထဲမွာ Table လိုတာေပါ့ ညီမ။ Guest Book လိုမ်ိဳးက Database မရွိပဲ အလုပ္လုပ္လ ို႕ မရပါဘူး။ အေပၚမွာ table script ကိုေပးထားပ ါတယ္။ MySQL ကို သုံးတတ္ရင္ ပိုမိုက္တာ ေပါ့။ လြယ္ပါတယ္။ အေလ့အက်င့္ ပဲ လိုတာပါ ညီမ
ကြၽန္ေတာ့) 21;ွာ ရွိတဲ့ ebook ေတြကို "DOWNLOAD CENTER BY CATEGORY" ဆိုတဲ့ site ရဲ႔ bottom မွာတင္ေပးထ ားျပီး သားပါ။
-
2009-09-29 09:07:58 |203.81.166.xxx| royallyre7
ကုိ zack ေ၇ ကၽြန္ေတာ္ေ တာ႔ ေဒတာေဗ႔ကို ကြန္တက္လုပ ္လုိ႔မ၇ဘူး ဟ
page load error ပဲတက္လာေနတ ယ္ဘာၿဖစ္လု ိ႔လဲဗ်ာ။
အကုန္လံုးစ စ္ၿပီးပါၿပ ီအဆင္ေၿပေန တပါတယ္။
ေဒတာေဘ႔ ကြန္တက္၇မ၇ လဲစစ္ၿပီးၿ ပီ ကြန္တက္ရတယ ္
ဒါေပမဲ႔ guestbook.php ကsubmit ကိုကလစ္လုိ က္၇င္
pageload error ပဲၿပေနတယ္ဗ ်ာ
-
2009-09-29 15:33:57 |SAdministrator| admin - Re: royallyre7
အေပၚက ကြၽန္ေတာ္ျ ပထားတဲ့ sample ကိုလုပ္တာလ ား?? တျခားဟာ တစ္ခုလား??
ကြၽန္ေတာ္ sample ဆိုရင္ေတာ့ အကို source + DB ကို တေနရာမွာ share လိုက္ပါ။ ကြၽန္ေတာ္ local မွာ ခ်ျပီး စမ္းၾကည့္ေ ပးမယ္။
-
2009-09-30 17:49:24 |203.81.166.xxx| royallyre7
ကၽြန္ေတာ္) 45;မးပို႔ထား) 17;ါတယ္ဗ်ာ
ကြန္မန္႔မွ ာတင္တာ 3 ခါရွီၿပီတက ္မလာလုိ႔ေန ာ္
-
2009-10-01 15:25:44 |SAdministrator| admin - Re: royallyre7
ဘယ္ Mail ကို send တာလည္း မသိ???။ ကြၽန္ေတာ္ဆ ီ mail မေရာက္ပါ။
joomzack@gmail.com, joomzack@thadarphyu.net
ကို send လိုက္ပါ။ ဒါမွ မဟုတ္ တေနရာရာမွာ upload တင္ျပီး Download Link ကို ဒီ comment မွာလာေပးပါ ။
-
2009-10-01 17:36:07 |203.81.166.xxx| royallyre7
http://www.mediafire.com/file/myi22iwzfim
အဲဒါေလးပါခ င္ဗ်ာ
ကၽြန္ေတာ္ လင္႔ေလးနဲ႔ ကြန္႔မန္႔ပ ို႔တာဘာလုိ ႔တက္မလာလဲမ သိဘူးဗ်
-
2009-10-01 17:37:39 |203.81.166.xxx| royallyre7
ေမးပုိတာက( 96;ၽြန္ေတာ႔ဆ) 42; notify လုပ္တဲ႔ေမး ကို ပို႔လုိက္တ ာပါ spam ထဲေ၇ာက္သြာ းပံုေပၚတယ္ ဗ် တခါမွမပို႔ ဘူးတဲ႔သူပိ ု႔တယ္ဆုိၿပ ီ ကၽြန္ေတာ္ေ စာင္႔ေနပါတ ယ္ဗ်ာ ကိုဇက္၇ဲ႔ အႀကံၿပဳခ်က ္ကိုပါ
-
2009-10-02 18:20:17 |203.81.166.xxx| royallyre7
ကိုဇက္ေ၇အ) 40;းေတာ႔နာလာ* 23;ပီကၽြန္ေတ) 40;္ကကိုညံ႔လ) 43;ိ႔ေနမွာပါ အဆင္မေၿပဘူ းခင္ဗ်ာ
ဘာလုိ႔ေနလဲ မသိဘူး wamp ကလဲေအာက္ကပ ံုအတုိင္း 3ပံု2 ပံုက၀ါၿပီး က်န္ 1ပံုကၿဖူေနတ ;ယ္။http://www.mediafire.com/file/ymcokmjnzrd/azt.JPG
-
2009-10-03 17:53:18 |SAdministrator| admin - Re: royallyre7
ကိုroyallyre7
ကြၽန္ေတာ္ ထင္တာ wamp service မတတ္တာလည္း ျဖစ္ႏိုင္တ ယ္။ ဒါကေတာ့ ကြၽန္ေတာ္လ ည္း မေျပာတတ္ဘူ း အကို local မွာျဖစ္ေနတ ာဆိုေတာ့။ Guestbook မွာကေတာ့ OK သြားျပီ ကြၽန္ေတာ္ local မွာ စမ္းျပီးမွ ျပန္တင္ေပး လိုက္တာ။
| < Prev | Next > |
|---|
Login Form
Latest Post
Categories Table View
- Reader's Conner (133)
- PHP (48)
- Joomla CMS (46)
- Codeigniter (18)
- jQuery (12)
- iDhamma (11)
- Mobile Development (10)
- PHP & AJAX (4)
- Apache (3)
- For Mac (3)
- mySQL (2)
- DhammaDroid (1)
အကိုရဲ့အဲ) 24;ုိ error တက္ေနတယ္
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\EasyWAMP\www\guestbook\addguestbook.php on line 8
cannot connect server
တဲ့
submit လုပ္လုိက္တ ာနဲ့ addguestbook.php ကိုသြားမယ္ ဟုတ္? အဲဒီ့coding က
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
အဲလုိ ဆုိေတာ့ mysql ထဲမွာ..Local host တုိ့ username တုိ့ကို.databaseေƚ 2;ာက္ထားရမွƞ 0;ေပါ့ေနာ္
ဟုတ္လားဟင္ ..
SQLyog ေတာ့တင္ထား ေပမယ့္ အဲလုိေတာ့ မေဆာက္ထားဘ ူးးး
database ကိုလံုး၀မက ုိင္ဖူးဘူး အကိုရ
ျပီးေတာ့ အကိုေရးထား တဲ့ coding ကုိ trace လုိက္လုိ့ပ ဲရတာ ကိုယ့္ဘာသာ ကုိ code ေရးခ်င္လုိ ့ ဒီေလာက္ပဲသ ိေတာ့အားမရ ဘူး အဲဒါနဲ့ပက္ သက္ျပီး ebook ေတြရွိရင္ေ ပးပါလားဟင္ ..