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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์CMS & Free Scriptอัพเดท wp 4.2.4 แล้วเจอ debug warning นี้แก้ยังไงเหรอครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: อัพเดท wp 4.2.4 แล้วเจอ debug warning นี้แก้ยังไงเหรอครับ  (อ่าน 898 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
jiyuu19th
สมุนแก๊งเสียว
*

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

กระทู้: 609



ดูรายละเอียด
« เมื่อ: 12 สิงหาคม 2015, 10:20:55 »

PHP Warning:  in_array() expects parameter 2 to be array, string given in /home/.../public_html/wp-includes/formatting.php on line 342

อ้างถึง
// Handle disabled tags.
   if ( in_array( $tag, $disabled_elements ) ) { // บรรทัดที่ 342
      if ( $opening_tag ) {
         /*
          * This disables texturize until we find a closing tag of our type
          * (e.g. <pre>) even if there was invalid nesting before that
          *
          * Example: in the case <pre>sadsadasd</code>"baba"</pre>
          *          "baba" won't be texturize
          */

         array_push( $stack, $tag );
      } elseif ( end( $stack ) == $tag ) {
         array_pop( $stack );
      }
   }


แล้วอันนี้จะรู้ไหมครับ ว่ามันเตือนจากโค้ดไหน มันไม่บอกเลยว่ามาจากไฟล์ไหนครับ

โค๊ด:
PHP Notice:  Undefined index: 36
PHP Notice:  Undefined index: topicname


เตือนพวกนี้ขึ้นมาตลอดทุกครั้งที่มีการเปิดหน้าเว็บเลยครับ โค้ดมันผิดตรงไหนเหรอครับ ทั้งๆ ที่มันก็เป็นโค้ดตรงๆ มาจาก wordpress เอง
บันทึกการเข้า
Zentana
สมุนแก๊งเสียว
*

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

กระทู้: 608



ดูรายละเอียด
« ตอบ #1 เมื่อ: 12 สิงหาคม 2015, 10:52:16 »

อาจจะเกิดการผิดพลาดระหว่างการอัพเดทได้
ลอง Re-Install อีกรอบดูก่อนครับ
บันทึกการเข้า

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

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

กระทู้: 910



ดูรายละเอียด
« ตอบ #2 เมื่อ: 12 สิงหาคม 2015, 11:02:52 »

หากพูดตามหลักการของ PHP นะครับ (ผมไม่ค่อยรู้เรื่อง WP)
จากบรรทัดนี้
if ( in_array( $tag, $disabled_elements ) ) {

มันเป็นการแจ้งว่า ค่า $disabled_elements ที่ได้รับ ไม่ใช่ array
วิธีแก้ไขเพื่อการทดสอบ
ลองเพิ่มโค๊ดนี้ดูครับ

$disabled_elements = array();
if ( in_array( $tag, $disabled_elements ) ) {


ไม่รับประกันอะไรทั้งสิ้นนะครับ ผมว่าตามหลักเท่านั้นเอง
และไม่รู้ว่าจะช่วยได้ไหม เพราะผมไม่รู้ว่า WP ใช้ฟังชั่นนี้ตรงไหนอีกบ้าง เกี่ยวพันไปถึงส่วนไหนอีกบ้าง
บันทึกการเข้า
jiyuu19th
สมุนแก๊งเสียว
*

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

กระทู้: 609



ดูรายละเอียด
« ตอบ #3 เมื่อ: 12 สิงหาคม 2015, 11:12:18 »

อาจจะเกิดการผิดพลาดระหว่างการอัพเดทได้
ลอง Re-Install อีกรอบดูก่อนครับ


ผมไปอัพเดทเองครับ ปกติเคยทำก็ไม่มีปัญหา
ทับหมดทุกไฟล์เว้น wp-contant wp-config.php มันก็แจ้งวันอัพเดทสำเร็จครับ
ถ้าไม่ได้จริงๆ เดี๋ยวลองเอาแบคอัพมาลงใหม่ครับ

หากพูดตามหลักการของ PHP นะครับ (ผมไม่ค่อยรู้เรื่อง WP)
จากบรรทัดนี้
if ( in_array( $tag, $disabled_elements ) ) {

มันเป็นการแจ้งว่า ค่า $disabled_elements ที่ได้รับ ไม่ใช่ array
วิธีแก้ไขเพื่อการทดสอบ
ลองเพิ่มโค๊ดนี้ดูครับ

$disabled_elements = array();
if ( in_array( $tag, $disabled_elements ) ) {


ไม่รับประกันอะไรทั้งสิ้นนะครับ ผมว่าตามหลักเท่านั้นเอง
และไม่รู้ว่าจะช่วยได้ไหม เพราะผมไม่รู้ว่า WP ใช้ฟังชั่นนี้ตรงไหนอีกบ้าง เกี่ยวพันไปถึงส่วนไหนอีกบ้าง

ขอบคุณครับ เดี๋ยวไปลองดูก่อนครับ
บันทึกการเข้า
coolsweet
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,072



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 12 สิงหาคม 2015, 11:16:00 »

เข้ามาฟังด้วยครับผม ขอบคุณคร้าบ  wanwan017
บันทึกการเข้า

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

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

กระทู้: 609



ดูรายละเอียด
« ตอบ #5 เมื่อ: 12 สิงหาคม 2015, 12:08:12 »

โอ้ มันไม่เตือนแล้วครับ ทำตามที่ คุณ sputtaro บอกไว้ครับ ขอบคุณมากๆ ครับ

แล้วอันนี้คืออะไรเหรอครับ
PHP Warning:  htmlspecialchars() [<a href='function.htmlspecialchars'>function.htmlspecialchars</a>]: Invalid multibyte sequence in argument

มันมาจากโค้ดนี้ครับ

อ้างถึง
function sp_filter_tooltip_display($content, $status) {
   global $spThisUser;

    #save unedited content
    $original = $content;

   # can the current user view this post?
   if (!$spThisUser->moderator && $status == 1) {
      $content = sp_text('Post Awaiting Approval by Forum Administrator');
   } else {
      $content = addslashes($content);
      $content = sp_filter_save_nohtml($content);
        # remove shortcodes to prevent messing up tooltip
        $content = strip_shortcodes($content);
        $length = apply_filters('sph_tooltip_length_chars', 300);
      if (strlen($content) > $length) {
         $pos = strpos($content, ' ', $length);
            if ($pos === false) $pos = $length;
            $content = substr($content, 0, $pos).'...';
       }
      $content = htmlspecialchars($content, ENT_QUOTES, 'UTF-8');  // บรรทัดนี้ครับ ผมไปหาข้อมูลมา มีคนบอกให้ใส่ UTF-8 เพิ่ม แต่ของเดิมมันก็มีอยู่แล้วครับ
      $content = str_replace('&amp;', '&', $content);
   }

   $content = apply_filters('sph_display_tooltip_filter', $content, $original, $status);

   return $content;
}


พวกที่ไม่บอกว่าเตือนจากไฟล์ไหน เราจะมีวิธีหาไหมครับ ว่ามันเป็นโค้ดไฟล์ไหน
มันขึ้นแค่ว่า undefined เท่านั้นเองครับ

อ้างถึง
PHP Notice:  Undefined offset: 1
PHP Notice:  Undefined offset: 4
PHP Notice:  Undefined index: topicname
PHP Notice:  Undefined index: 36
บันทึกการเข้า
sputtaro
สมุนแก๊งเสียว
*

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

กระทู้: 910



ดูรายละเอียด
« ตอบ #6 เมื่อ: 12 สิงหาคม 2015, 12:18:05 »

$content = htmlspecialchars($content, ENT_QUOTES, 'UTF-8');

คำสั่งนี้ถูกต้องแล้ว แต่อาจเกิดจาก
PHP 5.4 and 5.5 will use UTF-8 as the default. Earlier versions of PHP use ISO-8859-1.
ลองสลับดูนะครับ เพราะไม่แน่ใจว่าควรใช้ อะไรแทน PHP เวอร์ชั่นที่คุณใช้อยู่

ส่วน
PHP Notice:  Undefined offset: 1
PHP Notice:  Undefined offset: 4
PHP Notice:  Undefined index: topicname
PHP Notice:  Undefined index: 36

พวกนี้ต้องให้ผู้เชี่ยวชาญ WP เป็นคนอธิบายจะดีกว่าครับ

************************************

ขอเพิ่มเติมเกี่ยวกับ encoding โดยเฉพาะในส่วนของการตั้งค่า default_charset configuration option
ลองอ่านจากลิ้งค์ข้างล่างด้วยนะครับ
http://php.net/manual/en/ini.core.php#ini.default-charset
« แก้ไขครั้งสุดท้าย: 12 สิงหาคม 2015, 12:26:57 โดย sputtaro » บันทึกการเข้า
jiyuu19th
สมุนแก๊งเสียว
*

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

กระทู้: 609



ดูรายละเอียด
« ตอบ #7 เมื่อ: 12 สิงหาคม 2015, 12:43:27 »

เป็นเวอร์ชั่นนี้ครับ Php 5.3.28

เป็นจาก UTF-8 เป็น ISO-8859-1 ใช่ไหมครับ เดี๋ยวผมจะลองเปลี่ยนดูครับ เป็นอย่างไรจะมารายงานอีกทีครับ
บันทึกการเข้า
jiyuu19th
สมุนแก๊งเสียว
*

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

กระทู้: 609



ดูรายละเอียด
« ตอบ #8 เมื่อ: 12 สิงหาคม 2015, 14:12:23 »

warning หายไปแล้วครับ ขอบคุณมากๆ ครับ
เรื่องพวก php นี่รู้แค่ผิวๆ พอแค่ปรับแต่งได้ ไม่ก็หาใน gg
แต่ถ้าลึกขนาดวิเคราะห์ปัญหาได้ หรือหาในต่างประเทศก็ไม่เจอเคสคล้ายกัน นี่จนปัญญาเลยครับ
 wanwan017 wanwan017
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์