|
|
|
รบกวนช่วยดูโค้ดเว็บบอร์อดให้หน่อยค่ะ พยายามแก้มานานแล้วแต่ไม่ได้ซะที แหะๆ ขอบคุณล่วงหน้าค่ะ |
|
|
|
|
|
|
|
webboard_db.sql
# phpMyAdmin SQL Dump
# version 2.5.3-rc2
# http://www.phpmyadmin.net
#
# โฮสต์: localhost
# เวลาในการสร้าง: 04 เม.ย. 2005 น.
# รุ่นของเซิร์ฟเวอร์: 3.23.57
# รุ่นของ PHP: 4.3.3
#
# ฐานข้อมูล : `webboard`
#
# --------------------------------------------------------
#
# โครงสร้างตาราง `answer`
#
CREATE TABLE `answer` (
`aid` int(4) NOT NULL auto_increment,
`qid` int(4) NOT NULL default '0',
`aname` varchar(20) NOT NULL default '',
`amessage` longtext NOT NULL,
`adate` varchar(20) NOT NULL default '',
PRIMARY KEY (`aid`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
#
# dump ตาราง `answer`
#
# --------------------------------------------------------
#
# โครงสร้างตาราง `question`
#
CREATE TABLE `question` (
`qid` int(4) NOT NULL auto_increment,
`qtopic` varchar(20) NOT NULL default '',
`qmessage` longtext NOT NULL,
`qname` varchar(20) NOT NULL default '',
`qdate` varchar(20) NOT NULL default '',
`qreply` int(4) NOT NULL default '0',
PRIMARY KEY (`qid`)
) TYPE=MyISAM AUTO_INCREMENT=1;
#
# dump ตาราง `question`
#
list_questions.php
<h3>เว็บบอร์ด</h3>
<hr><a href="add_question.php">ตั้งกระทู้ใหม่</a><hr>
<?php
include("functions.php");
include("config.inc.php");
$sql = "SELECT * FROM questions ORDER BY qID DESC";
$result = mysqli_query($db, $sql);
while($row = mysqli_fetch_array($result)){
$id = htmlspecialchars($row["qID"]);
$topic = htmlspecialchars($row["qTopic"]);
$name = htmlspecialchars($row["qName"]);
$num_answer = $row["qAnswerCount"];
$datetime = strtotime($row["qDate"]);
$thai_date = format_thai_date($datetime);
echo <<<HTMLBLOCK
<b>{$id}</b>
<a href="show_question.php?={$id}" target="_blank">{$topic}</a>
{$name} ({$num_answer}) [ {$thai_date} ]<br>
HTMLBLOCK;
}
mysqli_close($cn);
?>
add_question.php
<?php
include("config.inc.php");
if (isset($_POST["send"])) {
//ลบช่องว่างออกจากข้างหน้าและข้างหลังของทุกๆฟิลด์ที่ส่งค่ามา
foreach ($_POST as $key => $value)
$_POST[$key] = trim($value);
if (validate_form($err))
process_form();
else{
echo '<font color="red"><b>เกิดข้อผิดพลาด</b><br>';
echo $err . "</font></br>";
echo '<input type = "button" value = "กลับไปแก้ไข" onclick="history.back();">';
}
}
else {show_form(); }
//ฟังก์ชันที่ใช้ตรวจสอบฟอร์ม
function validate_form(&$err) {
//กำหนดฟิลด์บังคับ(ห้ามปล่อยว่าง)
$required = array("name" => "ชื่อของคุณ", "topic" => "หัวข้อกระทู้",
"detail" => "รายละเอียดของกระทู้");
$err = "";
//วนลูปตรวจสอบฟิลด์บังคับทุกฟิลด์
foreach ($required as $field => $label){
if ($_POST[$field] == "")
$err .= "<li>คุณไม่ได้ป้อน<b>$label</b></li>";
}
//ส่งคืนค่าออกไปจากฟังก์ชัน
if ($err)
return FALSE; //กรณีมีข้อผิดพลาดในฟอร์ม
else
return TRUE; //กรณีไม่มีข้อผิดพลาดในฟอร์อม
} //จบฟังก์ชัน validate_form
//ฟังก์ชันที่ใช้แสดงฟอร์มสำหรับตั้งกระทู้ใหม่
function show_form(){
echo <<<HTMLBLOCK
<h3>ตั้งกระทู้ใหม่</h3>
<form method = "POST" action ="{$_SERVER['PHP_SELF']}">
ชื่อของคุณ: <input type="text" name="name" size="20" maxlength="50"><br>
หัวข้อ: <input type= "text" name="topic" size="40" maxlength="255"><br>
รายละเอียด: <br>
<textarea cols="50" rows="5" name="detail"></textarea><br>
<input type="submit" name"send" value="ส่งกระทู้เข้าเว็บบอร์ด">
</form>
<hr><a href =list_questions.php>หน้าหลักของเว็บบอร์ด</a>
HTMLBLOCK;
} //จบฟังก์ชัน show_form
function process_form() {
$topic = addslashes($_POST["topic"]);
$detail = addslashes($_POST["detail"]);
$name = addslashes($_POST["name"]);
$now = date("Y-m-d H:i:s");
$ip = $_SERVER["REMOTE_ADDR"];
$sql = "insert into $tblquestion (qTopic, qDetail, qDate, qName, qIPAddress , qAnswerCount)
values ('$topic', '$detail', '$now', '$name', '$ip', 0)";
$result = mysqli_db_query($db, $sql);
if ($result){
$id = mysqli_insert_id($db);
echo "ส่งกระทู้เข้าสู่เว็บบอร์ดเรียบร้อยแล้ว<br>";
echo "หมายเลขกระทู้ของคุณคือ{$id}<br>";
echo "<a href=\"show_question.php?id={$id}\">คลิกที่นี่</a>";
echo "เพื่อแสดงกระทู้ของคุณ<br>";
echo "<hr><a href=\"list_questions.php\">หน้าหลักของเว็บบอร์ด</a>";
}
else
echo "ส่งกระทู้เข้าสู่เว็บบอร์ดไม่สำเร็จ เนื่องจากเกิดข้อผิดพลาดบางอย่าง<br>";
mysqli_close($db);
}
?>
show_question.php
<?php
include("functions.php");
$cn = mysqli_connect("localhost","webboard","board123");
mysqli_select_db($cn, "webboard_db");
$q_id = $_GET["id"];
$sql = "SELECT * FROM questions WHERE qID={$q_id}";
$result = mysqli_query($cn,$sql);
if (mysqli_num_rows($result) == 0){
echo "ไม่มีข้อมูลของกระทู้หมายเลข{$q_id}<br>";
mysqli_close($cn);
exit;
}
$row = mysqli_fetch_array($result);
$topic = htmlspecialchars($row["qTopic"]);
$detail = nl2br(htmlspecialchars($row["qDetail"]));
$name = htmlspecialchars($row["qName"]);
$ip = $row["qIPAddress"];
$datetime = strtotime($row["qDate"]);
$thai_date = format_thai_date($datetime);
echo <<<HTMLBLOCK
<table width="100%" border="1" cellspacing="0" cellpadding="5" bgcolor="#FFCC99">
<tr><td><h3>{$topic}</h3>{$detail}<hr>
จากคุณ:{$name} [$thai_date]
<font color="gray">[IP: $ip]</font></td></tr>
</table>
HTMLBLOCK;
$sql = "SELECT * FROM answers WHERE aQuestionID={$q_id} ORDER BY aID";
$result = mysqli_query($cn, $sql);
while ($row = mysqli_fetch_array($result)) {
$a_id = $row["aID"];
$detail = nl2br(htmlspecialchars($row["aDetail"]));
$name = htmlspecialchars($row["aname"]);
$ip = $row["aIPAddress"];
$datetime = strtotime($row["aDate"]);
$thai_date = format_thai_date($datetime);
echo <<<HTMLBLOCK
<br>
<table width="100%" border="1" cellspacing="0" cellpadding="5" bgcolor="#FFFFCC">
<tr><td><b>ความคิดเห็น{$a_id}</b><br><br>{$detail}<hr>
จากคุณ:{$name} [$thai_date]
<font color="gray">[IP: $ip]</font></td></tr>
</table>
HTMLBLOCK;
}
mysqli_close($cn);
?>
<h3>ตอบกระทู้/แสดงความคิดเห็น</h3>
<form method="POST" action="add_answer.php">
ชื่อของคุณ: <input type="text" name="name" size="20" maxlength="50"><br>
รายละเอียด: <br>
<textarea cols="50" rows="5" name="detail"></textarea><br>
<input type="submit" name="send" value="ส่งข้อความ">
<input type="hidden" name="question_id" value="<?php echo $q_id; ?>">
</form>
<hr><a href=list_questions.php>หน้าหลักของเว็บบอร์ด</a>
add_answer.php
<?php
foreach($_POST as $key => $value)
$_POST[$key] = trim($value);
if (validate_form($err))
process_form();
else {
echo '<font color = "red"><b>เกิดข้อผิดพลาด</b><br>';
echo $err . "</font><br>";
echo '<input type="button" value="กลับไปแก้ไข"
onclick="history.back();">';
}
function validate_form(&$err){
$required = array("name" => "ชื่อของคุุณ",
"detail" => "คำตอบ/ความคิดเห็น");
$err = "";
foreach ($required as $field => $label) {
if ($_POST[$field] == "")
$err .= "<li>คุณไม่ได้ป้อน<b>$label</b></li>";
}
if ($err)
return FALSE;
else
return TRUE;
}
function process_form() {
$cn = mysqli_connect("localhost","webboard","board123");
mysqli_select_db($cn, "webboard_db");
$q_id = $_POST['question_id'];
$sql = "SELECT qAnswerCount FROM questions WHERE qID={$q_id}";
$result = mysqli_query($cn, $sql);
$row = mysqli_fetch_array($result);
$next_answer_id = $row["qAnswerCount"] + 1;
$detail = addslashes($_POST['detail']);
$name = addslashes($POST['name']);
$now = date("Y-m-d H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO answers (aQuestionID, aID, aDetail, aDate,
aName, aIPAddress) VALUES ({$q_id}, $next_answer_id,
'$detail', '$now', '$name', '$ip')";
$result = mysqli_query($cn,$sql);
if ($result){
$sql = "UPDATE questions SET qAnswerCount=qAnswerCount+1";
$sql .= "WHERE qID={$q_id}";
$result = mysqli_query($cn,$sql);
echo "ส่งคำตอบเข้าสู้เวปบอร์ดเรียบร้อยแล้ว<br>";
echo "<a href=\"show_question.php?id={$q_id}\">คลิกที่นี่</a>";
echo "เพื่อกลับไปยังกระทู้<br>";
echo "<hr><a href=\"list_questions.php\">หน้าหลักของเวปบอร์ด</a>";
}
else
echo "ส่งคำตอบเข้าสู้เวปบอร์ดไม่สำเร็จ เนื่องจากเกิดข้อผิดพลาดบางอย่าง<br>";
mysqli_close($cn);
}
?>
functions.php
<?php
function format_thai_date($timestamp) {
setlocale(LC_TIME, "tha");
$thai_date = strftime("%d %b พ.ศ. %H:%M:%S", $timestamp);
if ($thai_date[0] == "0") {
$thai_date = substr($thai_date, 1);
}
$thai_date = str_replace("พ.ศ.",
substr((date("Y" , $timestamp) + 543), -2),
$thai_date);
return $thai_date;
}
?>
config.inc.php
<?php
$host="localhost";//ชื่อโฮส
$user="webboard";//ชื่อผู้ใช้งานฐานข้อมูล
$pass="board123";//รหัสผ่านผู้ใช้งานฐานข้อมูล
$db="webboard_db";//ชื่อฐานข้อมูล
$tblquestion="questions";//ชื่อตารางเก็บคำถาม
$tblanswer="answers";//ชื่อตารางเก็บคำตอบ
mysql_connect($host,$user,$pass) or die ("ไม่สามารถติดต่อ Database Server ได้");
mysql_select_db($db) or die ("ไม่สามารถเลือกใช้งานฐานข้อมูลได้");
?>
Tag : - - - -
|
|
|
|
|
|
Date :
15 พ.ค. 2551 10:51:15 |
By :
โบว์ |
View :
2381 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่ไม่ได้มันเป็นแบบไหนเหรอคับ
|
|
|
|
|
Date :
15 พ.ค. 2551 12:43:14 |
By :
SpyBNC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวนี้มันเป็น ตาราง SQl ไม่ใช่เหรอ www.udonzaa.com
|
|
|
|
|
Date :
16 พ.ค. 2551 17:53:15 |
By :
web |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$result = mysqli_db_query($db, $sql);
มันไม่มีแล้วครับ mysqli_db_query
MySQLi ไม่มีคำสั่งนี้
|
|
|
|
|
Date :
21 พ.ค. 2551 13:19:05 |
By :
BiosiX |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|