มีใครเคยเอา code ดึงกระทู้ล่าสุด SMF อันนี้ไปใช้บ้างครับ?

เริ่มโดย Hikkyz, 09 ธันวาคม 2011, 22:31:06

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

Hikkyz

มีใครเคยเอา Code ดึงกระทู้ล่าสุด SMF อันนี้ไปใช้บ้างครับ?

เป็น code ที่แจกกันมานานแล้วละ ที่มาถามไม่ใช่ถามวิธีใช้หรือวิธีการโมหรอกนะครับ แต่ผมอยากรู้ว่าของใครเอาไปใช้แล้วภาษาไม่เป็นต่างดาวบ้างครับ

คือ ถ้าเรียกจากไฟล์โดยตรง แบบ http://www.site.com/forums/recentTopics.php แบบนี้ (สมมุติชื่อ recentTopics.php ละกัน) เวลาเรียกโดยตรงมันจะเป็นภาษาต่างดาว

ตรงชื่อกระทู้หรือชื่อผู้โพสต์อ่ะครับ พูดง่ายๆคือทุกส่วนที่ถูกดึงมาจากฐานข้อมูลถ้าเป็นภาษาไทยจะเป็นภาษาต่างดาวหมด แต่ส่วนอื่นที่ไม่ได้ดึงมาจากฐานข้อมูลจะปกติ (UTF-8)

แต่ถ้า...

เอาไฟล์ recentTopics.php ไปแปะในหน้าแรกของเว็บ เช่น <?php include("recentTopics.php"); ?> ไว้ในหน้าแรกของเว็บมันกลับไม่เป็นภาษาต่างดาว ซึ่งผมงงมาก

เว็บบอร์ด SMF ผมไม่มีปัญหาเรื่องภาษาเลยนะ และใน phpmyadmin ก็ locate เป็น unicode_general_ci หมดแล้ว

ตกลงมันเป็นที่อะไรครับ ผมงงจริงๆ มันข้องมากครับ

<?php 

$list 
"20"// ต้องการให้โชว์กี่กระทู้ล่ะ ใส่เข้าไปได้เลย

$sboard "0"// ใส่ 0 ถ้าต้องการกระทู้จากบอร์ดทุกบอร์ด  และใส่ 1 ถ้าต้องการเจาะจงบอร์ด

// ถ้าใส่ 1 อย่าลืมระบุ id ของบอร์ดด้วยเช่น 
// http://www.xxx.com/forum/lasttopic.php?board= อย่างงี้อ่ะ เช่น http://www.xxx.com/forum/lasttopic.php?board=3.0

// ถ้าไม่ได้ใส่ ?board=.. ก็ให้มันแสดงตาม id ของบอร์ด ตามข้างล่าง
/*
if (empty($board)) { 
$board = "2"; // เปลี่ยนตรงนี้ถ้าอยากให้บอร์ดไหนเป็นค่า default 

*/

?>


<html>

<head>

<meta http-equiv="Content-Language" content="th">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="page_style.css">

<title>:: <?=$list ?> กระทู้ล่าสุดจากบอร์ด</title>
<base target="_blank">

<style type="text/css">
<!--
.style1 {font-size: 13px}
-->
</style>

</head>

<body bgcolor=#E5E5FF>
<span class="style1">

<?
include("Settings.php");

$host = $db_server;
$user = $db_user;
$pass = $db_passwd;
$database = $db_name;
$prefix = $db_prefix."topics";
$prefix2 = $db_prefix."messages";

@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 ";
}
$result = mysql_db_query($database,$Sql);
$nrow = mysql_num_rows($result);
while ($num = mysql_fetch_array($result)) {

$tid = $num["ID_TOPIC"];
$bid = $num["ID_BOARD"];
$fid = $num["ID_FIRST_MSG"];
$view = $num["numViews"];
$reply = $num["numReplies"];

$msql = "select * from $prefix2 where ID_MSG='$fid'";
$mresult = mysql_db_query($database,$msql);
$marr = mysql_fetch_array($mresult);
$title = $marr["subject"];
$poster = $marr["posterName"];
$today = date("d M Y");
$time = date("d M Y", $marr["posterTime"]);
if ($today==$time) {
$time = date("<font color='#FF0000'><b>วันนี้ .</font></b>", $marr["posterTime"]);
} else {
$time = date("<b>เมื่อวานนี้ .</b>", $marr["posterTime"]);
}

echo "<span class='font'>\n";
echo "<img src=http://www.freepgs.com/xtech/forums/Themes/default/images/forum.gif width=12 height=8 border=0 alt='Topic $tid'>&nbsp;\n";
echo "<a href='index.php?board=$bid;action=display;threadid=$tid' target='_blank'><b>$title</b></a> โดย $poster <font color=#0000ff><b>:</b> $time</font> (อ่าน:$view/ตอบ:$reply) </span><br>\n";
}

?>

</span>
</body>

</html>
[direct=http://automoblex.com]ข่าวรถยนต์ใหม่ 2014[/direct] [direct=http://automoblex.com/category/honda/honda-jazz/]Honda Jazz 2014[/direct] [direct=http://www.thaihondacityclub.com]City 2014[/direct] [direct=http://www.allnewjazzclub.com]Jazz 2014[/direct]

kamjam

สร้างไฟล์ PHP  เปล่าๆ มา ตั้งเป็น UTF-8   
แล้วกอปปี้โค๊ดทั้งหมดใน recentTopics.php    มาใส่ PHP ที่สร้างมาใหม่ครับ
แล้วเปลี่ยนชื่อเป็นไฟล์ recentTopics.php  แล้วอัพขึ้นไปทับดู

ทุกๆทีผมก็ทำแบบนี้ก็หาย

ballalistit

ลอง ใส่

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

ไปบนสุดของ ไฟล์เลยครับ เผื่อจะได้  :P

Hikkyz

อ้างถึงจาก: kamjam ใน 09 ธันวาคม 2011, 22:34:27
สร้างไฟล์ PHP  เปล่าๆ มา ตั้งเป็น UTF-8   
แล้วกอปปี้โค๊ดทั้งหมดใน recentTopics.php    มาใส่ PHP ที่สร้างมาใหม่ครับ
แล้วเปลี่ยนชื่อเป็นไฟล์ recentTopics.php  แล้วอัพขึ้นไปทับดู

ทุกๆทีผมก็ทำแบบนี้ก็หาย

ปกติเรื่องปัญหาภาษาไทยนี่ ผมใช้ Notepad++ ฟอร์แมตเป็น Encode in UTF-8 Without BOM ก็หายแฮะ

อย่างอันนี้ภาษาไทยส่วนที่อยู่ในไฟล์ก็ปกติ แต่จะเป็นต่างดาวไอ้ภาษาไทยที่มาจากฐานข้อมูลเนี่ยแหละ

ยังไงผมจะลองดูนะครับ ขอบคุณครับ
[direct=http://automoblex.com]ข่าวรถยนต์ใหม่ 2014[/direct] [direct=http://automoblex.com/category/honda/honda-jazz/]Honda Jazz 2014[/direct] [direct=http://www.thaihondacityclub.com]City 2014[/direct] [direct=http://www.allnewjazzclub.com]Jazz 2014[/direct]

Hikkyz

อ้างถึงจาก: ballalistit ใน 09 ธันวาคม 2011, 22:39:08
ลอง ใส่

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

ไปบนสุดของ ไฟล์เลยครับ เผื่อจะได้  :P

อันนี้ใส่อยู่แล้วอ่ะครับ ไม่หายนะครับ
[direct=http://automoblex.com]ข่าวรถยนต์ใหม่ 2014[/direct] [direct=http://automoblex.com/category/honda/honda-jazz/]Honda Jazz 2014[/direct] [direct=http://www.thaihondacityclub.com]City 2014[/direct] [direct=http://www.allnewjazzclub.com]Jazz 2014[/direct]

ballalistit

mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");


อันนี้อ่ะ ลองใส่ใต้ที่ติดต่อฐานข้อมูลอ่ะครับ

ballalistit


Hikkyz

อ้างถึงจาก: ballalistit ใน 09 ธันวาคม 2011, 22:44:08
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");


อันนี้อ่ะ ลองใส่ใต้ที่ติดต่อฐานข้อมูลอ่ะครับ

พระเจ้าช่วย! มันจบแล้วครับ

วิธีนี้ใช้ได้ครับ ขอบคุณมากครับ ขอคารวะ 1 จอก
[direct=http://automoblex.com]ข่าวรถยนต์ใหม่ 2014[/direct] [direct=http://automoblex.com/category/honda/honda-jazz/]Honda Jazz 2014[/direct] [direct=http://www.thaihondacityclub.com]City 2014[/direct] [direct=http://www.allnewjazzclub.com]Jazz 2014[/direct]