อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 5410
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

ผมได้สร้าง Extension ที่มีไว้สำหรับกด ถูกใจโพสต์ โดยหากมีโพสต์ไหนได้รับการกดถูกใจ ก็จะมีการแสดงจำนวนการเข้ามากดถูกใจ

และนอกจากนี้ผุ้ใช้งานคนสามารถตรวจสอบได้ว่ามีใครมากดถูกใจโพสต์นั้นบาง ซึ่งเมื่อกดดุก็จะพบว่ามีการแสดงรูปภาพประจำตัวผู้ใช้งานคนนั้น(กรณ๊ที่มีการใช้งาน)

แต่เมื่อผมได้ทดลองทำก็พบว่า ไม่มีการแสดงรูปภาพประจำตัวใช้งานขึ้นมา
Selection_999(1443).png
Selection_999(1443).png (9.1 KiB) Viewed 1400 times

แล้วผมได้ตรวจสอบโดยการ inspect ดูพบว่ามีการเรียกที่อยู่ข้อมูลผิด
Selection_999(1444).png
Selection_999(1444).png (30.26 KiB) Viewed 1400 times

โดยส่วนที่ใช้ในการแสดงรูภาพในโคด คือ AVATAR_LIKE
และนี้คือ code ที่ผมใช้งาน ครับ

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


                if (strlen($topic) > 1) {
                    $numlike = substr($topic, -1);
                } else {
                    $numlike = $topic;
                }

                $sql = ' SELECT * FROM ' . $this->table_prefix . 'm_like' . $numlike . ' WHERE post_id=' . $post;
                $result = $this->db->sql_query($sql);
                $username = $user_show_all = $like_time = '';

                while ($row = $this->db->sql_fetchrow($result)) {
                    $user_id[] = $row['user_id'];
                    $user_show[$row['user_id']] = $row['username'];
                    $like_time[$row['user_id']] = $row['like_time'];
                }

                $sql_image = 'SELECT user_colour,user_id, user_avatar ,user_avatar_type,user_avatar_width ,user_avatar_height
					FROM ' . USERS_TABLE . '
					WHERE ' . $this->db->sql_in_set('user_id', $user_id);
                $result_image = $this->db->sql_query($sql_image);


                while ($row_image = $this->db->sql_fetchrow($result_image)) {
                    $login_auto_phpbb_avatar = phpbb_get_user_avatar($row_image);
                    
                    //echo $login_auto_phpbb_avatar;
                    $data[$row_image['user_id']] = $login_auto_phpbb_avatar;
                    $user_color[$row_image['user_id']] = $row_image['user_colour'];
                }
                $url_user = generate_board_url();
                
                
                foreach ($user_id as $id) {

            

                    $this->template->assign_block_vars('user_all', array(
                        'LINK_USER_NAME' => $url_user . '/' . append_sid("memberlist.$this->php_ext", "mode=viewprofile&u=$id"),
                        'NAME_LIKE' => get_username_string('username', $id, $user_show[$id], $user_color[$id], $user_show[$id]), //get_username_string('colour', $value, $user_show[$value], $this->get_colour($user_show[$value]), $user_show[$value]),
                        'AVATAR_LIKE' => $data[$id], //(empty($data[$value])) ? '<div class="not_avtar"></div>' : $data[$value],
                        'TIME_LIKE' => $this->user->format_date($like_time[$id]),
                    ));
                }

จึกอยากทราบว่าควรแก้ไข้อย่างไร ครับ
ขอให้วันนี้เป็นวันที่ดี
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41344
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

path ไฟล์ ที่ระบุไปที่ ไฟล์ file.php ผิด
ระบุ path เข้ามาจาก root folder ว่าเข้ามากี่ชั้น

ถ้าใน phpBB แค่ระบุ path ถูกก็จะได้ ภาพมาใช้งานเลย

ลองดูกระทู้นี้ ทำความเข้าใจเรื่อง
https://www.mindphp.com/forums/viewtopic.php?t=22186
ติดตาม 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
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

$row คือ ข้อมูลที่ได้จาก USERS_TABLE

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

phpbb_get_user_avatar($row) 
ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 5410
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

ยังไม่เป็นแบบเดิมครับ มันยังดึง path ผิดอยู่ครับ
ขอให้วันนี้เป็นวันที่ดี
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

เวลามันส่งไปจะส่งเป็น นะ ได้ Return ออกมาเเบบนี้หรือยัง

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

<img class="avatar" src="xxxx" alt="ภาพประจำตัวสมาชิก" width="120" height="120"> 
ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 5410
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

ที่ผลองทำได้แบบนี้ครับ
Selection_999(1445).png

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

<img class="avatar" src="./../../../../download/file.php?avatar=2_1557288536.png" width="580" height="361" alt="User avatar">

โคดที่ใช่ตอนนี้

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



                $sql_image = 'SELECT user_colour,user_id, user_avatar ,user_avatar_type,user_avatar_width ,user_avatar_height
					FROM ' . USERS_TABLE . '
					WHERE ' . $this->db->sql_in_set('user_id', $user_id);
                $result_image = $this->db->sql_query($sql_image);

            
                while ($row_image = $this->db->sql_fetchrow($result_image)) {
                    $login_auto_phpbb_avatar[$row_image['user_id']]  = get_user_avatar($row_image['user_avatar'], $row_image['user_avatar_type'], 
                                                                                                                                    $row_image['user_avatar_width'], $row_image['user_avatar_height']);

                    $data[$row_image['user_id']] = $login_auto_phpbb_avatar;
                    $user_color[$row_image['user_id']] = $row_image['user_colour'];
                }
                $url_user = generate_board_url();


                foreach ($user_id as $id) {
                    $this->template->assign_block_vars('user_all', array(
                        'AVATAR_LIKE' => $login_auto_phpbb_avatar[$id], 
                   
                    ));
                }



ขอให้วันนี้เป็นวันที่ดี
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

'เราต่อ url เองได้มัย ลองดูแบบนี้



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

     while ($row_image = $this->db->sql_fetchrow($result_image)) {
                    $login_auto_phpbb_avatar = phpbb_get_user_avatar($row_image);
                    
                    //echo $login_auto_phpbb_avatar;
                    $data[$row_image['user_id']] =  $row_image['user_avatar'];
                    $user_color[$row_image['user_id']] = $row_image['user_colour'];

                }
                $url_user = generate_board_url();
                
                
                foreach ($user_id as $id) {

                        $image = $url_user . '/' .append_sid("download/file.$this->php_ext", "avatar=" . $data[$id]);

                    $this->template->assign_block_vars('user_all', array(
                        'LINK_USER_NAME' => $url_user . '/' . append_sid("memberlist.$this->php_ext", "mode=viewprofile&u=$id"),
                        'NAME_LIKE' => get_username_string('username', $id, $user_show[$id], $user_color[$id], $user_show[$id]), //get_username_string('colour', $value, $user_show[$value], $this->get_colour($user_show[$value]), $user_show[$value]),
                        'AVATAR_LIKE' => $image, //(empty($data[$value])) ? '<div class="not_avtar"></div>' : $data[$value],
                        'TIME_LIKE' => $this->user->format_date($like_time[$id]),
                    ));
                } 
ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 5410
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

มันได้ออกมาเป็น โคดแทนครับ
Selection_999(1446).png
Selection_999(1446).png (12.31 KiB) Viewed 1353 times
ขอให้วันนี้เป็นวันที่ดี
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

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

ใช้วิธีนี้ก้อได้

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

 $login_auto_phpbb_avatar = phpbb_get_user_avatar($row_image); 

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

                    $data[$row_image['user_id']] = str_replace('./../../../../' ,generate_board_url(). '/' , $login_auto_phpbb_avatar);
 
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 99