มีใครใช้ osclass อยู่บ้างครับ เว็บผมมีลงประกาศสินค้า 2 หมื่นกว่ารายการ error

เริ่มโดย aoarmy, 20 พฤศจิกายน 2022, 15:06:14

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

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

aoarmy

คือตอนนี้ไม่สามารถโพสต์ใหม่ได้อย่างสมบูรณ์ โพสต์เสร็จหน้าเว็บจะเด้งไปหน้า


พอ refresh กลับไปหน้าเว็บอีกรอบก็จะเป็นตามรูป สินค้าไม่แสดงรายละเอียดและรูปภาพ



เข้าไปดูที่ debug log เป็นดังนี้
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Undefined index: locale in /oc-includes/osclass/emails.php on line 367
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Warning:  current() expects parameter 1 to be array, null given in /oc-includes/osclass/emails.php on line 367
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 372
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 372
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 373
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 373
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 389
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 390
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 391
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 392
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type null in /oc-includes/osclass/emails.php on line 402
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type null in /oc-includes/osclass/emails.php on line 405
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 410
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Notice:  Trying to access array offset on value of type bool in /oc-includes/osclass/emails.php on line 411
[20-Nov-2022 11:05:50 Asia/Bangkok] PHP Fatal error:  Uncaught Error: Call to a member function numRows() on bool in /oc-includes/osclass/model/Admin.php:70
Stack trace:
#0 /oc-includes/osclass/model/Admin.php(52): Admin->__construct()
#1 /oc-includes/osclass/helpers/hUsers.php(198): Admin::newInstance()
#2 /oc-includes/osclass/classes/database/DBConnectionClass.php(178): osc_is_admin_user_logged_in()
#3 [internal function]: DBConnectionClass->__destruct()
#4 {main}
  thrown in /oc-includes/osclass/model/Admin.php on line 70


ตือผมพยายามอัพไฟล์ email.php ขึ้นไปทับก็ไม่หาย ลองอัพโฟลเดอร์ oc-includes ขึ้นไปใหม่ก็ไม่หาย

เพื่อนสมาฃิกท่านใด พอให้คำแนะนำแก้ไขได้ จะขอบคุณมากเลยครับ :wanwan017:

รายละอียด เว็บ และ server
my osclass
Osclass information
Osclass version: 8.0.2
Multisite: No

Last update check: 2022-11-19 20:48:02

Using dev cron: Yes

Current front theme: Sigma Osclass Theme (sigma)

Current oc-admin theme: Omega Admin Theme (omega)

PHP error log: Enabled

PHP errors output to file: Enabled

Database debug mode: Disabled

Cache: Disabled

Server information
Server information:

Server software version: ()

PHP version: 7.4.30

Memory limit: 256M

Max execution time: 5000s

Upload max file size: 2048M

Max input vars: 5000

Allow URL Fopen: Enabled

Database information
MySQL version: 5.5.5-10.6.9-MariaDB

MySQL server: localhost

MySQL name:

MySQL user:

Tables prefix: oc_

ขอขอบคุณพื้นที่ thaiseoboard ด้วยครับ

vii

ดูจาก error ต่างๆ เข้าใจว่ามักมาจากการเขียนที่ไม่ดีไม่รัดกุมมากพอด้วยประการหนึ่ง
นอกนั้นอาจจะมาจากที่โค้ดเป็นรุ่นเก่าเขียนกับ PHP เก่าๆแล้วบน server จริงเป็นรุ่นใหม่กว่า

จากที่ดูล่าสุดบนเว็บของเขา https://osclass-classifieds.com/changelog
ตัวล่าสุดคือ 8.0.2 ซึ่งรองรับ PHP 8.1 มาตั้งแต่รุ่นก่อนหน้าแล้ว ดังนั้นปัญหาเรื่องรุ่น PHP เข้ากันไม่ได้น่าจะตัดทิ้งไปได้ก่อน.

Update:
ทดลองโหลดโค้ดเขามาไล่ดู ก็พบว่าเป็นอย่างนั้นจริงๆ คือเอาค่าในตัวแปรมาเรียกใช้โต้งๆเลยไม่มีการเช็คซะก่อน มันก็เลยมี error ประเภท undefined index กับ argument ผิดประเภท.
ส่วนใหญ่มาจากข้อมูลที่ query จาก db ไม่มีออกมาหรือผิดพลาด ดังนั้นก็ต้องไปดูที่ฐานข้อมูลด้วยว่ามันมีปัญหาอะไร มัน online มั้ยเรียกใช้จากโค้ดอื่นๆได้มั้ย ให้ทดลองเขียนโค้ดง่ายๆในการ read/create/delete ดูว่ามันทำงานได้มั้ยนะครับ

aoarmy

อ้างถึงจาก: vii ใน 20 พฤศจิกายน 2022, 16:50:07
ดูจาก error ต่างๆ เข้าใจว่ามักมาจากการเขียนที่ไม่ดีไม่รัดกุมมากพอด้วยประการหนึ่ง
นอกนั้นอาจจะมาจากที่โค้ดเป็นรุ่นเก่าเขียนกับ PHP เก่าๆแล้วบน server จริงเป็นรุ่นใหม่กว่า

จากที่ดูล่าสุดบนเว็บของเขา https://osclass-classifieds.com/changelog
ตัวล่าสุดคือ 8.0.2 ซึ่งรองรับ PHP 8.1 มาตั้งแต่รุ่นก่อนหน้าแล้ว ดังนั้นปัญหาเรื่องรุ่น PHP เข้ากันไม่ได้น่าจะตัดทิ้งไปได้ก่อน

ขอบคุณสำหรับความคิดเห็นครับ

คือตอนหลังเนื่องจากพื้นที่เว็บบวม(share host ผมใช้พื้นที่เต็ม) จึงต้องย้ายมา server vps เดือนแรกก็เป็น
ผมคิดอะไรไม่ออกก็รบกวนให้ทาง host restore ย้อนวันให้ ก็ใช้ได้ปกติมาอีกเดือนนึงก็เป็นอีก
จึงรบกวนให้ ทาง host restore อีกรอบ ล่าสุดได้แค่ครึ่งเดือนก็เป็นอีก

จึงอยากหาทางแก้ที่จะได้ไม่ต้องรบกวน ทาง host restore ให้อีกครับ (ติดเกรงใจ) :P
และทาง host ก็แจ้งมาว่า server ปกติ ไม่ได้มีการอัพเดทใด ๆ

ปล.อยากสู้ต่อไปกับ cms ตัวนี้ครับ เนื่องจากผมใช้แล้วชอบตรงที่ติดคีร์ทำอันดับได้ดี และเว็บ index ได้ง่ายครับ

vii

Update:
ทดลองโหลดโค้ดเขามาไล่ดู ก็พบว่าเป็นอย่างนั้นจริงๆ คือเอาค่าในตัวแปรมาเรียกใช้โต้งๆเลยไม่มีการเช็คซะก่อน มันก็เลยมี error ประเภท undefined index กับ argument ผิดประเภท.
ส่วนใหญ่มาจากข้อมูลที่ query จาก db ไม่มีออกมาหรือผิดพลาด ดังนั้นก็ต้องไปดูที่ฐานข้อมูลด้วยว่ามันมีปัญหาอะไร มัน online มั้ยเรียกใช้จากโค้ดอื่นๆได้มั้ย ให้ทดลองเขียนโค้ดง่ายๆในการ read/create/delete ดูว่ามันทำงานได้มั้ยนะครับ

aoarmy

ขอบคุณอีกครั้ง  :wanwan017:

ขอสารภาพว่าผมเขียนโค้ดไม่เป็นเลยครับ :wanwan008:

แต่ถ้าความเข้าใจของผมถูกต้อง ที่อยากบอกคือ ยังสามารถเข้าหน้า admin ไปลบโพสต์ที่เสียหายไม่สมบูรณ์ได้อยู่ครับ
แบบนี้แสดงว่า ฐานข้อมูล  มัน online อยู่ใช่ไหมครับ

vii

ใช่แล้ว แสดงว่ามันยังเรียกใช้ได้อยู่ อาจต้องมีการ optimize หรือต้องหาเหตุเพิ่มเติม เพราะดูโค้ดแล้วปัญหามาจากกระบวนการ query db.

aoarmy

ขอปิดกระทู้ครับ มั่วจนแก้ได้แล้วครับ

ผมไปแก้ config.php

จาก

// PHP memory limit (ideally should be more than 128MB+)
// define('OSC_MEMORY_LIMIT', '64');


เป็น

// PHP memory limit (ideally should be more than 128MB+)
define('OSC_MEMORY_LIMIT', '256M');


ขอทิ้งกระทู้นี้ไว้ในบอร์ดเผื้อว่าใครเจอปัญหานี้นะครับ

aoarmy

อ้างถึงจาก: aoarmy ใน 20 พฤศจิกายน 2022, 18:59:58
ขอปิดกระทู้ครับ มั่วจนแก้ได้แล้วครับ

ผมไปแก้ config.php

จาก

// PHP memory limit (ideally should be more than 128MB+)
// define('OSC_MEMORY_LIMIT', '64');


เป็น

// PHP memory limit (ideally should be more than 128MB+)
define('OSC_MEMORY_LIMIT', '256M');


ขอทิ้งกระทู้นี้ไว้ในบอร์ดเผื้อว่าใครเจอปัญหานี้นะครับ

อัพเดทล่าสุด เมื่อวานนี้ 31/12/2022 เป็นอีกแล้วครับ
ใช้วิธีแก้ปัญหาแบบเดิมไม่ได้ ขอเปิดกระทู้อีกครั้ง เผื่อมีท่านใดช่วยแก้ไข แนะนำได้ครับ  :wanwan017:

aoarmy

วันนี้แก้ไขโดย
1. เข้า Direct Admin ไป backup database
2. สร้าง Database ใหม่ user ใหม่ รหัสใหม่
3. restore database เก่า ไปที่ Database ใหม่ แต่ไม่ผ่าน
4.เปิด phpmyAdmin แล้ว restore database เก่า ไปที่ Database ใหม่ คราวนี้ผ่าน
5.ไปที่ไฟล์ config.php แก้ให้ชี้ไปที่ Database ใหม่

ลองโพสต์ดูที่หน้าเว็บ ผ่าน กลับมาใช้ได้ปกติอีกครั้งแล้วครับ

mikeyx


aoarmy

อ้างถึงจาก: mikeyx ใน 01 มกราคม 2023, 12:47:32
ลองใช้ php ต่ำกว่า 7.4 ดูครับ

ขอบคุณมากครับ ถ้ามีปัญหาอีก จะลองปรับในจุดนี้ครับ  :wanwan017: