มาจากไทยเสียวนะครับ ขอสอบถามการดึงหัวข้อใหม่มาแสดงตามแต่ละหมวดหมู่แบบหน้าเว็บนี้หน่อยครับหน่อยครับ ขอแบบละเอียดหน่อยนะครับ
ขอบคุณครับ :-*
🏷️ หัวข้อที่เกี่ยวข้อง
📤 แชร์บทความนี้
💬 การตอบกลับ 31
Moshi
16,996 โพสต์
— King69 link=topic=7327.msg18370#msg18370 date=1286343388
เราจะใช้คำสั่ง get content ยังไงอะครับ :P
ผมไปหาวิธีแก้มาละใช้ curl แทน
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "insert.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
$ch = iconv('windows-874','UTF-8',$ch);
curl_exec($ch);
curl_close($ch);
?>ลองดุนะครับ
step69
2 โพสต์
:'( พี่ ๆครับผมตามอ่านมาจนหมดละ ผมขอถามเรื่อง การแสดงกระทู้ต่อจากที่พี่ ๆถามาเเล้วนะครับคือ
หลังจากที่ผมเพิ่ม code ไปเเล้วมัน Error แบบนี้ครับ
พี่ผมพออ่านเเล้วเข้าใจว่าประมาณ ว่าตรงที่
อันนี้ตามตัวอย่างที่พี่ได้โพสไว้คราวนี้ผมไม่รู้ว่าจะให้เชื่อกับตารางไหนหนะครับ ผมอยากว่าหัวข้อกระทู้มันอยู่ตรงตารางไหนเพราะว่า smf มันมีหลายตารางมากเลย รบกวนพี่ๆ ด้วยครับ
หลังจากที่ผมเพิ่ม code ไปเเล้วมัน Error แบบนี้ครับ
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/stepcom/domains/xxxx.com/public_html/webbroad/showborad.php on line 42
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/stepcom/domains/xxxxx.com/public_html/webbroad/showborad.php on line 43
พี่ผมพออ่านเเล้วเข้าใจว่าประมาณ ว่าตรงที่
@mysql_connect($host,$user,$pass) or die("ขออภัยค่ะ ขณะนี้ไม่สามารถติดต่อฐานข้อมูลได้ กรุณาเข้าชมใหม่ภายหลัง");
if ($sboard=="0") {
$Sql = "SELECT * FROM $prefix order by ID_TOPIC DESC limit 0,$list ";
} elseif ($sboard=="1") {
$Sql = "SELECT * FROM $prefix where ID_BOARD='$board' order by ID_TOPIC DESC limit 0,$list ";
} อันนี้ตามตัวอย่างที่พี่ได้โพสไว้คราวนี้ผมไม่รู้ว่าจะให้เชื่อกับตารางไหนหนะครับ ผมอยากว่าหัวข้อกระทู้มันอยู่ตรงตารางไหนเพราะว่า smf มันมีหลายตารางมากเลย รบกวนพี่ๆ ด้วยครับ
✏️ แก้ไขล่าสุด: 9 ตุลาคม 2553
Moshi
16,996 โพสต์
— step69 link=topic=7327.msg18511#msg18511 date=1286523817
:'( พี่ ๆครับผมตามอ่านมาจนหมดละ ผมขอถามเรื่อง การแสดงกระทู้ต่อจากที่พี่ ๆถามาเเล้วนะครับคือ
หลังจากที่ผมเพิ่ม code ไปเเล้วมัน Error แบบนี้ครับWarning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/stepcom/domains/step69.com/public_html/webbroad/showborad.php on line 42
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/stepcom/domains/step69.com/public_html/webbroad/showborad.php on line 43
พี่ผมพออ่านเเล้วเข้าใจว่าประมาณ ว่าตรงที่@mysql_connect($host,$user,$pass) or die("ขออภัยค่ะ ขณะนี้ไม่สามารถติดต่อฐานข้อมูลได้ กรุณาเข้าชมใหม่ภายหลัง");
if ($sboard=="0") {
$Sql = "SELECT * FROM $prefix order by ID_TOPIC DESC limit 0,$list ";
} elseif ($sboard=="1") {
$Sql = "SELECT * FROM $prefix where ID_BOARD='$board' order by ID_TOPIC DESC limit 0,$list ";
}
อันนี้ตามตัวอย่างที่พี่ได้โพสไว้คราวนี้ผมไม่รู้ว่าจะให้เชื่อกับตารางไหนหนะครับ ผมอยากว่าหัวข้อกระทู้มันอยู่ตรงตารางไหนเพราะว่า smf มันมีหลายตารางมากเลย รบกวนพี่ๆ ด้วยครับ
ผมไม่เข้าใจอ่ะครับ หมายถึง แสดงหน้า showborad.php ได้ยังครับ แอบอ่านจากชื่อ
กด เปิดหน้า showborad.php แล้วมัน ERRor ว่าอะไรบ้างครับ
step69
2 โพสต์
มัน error เเบนี้ครับ ขอบคุณมากนะครั ที่กรุณาตอบ

✏️ แก้ไขล่าสุด: 9 ตุลาคม 2553
metal4x
12 โพสต์
กระทู้นี้..ท่าจะยาวว....ของผมต่อนะท่านโมชิ...(เรื่องการเอา 15กระทู้ล่าสุดจากเว็บบอร์ด..มาไว้หน้าแรก Home)
รูปแรกนี้คือ รูปที่ไม่มีปัญหา(แต่ผมไม่ค่อยต้องการ อิอิ)...ใช้เทคนิคแรก คือสร้างไฟล์ ขึ้น PHP ขึ้นมา 1 ไฟล์ แล้วเอาไปไว้ตำแหน่งเดียวกับไฟล์ ssi_examples.php ของบอร์ด.....แล้วใช้โค๊ด..ตอบ #8 ของท่าน....$data = @file_get_contents

ส่วนที่มีปัญหาคือ รูปถัดไป ..ใช้โค๊ดจาก ตอบ #19...
แล้วมันได้ผลตามรูปนี้ครับ

จากรูปข้างบนนี้
1.ถ้าจะให้แสดงภาษาไทยถูกต้อง ต้องแก้ยังไงครับ ? (เว็บผมใช้ charset=tis-620)
2.ถ้าจะเอาส่วนที่เป็นชื่อ หมวดบอร์ด ด้านหน้าออก ต้องเพิ่มคำสั่งอะไร ที่ (ผมจะเอาจากพวก Re: เป็นต้นไป)
3.ข้อความมันล้น
#26
#27
อยากให้ลอง COPY ของผมก่อนครับ แป๊ะๆเลยว่าได้ไหม
คล้ายๆ มันฟ้องว่า SQl ไม่สามารถทำการหา คิวรี่ ได้นี่หล่ะครับ แล้วบอร์ดคุณใช้เป้น RC2 ด้วยมันอาจจะใช้คนละตัว
แต่ลอง เอา ของผม แป๊ะๆเลยลองดูก่อนว่าจะได้ไหมครับ
แวะมา Edit เพิ่มเติม
หลังจากแอบไปเปิดดู ssi_examples.php -rc2
มันมีฟังก์ชั่นทำได้อยู่แล้วครับโดยอันแรกง่ายๆ
ผมดูของเจ้าของเว็บนะ webbroad/ssi_examples.php ตามที่อยู่นี้
แล้วไปดูตรง Recent Topics
มันจะให้
เอาอันนี้ไว้บนสุด
จากนั้น ใช้แบบ advance
ตรง $exclude_boards ค่า Null ก็ลองเปลี่ยนเป็น รหัสบอร์ดดูครับ น่าจะใช่มั้ง หุหุ ถ้าเดาไม่ผิด ลองดูครับๆ
#28
รูปแรกนี้คือ รูปที่ไม่มีปัญหา(แต่ผมไม่ค่อยต้องการ อิอิ)...ใช้เทคนิคแรก คือสร้างไฟล์ ขึ้น PHP ขึ้นมา 1 ไฟล์ แล้วเอาไปไว้ตำแหน่งเดียวกับไฟล์ ssi_examples.php ของบอร์ด.....แล้วใช้โค๊ด..ตอบ #8 ของท่าน....$data = @file_get_contents

ส่วนที่มีปัญหาคือ รูปถัดไป ..ใช้โค๊ดจาก ตอบ #19...
แล้วมันได้ผลตามรูปนี้ครับ

จากรูปข้างบนนี้
1.ถ้าจะให้แสดงภาษาไทยถูกต้อง ต้องแก้ยังไงครับ ? (เว็บผมใช้ charset=tis-620)
2.ถ้าจะเอาส่วนที่เป็นชื่อ หมวดบอร์ด ด้านหน้าออก ต้องเพิ่มคำสั่งอะไร ที่ (ผมจะเอาจากพวก Re: เป็นต้นไป)
3.ข้อความมันล้น
แก้ยังไง (อันนี้ถามเพื่อประหยัดเวลา...จริงๆรูปบนสุด ตอนแรกก็เป็นแบบนี้แหละ...แก้มั่วๆเอา ชักจะลืม อิอิ)
ขอบคุณนะครับผม (พอดีผมหัดทำเว็บได้ไม่นานนะคัรบ)
ขอบคุณนะครับผม (พอดีผมหัดทำเว็บได้ไม่นานนะคัรบ)
Moshi
16,996 โพสต์
ทั้ง 2 คนเดียวผมมาตอบให้นะครับ พึ่งกลับมาจากต่างจังหวัดเหนื่อยๆ หุหุ
Moshi
16,996 โพสต์
— step69 link=topic=7327.msg18545#msg18545 date=1286596524
มัน error เเบนี้ครับ ขอบคุณมากนะครั ที่กรุณาตอบ
อยากให้ลอง COPY ของผมก่อนครับ แป๊ะๆเลยว่าได้ไหม
คล้ายๆ มันฟ้องว่า SQl ไม่สามารถทำการหา คิวรี่ ได้นี่หล่ะครับ แล้วบอร์ดคุณใช้เป้น RC2 ด้วยมันอาจจะใช้คนละตัว
แต่ลอง เอา ของผม แป๊ะๆเลยลองดูก่อนว่าจะได้ไหมครับ
แวะมา Edit เพิ่มเติม
หลังจากแอบไปเปิดดู ssi_examples.php -rc2
มันมีฟังก์ชั่นทำได้อยู่แล้วครับโดยอันแรกง่ายๆ
ผมดูของเจ้าของเว็บนะ webbroad/ssi_examples.php ตามที่อยู่นี้
แล้วไปดูตรง Recent Topics
มันจะให้
เอาอันนี้ไว้บนสุด
<?php require("SSI.php"); ?>จากนั้น ใช้แบบ advance
<?php ssi_recentTopics($num_recent = 8, $exclude_boards = null, $include_boards = null, $output_method = 'echo'); ?>
ตรง $exclude_boards ค่า Null ก็ลองเปลี่ยนเป็น รหัสบอร์ดดูครับ น่าจะใช่มั้ง หุหุ ถ้าเดาไม่ผิด ลองดูครับๆ
✏️ แก้ไขล่าสุด: 13 ตุลาคม 2553
Moshi
16,996 โพสต์
— metal4x link=topic=7327.msg18653#msg18653 date=1286878447
กระทู้นี้..ท่าจะยาวว....ของผมต่อนะท่านโมชิ...(เรื่องการเอา 15กระทู้ล่าสุดจากเว็บบอร์ด..มาไว้หน้าแรก Home)
รูปแรกนี้คือ รูปที่ไม่มีปัญหา(แต่ผมไม่ค่อยต้องการ อิอิ)...ใช้เทคนิคแรก คือสร้างไฟล์ ขึ้น PHP ขึ้นมา 1 ไฟล์ แล้วเอาไปไว้ตำแหน่งเดียวกับไฟล์ ssi_examples.php ของบอร์ด.....แล้วใช้โค๊ด..ตอบ #8 ของท่าน....$data = @file_get_contents
ส่วนที่มีปัญหาคือ รูปถัดไป ..ใช้โค๊ดจาก ตอบ #19...
แล้วมันได้ผลตามรูปนี้ครับ
จากรูปข้างบนนี้
1.ถ้าจะให้แสดงภาษาไทยถูกต้อง ต้องแก้ยังไงครับ ? (เว็บผมใช้ charset=tis-620)
2.ถ้าจะเอาส่วนที่เป็นชื่อ หมวดบอร์ด ด้านหน้าออก ต้องเพิ่มคำสั่งอะไร ที่ (ผมจะเอาจากพวก Re: เป็นต้นไป)
3.ข้อความมันล้นแก้ยังไง (อันนี้ถามเพื่อประหยัดเวลา...จริงๆรูปบนสุด ตอนแรกก็เป็นแบบนี้แหละ...แก้มั่วๆเอา ชักจะลืม อิอิ)
ขอบคุณนะครับผม (พอดีผมหัดทำเว็บได้ไม่นานนะคัรบ)
ทำง่ายๆครับผม
ขั้นตอนแรก ให้เพิ่ม
<meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />
ลงไว้ในหน้า index ก่อนครับ ที่เรา include ssi ไว้แล้วนะ
จากนั้นเปิดไฟล์ SSI.php
ให้ค้นหา
// Recent post list: [board] Subject by Poster Date
แล้วเพิ่ม อันนี้ด้านบน
function ssi_recentPosts2($num_recent = 8, $exclude_boards = null, $output_method = 'echo')
{
global $context, $settings, $scripturl, $txt, $db_prefix, $ID_MEMBER;
global $user_info, $modSettings, $func;
if ($exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
$exclude_boards = array($modSettings['recycle_board']);
else
$exclude_boards = empty($exclude_boards) ? array() : $exclude_boards;
// Find all the posts. Newer ones will have higher IDs.
$request = db_query("
SELECT
m.posterTime, m.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, m.ID_BOARD, b.name AS bName,
IFNULL(mem.realName, m.posterName) AS posterName, " . ($user_info['is_guest'] ? '1 AS isRead, 0 AS new_from' : '
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= m.ID_MSG_MODIFIED AS isRead,
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ", LEFT(m.body, 384) AS body, m.smileysEnabled
FROM ({$db_prefix}messages AS m, {$db_prefix}boards AS b)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)" . (!$user_info['is_guest'] ? "
LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = m.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = m.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)" : '') . "
WHERE m.ID_MSG >= " . ($modSettings['maxMsgID'] - 25 * min($num_recent, 5)) . "
AND b.ID_BOARD = m.ID_BOARD" . (empty($exclude_boards) ? '' : "
AND b.ID_BOARD NOT IN (" . implode(', ', $exclude_boards) . ")") . "
AND $user_info[query_see_board]
ORDER BY m.ID_MSG DESC
LIMIT $num_recent", __FILE__, __LINE__);
$posts = array();
while ($row = mysql_fetch_assoc($request))
{
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileysEnabled'], $row['ID_MSG']), array('
' => ' ')));
if ($func['strlen']($row['body']) > 128)
$row['body'] = $func['substr']($row['body'], 0, 128) . '...';
// Censor it!
censorText($row['subject']);
censorText($row['body']);
// Build the array.
$posts[] = array(
'board' => array(
'id' => $row['ID_BOARD'],
'name' => $row['bName'],
'href' => $scripturl . '?board=' . $row['ID_BOARD'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row['ID_BOARD'] . '.0">' . $row['bName'] . '</a>'
),
'topic' => $row['ID_TOPIC'],
'poster' => array(
'id' => $row['ID_MEMBER'],
'name' => $row['posterName'],
'href' => empty($row['ID_MEMBER']) ? '' : $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => empty($row['ID_MEMBER']) ? $row['posterName'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['posterName'] . '</a>'
),
'subject' => $row['subject'],
'short_subject' => shorten_subject($row['subject'], 25),
'preview' => $row['body'],
'time' => timeformat($row['posterTime']),
'timestamp' => forum_time(true, $row['posterTime']),
'href' => $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['ID_MSG'] . ';topicseen#new',
'link' => '<a href="' . $scripturl . '?topic=' . $row['ID_TOPIC'] . '.msg' . $row['ID_MSG'] . '#msg' . $row['ID_MSG'] . '">' . $row['subject'] . '</a>',
'new' => !empty($row['isRead']),
'new_from' => $row['new_from'],
);
}
mysql_free_result($request);
// Just return it.
if ($output_method != 'echo' || empty($posts))
return $posts;
echo '
<table border="0" class="ssi_table">';
foreach ($posts as $post)
echo '
<tr>
<td valign="top">
<a href="', $post['href'], '">', $post['subject'], '</a>
', $txt[525], ' ', $post['poster']['link'], '
', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
</td>
<td align="right" nowrap="nowrap">
', $post['time'], '
</td>
</tr>';
echo '
</table>';
}
หมายเหตุ อยากตัดให้มันแสดงผลอะไรก็แก้ตรง table ข้างล่างนี้
กลับไปที่หน้า index ให้ใช้ Function นี้ในการแสดงแทน
<?php ssi_recentPosts2(15); ?>
ลองศึกษาทำตามดูน่าจะเข้าใจ#29
metal4x12 โพสต์คำสั่งนี้
<meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />
มันส่งผล ยังไงบ้างครับผม....เพราะเท่าที่ผมลอง...มันไม่มีการเปลี่ยนแปลงใดๆ เลยครับ
....ผมเอาไปใช้งานแบบตามที่คุณโมชิบอกมาคือ... " ขั้นตอนแรก ให้เพิ่ม " .....ไม่รู้ว่าใช้ถูกป่ะ...แบบนี้คัรบ
<?php require("/home/phanom/domains/phanom.go.th/public_html/webboard/SSI.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
<meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />
<META NAME="robots" CONTENT="index,nofollow">
ืNote..
** ผมลองแก้ปัญหา โดยการเปลี่ยน charset=tis-620 เป็น charset=utf-8 ...มันก็โอเค...แต่มันก็ไปมีปัญหากับข่าวประจำวันที่ดึงมา ซะงั้น (คือข่าว ดันเป็นภาษาต่างดาวซะอีก) ==>> http://www.phanom.go.th/indextest5.php ....อันนี้สลับกัน==>>http://www.phanom.go.th/indextest6.php**
** ไปแอบดูก็ได้คัรบ อิอิ ...จริงๆแล้วเว็บบอร์ดที่ผมจะเอามาโชว์หน้าแรก..มันไม่มีไรน่าโชว์เลย...มันเป็นเว็บราชการ...แต่ผมทำเพราะผมอยากรู้หน่ะครับ **✏️ แก้ไขล่าสุด: 18 ตุลาคม 2553
#30
Moshi16,996 โพสต์ตอบคุณ metal4x นะครับ
เนี่ยครับใยนเว็บคุณ มี
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
ดังนั้นไม่จำเป็นต้องใส่ ลบโค้ดออกได้เลย
<meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />
ผมจะพาแก้ที่หน้า index5 นะครับ
ตรงข่าวล่าสุดของคุณอ่ะ ผมไม่รุ้ว่าใช้โค้ดอะไรนะ แต่จะพาแก้ง่ายๆครับ
สมมุติละกัน ข่าวของคุณ echo $data; ใช่ป่ะ
ให้เราเพิ่มบรรทัดนี้เข้าไปก่อน
$data = iconv('windows-874','UTF-8',$data);
คำสั่งนี้คือแปลงจาก tis-620 ให้เป็น Utf-8 เพื่อที่จะแสดงผลไม่เพี๊ยน
จะได้แบบนี้
$data = iconv('windows-874','UTF-8',$data);
echo $data;#31
metal4x12 โพสต์ครับผม.....ขอบคุณมากครับ..สำหรับคำแนะนำทั้งหมด
มาขอบคุณช้าเพราะ Bot เข้ามาในเว็บบอร์ดตรึมเลยครับ
ขอแปะลิงค์กำจัด Bot SMF หน่อยนะคัรบ ...เผื่อมีประโยชน์สำหรับเพื่อนๆ
ระบบป้องกัน Spam ต่างชาติ [SMF] ===>> http://www.thaiseoboard.com/index.php/topic,113551.msg1564827/topicseen.html#new
การป้องกัน Spam สำหรับบอร์ด SMF ===>> http://hackerskill.net/2514/msg/6930
....มีปัญหาจะมารบกวนใหม่....ขอบคุณมากครับผม