ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingหัวข้อกระทู้ใน SMF มันได้สั้นๆ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: หัวข้อกระทู้ใน SMF มันได้สั้นๆ  (อ่าน 5389 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
userOne
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 40
ออฟไลน์ ออฟไลน์

กระทู้: 1,587



ดูรายละเอียด เว็บไซต์
« เมื่อ: 22 กุมภาพันธ์ 2008, 22:09:15 »

หัวข้ออออออ��

เป็นเหมือนข้างบนน่ะครับ อันที่จริงๆหัวข้อมันจะยาวๆกว่านั้นครับ
ไม่แน่ใจว่าเป็นที่ database ป่าวครับ เพราะ convert มาจาก phpbb2

แนะนำด้วยนะครับ

ปล ถามที่ thaiadmin ยังไม่มีใครตอบ รีบครับ  Cheesy
ปล2 ที่ zone-it ยังไม่เป็นสมาชิก ใครมี invite ขอหน่อยครับ
ปล 3 ที่พึ่งที่ดีที่สุด TSB  Cheesy
 
บันทึกการเข้า

thaipic
ก๊วนเสียว
*

พลังน้ำใจ: 18
ออฟไลน์ ออฟไลน์

กระทู้: 372



ดูรายละเอียด
« ตอบ #1 เมื่อ: 22 กุมภาพันธ์ 2008, 22:26:25 »

ของผมใช้วิธีกำหนดคุณสมบัติของฟิวล์ subject เป็นแบบ text
และที่แก้ได้ชัวร์ๆคือ กำหนด Encoding จาก utf-8 เป็น tis-620 ไปเลยอ่ะครับ

รับรองแก้ได้ชัวร์ ดูเว็บผมก็ล่ายคับ http://www.esarntoday.com/forum
« แก้ไขครั้งสุดท้าย: 22 กุมภาพันธ์ 2008, 23:16:25 โดย thaipic » บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,517



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 22 กุมภาพันธ์ 2008, 22:42:43 »

ปัญหาอาจเกิดได้ 2 กรณี
1. ขนาดฟิลด์ในฐานข้อมูลน้อยไป
2. ฟังค์ชั่นตัดคำ พวก substr มันตัด

ตามนั้น - -*
บันทึกการเข้า

zo501
สมุนแก๊งเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 862



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 22 กุมภาพันธ์ 2008, 22:48:00 »

เป็นที่ encode ของ mysql หรือป่าวครับ แบบว่าตอน convert จะต้องระบุไปให้ถูกด้วยนะครับ ผมเคย convert จาก IPB -> SMF ติดที่ encode ตอน convert นี้ละครับ

ไม่แน่ใจว่าถูกหรือป่าว Embarrassed
บันทึกการเข้า

userOne
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 40
ออฟไลน์ ออฟไลน์

กระทู้: 1,587



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 22 กุมภาพันธ์ 2008, 23:55:04 »

มันเป็นแบบ tinytext ไปลองอ่านๆมาดูมันบอกเก็บได้ 255 เท่ากับ varchar(255) ซึ่งอันเดิม (phpbb2) ก็ varchar(255)

1. ลองเปลี่ยนเป็น text แล้วไม่ได้ครับ
2. อันเดิมphpbb2 เป็น utf-8 ครับ ถ้า convert มาเป็น tis-620 เละเลยครับ
3. "ฟังค์ชั่นตัดคำ พวก substr มันตัด"  น่าสนใจครับ ว่าแต่มันอยู่ไฟล์ไหนเหรอท่าน
4. "เป็นที่ encode ของ mysql หรือป่าวครับ " อันนี้ผมลองเปลี่ยน การเรียงลำดับเป็น utf8-gen ยังไม่ได้ครับ ไม่รู้เข้าใจถูกป่าวนะครับ

โค๊ด:
http://www.esarntoday.com/forum
เว็บสวยดีครับ  Cheesy

ขอบคุณทุกคนที่ตอบเลยครับ รวดเร็วทันใจดี ถึงจะยังทำไม่ได้  Grin

งมต่อไปวันที่ 2

มันเป็นแบบนี้น่ะครับ
โค๊ด:
http://www.sarakhamguide.com/board/index.php?board=3.0
Tongue
บันทึกการเข้า

thaipic
ก๊วนเสียว
*

พลังน้ำใจ: 18
ออฟไลน์ ออฟไลน์

กระทู้: 372



ดูรายละเอียด
« ตอบ #5 เมื่อ: 22 กุมภาพันธ์ 2008, 23:59:08 »

มันเป็นแบบ tinytext ไปลองอ่านๆมาดูมันบอกเก็บได้ 255 เท่ากับ varchar(255) ซึ่งอันเดิม (phpbb2) ก็ varchar(255)

1. ลองเปลี่ยนเป็น text แล้วไม่ได้ครับ
2. อันเดิมphpbb2 เป็น utf-8 ครับ ถ้า convert มาเป็น tis-620 เละเลยครับ
3. "ฟังค์ชั่นตัดคำ พวก substr มันตัด"  น่าสนใจครับ ว่าแต่มันอยู่ไฟล์ไหนเหรอท่าน
4. "เป็นที่ encode ของ mysql หรือป่าวครับ " อันนี้ผมลองเปลี่ยน การเรียงลำดับเป็น utf8-gen ยังไม่ได้ครับ ไม่รู้เข้าใจถูกป่าวนะครับ

โค๊ด:
http://www.esarntoday.com/forum
เว็บสวยดีครับ  Cheesy

ขอบคุณทุกคนที่ตอบเลยครับ รวดเร็วทันใจดี ถึงจะยังทำไม่ได้  Grin

งมต่อไปวันที่ 2

มันเป็นแบบนี้น่ะครับ
โค๊ด:
http://www.sarakhamguide.com/board/index.php?board=3.0
Tongue

เอ๋า เว็บเพื่อนบ้าน Grin
บันทึกการเข้า
userOne
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 40
ออฟไลน์ ออฟไลน์

กระทู้: 1,587



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 23 กุมภาพันธ์ 2008, 00:06:19 »

อ้างถึง
เอ๋า เว็บเพื่อนบ้าน

ใช่เจ้าของเว็บ ขอนแก่นลิ้ง ไม่ครับ ถ้าใช่ รู้สึกว่าจะกวาดหมดเลยนะครับ แถวอีสาน  Grin

เอาอย่างงี้เลยดีไม่ครับ ตอนจะตั้งกระทู้ มันจะมีช่องให้กรอก หัวข้อ ผมลอง view code ดู

โค๊ด:
<input type="text" name="subject" tabindex="1" size="80" maxlength="80" />

ที่อยากรู้คือ code นี้มันอยู่ไฟล์ไหนของ SMF เหรอครับ จะบังคับ maxlength เอาเลยครับ  Grin

 Angry Angry Angry Angry
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,517



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 23 กุมภาพันธ์ 2008, 01:11:59 »

อยู่ที่ Display.template.php กับ Post.template.php ครับ

ในโฟลเดอร์ของเทมเพลตที่กำลังใช้อยู่นะครับ *-*

ปล. มั่วไล่โค้ดจนลืมนอน ไปนอนล่ะเน้อ ZZZzzz...~~~~
บันทึกการเข้า

mitr
ก๊วนเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 339



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 23 กุมภาพันธ์ 2008, 15:40:16 »

วิธีแทรก google adsene ระหว่างกระทู้ทำยังไงเหรอครับ
บันทึกการเข้า
Thenetwork
คนรักเสียว
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 113



ดูรายละเอียด
« ตอบ #9 เมื่อ: 23 กุมภาพันธ์ 2008, 20:40:16 »

เป็นเพราะ field "subject" ใน table "smf_messages" มันเป็น TINYTEXT ครับ

เอาสคริปต์ sql ดังนี้ไปรัน เพื่อเปลี่ยนฟิลด์นี้ให้เป็น MEDIUMTEXT

ALTER TABLE `micnet_smf`.`smf_messages` MODIFY COLUMN `subject` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;


หรือ
เปิดไฟล์  /Sources/Post.php แล้วหาบรรทัดคำสั่ง

   // Make sure the subject isn't too long - taking into account special characters.
   if ($func['strlen']($form_subject) > 100)
      $form_subject = $func['substr']($form_subject, 0, 100);

   // At this point, we want to make sure the subject isn't too long.
   if ($func['strlen']($_POST['subject']) > 100)
      $_POST['subject'] = addslashes($func['substr'](stripslashes($_POST['subject']), 0, 100));

   // Maximum number of characters.
   if ($func['strlen']($_POST['subject']) > 100)
      $_POST['subject'] = addslashes($func['substr'](stripslashes($_POST['subject']), 0, 100));
ลองเปลี่ยนตัวเลขจาก 100 ให้เพิ่มขึ้นเป็นซัก 300 - 500 แทน

บอร์ดผมก็เคยเป็นครับ..CreDit Rcw
« แก้ไขครั้งสุดท้าย: 23 กุมภาพันธ์ 2008, 20:42:44 โดย Thenetwork » บันทึกการเข้า

au8ust
ยามหน้าคลังแสง
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 103
ออฟไลน์ ออฟไลน์

กระทู้: 3,489



ดูรายละเอียด
« ตอบ #10 เมื่อ: 23 กุมภาพันธ์ 2008, 23:54:31 »

เคยตอบไปใน Zone-IT แล้ว แต่ก๊อบมาตอบอีกละกัน

จริง ๆ มันมี MOD นะถ้าจำไม่ผิด แต่ว่าขี้เกียจหา แก้ได้ด้วยการเข้าไปที่ phpMyAdmin แล้วรัน
โค๊ด:
ALTER TABLE smf_messages
CHANGE COLUMN subject subject text;


จากนั้นเปิดไฟล์ Sources/Post.php แล้วหา
โค๊ด:
// Make sure the subject isn't too long.
if (strlen($form_subject) > 100)
$form_subject = substr($form_subject, 0, 100);
กับ
โค๊ด:
// At this point, we want to make sure the subject isn't too long.  Stripslashes first to avoid a trailing slash.
if (isset($_POST['subject']) && strlen(stripslashes($_POST['subject'])) > 100)
$_POST['subject'] = addslashes(substr(stripslashes($_POST['subject']), 0, 100));

หาเจอแล้วก็ลบออกทั้งสองที่ หรือจะ comment ไว้ก็ได้


เสร็จแล้วไปไฟล์ Post.template.php ของธีมที่ใช้ แล้วหา
โค๊ด:
<input type="text" name="subject"', $context['subject'] == '' ? '' : ' value="' . $context['subject'] . '"', ' size="80" [color=crimson]maxlength="80"[/color] tabindex="1" />

หาเจอแล้วก็ลบส่วนที่ระบุว่า maxlength="80" ออก


อืม คล้าย ๆ ภารกิจค้นหาและทำลายแฮะ
บันทึกการเข้า
mojijung_05
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 1



ดูรายละเอียด
« ตอบ #11 เมื่อ: 14 มกราคม 2010, 17:30:07 »

ขอบคุณน่ะครับ ผมเพิ่งหัดเล่นครับ (มือใหม่ครับ) ใช้วิธีนี้ได้เรยครับ  wanwan020

หรือ
เปิดไฟล์  /Sources/Post.php แล้วหาบรรทัดคำสั่ง

   // Make sure the subject isn't too long - taking into account special characters.
   if ($func['strlen']($form_subject) > 100)
      $form_subject = $func['substr']($form_subject, 0, 100);

   // At this point, we want to make sure the subject isn't too long.
   if ($func['strlen']($_POST['subject']) > 100)
      $_POST['subject'] = addslashes($func['substr'](stripslashes($_POST['subject']), 0, 100));

   // Maximum number of characters.
   if ($func['strlen']($_POST['subject']) > 100)
      $_POST['subject'] = addslashes($func['substr'](stripslashes($_POST['subject']), 0, 100));
ลองเปลี่ยนตัวเลขจาก 100 ให้เพิ่มขึ้นเป็นซัก 300 - 500 แทน

บอร์ดผมก็เคยเป็นครับ..CreDit Rcw

บันทึกการเข้า
pizad_sura
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 5,603



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 14 มกราคม 2010, 17:49:04 »

smf 2.0 ของผมก็ยังเป็นอยู่เหมือนกัน  wanwan001
บันทึกการเข้า

nikki
บุคคลทั่วไป
« ตอบ #13 เมื่อ: 08 มีนาคม 2013, 17:49:20 »

ลองทุกวิธีแล้วไม่รอดอะครับ ยังเป็นอยู่แฮะ  Tongue
บันทึกการเข้า
adsee49
คนรักเสียว
*

พลังน้ำใจ: 25
ออฟไลน์ ออฟไลน์

กระทู้: 175



ดูรายละเอียด
« ตอบ #14 เมื่อ: 08 มีนาคม 2013, 18:28:11 »

เปิดไฟล์ Sources/Post.php แล้วหาโค๊ด แก้ค่า ตัวเลข จาก 100  เป็น  140  ทั้ง 4 ตัว
โค๊ด:
// Make sure the subject isn't too long.
if (strlen($form_subject) > 100)
$form_subject = substr($form_subject, 0, 100);
กับ
โค๊ด:
// At this point, we want to make sure the subject isn't too long.  Stripslashes first to avoid a trailing slash.
if (isset($_POST['subject']) && strlen(stripslashes($_POST['subject'])) > 100)
$_POST['subject'] = addslashes(substr(stripslashes($_POST['subject']), 0, 100));


หา โค๊ดจาก /Themes/default/Post.template.php ของธีม  แก้ไข maxlength="80" จาก 80 เป็น 120 (หรือจะน้อยกว่านี้ก็ได้ แล้วแต่ความพอใจครับ)
โค๊ด:
<input type="text" name="subject"', $context['subject'] == '' ? '' : ' value="' . $context['subject'] . '"', ' size="80" [color=crimson]maxlength="80"[/color] tabindex="1" />


SMF 1.X.X แก้ได้ 100%

« แก้ไขครั้งสุดท้าย: 08 มีนาคม 2013, 18:35:49 โดย adsee49 » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์