สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

พูดคุย phpBB3, SMF ปัญหา การติดตั้ง ปัญหา การลง Mod การแก้ไข หน้าตาบอร์ด การใช้งาน Joomla 1.5, 1.6, 1.7, 2.5 ,3.x รวมถึง Joomla 4 การใช้งาน wordpress และ CMS อื่นๆ
การตั้งคำถาม ควรระบุรุ่นที่ใช้ ในการตั้งคำตามด้วย นะ เช่น SMF 1.1.4 หรือ SMF2.0, OpenERP, Odoo และ รายละเอียดของ server OS, php เวอร์ชั่นไหน ฐานข้อมูลอะไร

Moderator: mindphp

กฎการใช้บอร์ด
คำถามหมวดนี้ ควรระบุ รายละเอียดของ Server OS, เวอร์ชั่น ของ PHP, CMS ที่ท่านใช้
รวมถึง Hosting หรือ Control Panel Hosting
ภาพประจำตัวสมาชิก
eange08
PHP VIP Members
PHP VIP Members
โพสต์: 16184
ลงทะเบียนเมื่อ: 22/12/2020 10:09 am

สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

โพสต์ที่ยังไม่ได้อ่าน โดย eange08 »

ตอนบันทึกข้อมูลจาก textarea แล้วข้อความจะโดนครอบไว้ด้วย <t></t> ถ้าเอาข้อความแบบมี <t></t> มาต่อก็จะแสดง <t></t>
ลองทำ replace <t></t> ออกแล้วแต่ก็ไม่ได้ค่ะ ต้องแก้อย่างไรค่ะ

อันนี้ echo ค่าที่เอามาต่อข้อความก่อน save ลงฐานค่ะ
screenshot-localhost-2021.02.01-16_52_28.png
screenshot-localhost-2021.02.01-16_52_28.png (6.62 KiB) Viewed 1186 times
หน้าจอจะแสดงแบบมี <t></t> อยู่
[/code]
screenshot-localhost-2021.02.01-16_57_18.png
screenshot-localhost-2021.02.01-16_57_18.png (5.97 KiB) Viewed 1186 times
code ส่วนต่อข้อความ

โค้ด: เลือกทั้งหมด

 $detailth     = $request->variable('detailth', array('' => ''), true);
 if(!empty($detailth)){
                                                foreach($detailth as $detailth){
                                                    $rep_detailt=str_replace('<t>','',$detailth);
                                               
                                                    if($t==0){
                                                      $str_detailth= $rep_detailt;
                                                    }else{
                                                      $str_detailth=$str_detailth.','.$rep_detailt;
                                                    }
                                                        $t++;
                                                }
                                            }
                                                 echo $str_detailth.'<br>';     exit;
ภาพประจำตัวสมาชิก
eange08
PHP VIP Members
PHP VIP Members
โพสต์: 16184
ลงทะเบียนเมื่อ: 22/12/2020 10:09 am

Re: สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

โพสต์ที่ยังไม่ได้อ่าน โดย eange08 »

อาจจะมาตอนจังหวะ save ลงฐานไปแล้ว เพราะลอง echo ก่อนส่วนที่จะทำ query INSERT ก็ไม่มี <t></t> อยู่นะ

รูปตอน echo ตัวแปรที่รับมาก่อน insert ลงฐาน
screenshot-localhost-2021.02.01-17_55_46.png
screenshot-localhost-2021.02.01-17_55_46.png (5.11 KiB) Viewed 1181 times
Code ช่วงบันทึกลงฐานข้อมูล

โค้ด: เลือกทั้งหมด

$textethai                  = utf8_normalize_nfc(request_var('', $detailth, true)); //---ตัวแปรที่ดึงค่าจาก textarea 
                                $uid = $bitfield = $options = ''; // will be modified by generate_text_for_storage
                                $allow_bbcode = $allow_urls = $allow_smilies = true;
                                generate_text_for_storage($textethai, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);
                                  echo $textethai;exit; //----echo ดูว่ามี <t></t> ครอบอยู่หรือเปล่า
                                $sql = 'INSERT INTO ' .MOD_DICTIONARY_TABLE . ' ' . $db->sql_build_array('INSERT', array(
                                'esearch'           =>  (string)$search,
                                'eentry'            =>  (string)$nameeg,
                                'tentry'            =>  (string)$nameth,
                                'ecat'              =>  (int)$group_car,
                                'ethai'             =>  (string)$textethai,
                                'bbcode_bitfield'   =>  (string)$bitfield,
                                'bbcode_uid'        =>  (string)$uid,
                                'user_id_add'       =>  (string)$user_add,
                                'user_id_approve'   =>  (string)$user_add,
                                'approved'          =>  (string)1,
                                'add_time'          =>  time(),
                                'approve_time'      =>  time(),
                                'programe_id'       => (int)$group_mo,
                                'tags'              =>  (string)$tags,
                                    ));
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ในฐานข้อมูลปกติ จะไม่มี tag อื่นๆ เพิ่มเข้ามา
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ถ้ามี tags แปลก เพิ่มเข้ามาในข้อความตัดออก ด้วย ฟังก์ชั่น strip_tags()
https://www.mindphp.com/%E0%B8%84%E0%B8 ... _tags.html
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
eange08
PHP VIP Members
PHP VIP Members
โพสต์: 16184
ลงทะเบียนเมื่อ: 22/12/2020 10:09 am

Re: สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

โพสต์ที่ยังไม่ได้อ่าน โดย eange08 »

ถ้าจะแปลงใช้แบบนี้ถูกต้องไหมค่ะ

โค้ด: เลือกทั้งหมด

$ethai=strip_tags($textethai, '<t>');
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

eange08 เขียน: 01/02/2021 6:15 pm ถ้าจะแปลงใช้แบบนี้ถูกต้องไหมค่ะ

โค้ด: เลือกทั้งหมด

$ethai=strip_tags($textethai, '<t>');
แบบนี้คือการอนุญาติให้มี tag <t>
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
eange08
PHP VIP Members
PHP VIP Members
โพสต์: 16184
ลงทะเบียนเมื่อ: 22/12/2020 10:09 am

Re: สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

โพสต์ที่ยังไม่ได้อ่าน โดย eange08 »

mindphp เขียน: 01/02/2021 6:17 pm

โค้ด: เลือกทั้งหมด

echo strip_tags($text);
เข้าใจคำสั่งแล้วค่ะ ตัดเอา <t></t> ออกได้แล้วค่ะ :-o
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: สอบถามเวลาแสดงข้อมูลจะไม่ให้แสดง <t></t> ที่หน้าจอ

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

eange08 เขียน: 01/02/2021 5:59 pm อาจจะมาตอนจังหวะ save ลงฐานไปแล้ว เพราะลอง echo ก่อนส่วนที่จะทำ query INSERT ก็ไม่มี <t></t> อยู่นะ

รูปตอน echo ตัวแปรที่รับมาก่อน insert ลงฐาน

screenshot-localhost-2021.02.01-17_55_46.png

Code ช่วงบันทึกลงฐานข้อมูล

โค้ด: เลือกทั้งหมด

$textethai                  = utf8_normalize_nfc(request_var('', $detailth, true)); //---ตัวแปรที่ดึงค่าจาก textarea 
                                $uid = $bitfield = $options = ''; // will be modified by generate_text_for_storage
                                $allow_bbcode = $allow_urls = $allow_smilies = true;
                                generate_text_for_storage($textethai, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);
                                  echo $textethai;exit; //----echo ดูว่ามี <t></t> ครอบอยู่หรือเปล่า
                                $sql = 'INSERT INTO ' .MOD_DICTIONARY_TABLE . ' ' . $db->sql_build_array('INSERT', array(
                                'esearch'           =>  (string)$search,
                                'eentry'            =>  (string)$nameeg,
                                'tentry'            =>  (string)$nameth,
                                'ecat'              =>  (int)$group_car,
                                'ethai'             =>  (string)$textethai,
                                'bbcode_bitfield'   =>  (string)$bitfield,
                                'bbcode_uid'        =>  (string)$uid,
                                'user_id_add'       =>  (string)$user_add,
                                'user_id_approve'   =>  (string)$user_add,
                                'approved'          =>  (string)1,
                                'add_time'          =>  time(),
                                'approve_time'      =>  time(),
                                'programe_id'       => (int)$group_mo,
                                'tags'              =>  (string)$tags,
                                    ));
ตอน echo ดูตอนรับค่า ต้อง view-source ดู ว่าไม่มีติดมาจริงป่าว
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: Amazon [Bot], Google [Bot] และบุคลทั่วไป 83