News:

Exness ลงทะเบียนระบบใหม่ ใส่รหัสพาร์ทเนอร์ 73208
https://www.exness.com/boarding/sign-up/a/73208?lng=th
1. เลือกประเทศ ไทย
2. อีเมล์จริงของคุณ
3. รหัสผ่าน
* รหัสผ่านต้องมีความยาว 8-15 ตัว
* ใช้ทั้งอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
* ใช้ทั้งตัวเลขและตัวอักษรภาษาอังกฤษ
* ห้ามใช้อักขระพิเศษ (!@#$%^&*., และอื่นๆ)
4. ใส่รหัสพาร์ทเนอร์ 73208
---------------------------------------------------------

Main Menu

smf ขึ้น error ว่า Call to undefined function idna_maps_not_std3() แก้ไขอย่างไร

Started by junjao, November 03, 2025, 10:04:48 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

junjao

ข้อผิดพลาด

```
Call to undefined function idna_maps_not_std3()
```

ใน **SMF (Simple Machines Forum)** มักเกิดจากปัญหา **เวอร์ชันของ PHP ที่ไม่รองรับฟังก์ชัน IDN ที่ SMF ใช้** หรือจาก **ไฟล์ IDNA / Subs-Charset.php / Subs.php** ที่เสียหายหรือไม่สมบูรณ์

---

## 🔍 สาเหตุที่พบบ่อย

1. **SMF รุ่นเก่า (เช่น 2.0.x)** ไม่เข้ากับ PHP 8.x
   → ฟังก์ชัน `idna_maps_not_std3()` อยู่ในไฟล์ `Subs-Charset.php` ซึ่ง SMF รุ่นเก่าบางตัวไม่มีหรือถูกเปลี่ยนชื่อ

2. **ไฟล์ของระบบ SMF หาย / ไม่ครบ**
   → โดยเฉพาะไฟล์ในโฟลเดอร์ `/Sources/` ที่มีฟังก์ชันเกี่ยวกับ IDNA

3. **อัปเกรด PHP แล้วไม่ได้อัปเดต SMF**
   → เช่น จาก PHP 7.4 → PHP 8.2 จะทำให้บางฟังก์ชันเก่าหายไป

---

## 🧩 วิธีตรวจสอบเบื้องต้น

1. เปิดไฟล์

   ```
   Sources/Subs-Charset.php
   ```

   แล้วค้นหาคำว่า

   ```
   function idna_maps_not_std3(
   ```

   ถ้าไม่มี แปลว่า SMF รุ่นนี้ไม่รองรับฟังก์ชันนี้

2. ตรวจสอบเวอร์ชัน PHP

   ```bash
   php -v
   ```

   ถ้าเป็น PHP 8.1+ และ SMF เป็นรุ่น 2.0.x → ต้องอัปเดต

---

## ✅ วิธีแก้ไข

### วิธีที่ 1: อัปเกรด SMF

อัปเกรดเป็น **SMF 2.1.x** (เช่น 2.1.4 หรือใหม่กว่า)
เพราะรุ่นนี้รองรับ PHP 8.x และแก้ปัญหานี้แล้ว

ลิงก์ดาวน์โหลดจากเว็บทางการ:
👉 [https://www.simplemachines.org/download/](https://www.simplemachines.org/download/)

> ก่อนอัปเกรด ให้สำรองไฟล์และฐานข้อมูลทั้งหมดก่อนทุกครั้ง

---

### วิธีที่ 2: แก้ไฟล์ชั่วคราว (ถ้ายังไม่อัปเกรดได้)

> ⚠️ วิธีนี้เป็น "วิธีแก้ชั่วคราว" สำหรับผู้ที่ต้องการให้เว็บกลับมาใช้งานได้ก่อน

เปิดไฟล์ `Sources/Idna.php` หรือ `Subs-Charset.php` แล้วเพิ่มฟังก์ชันเปล่าไว้ก่อน

```php
if (!function_exists('idna_maps_not_std3')) {
    function idna_maps_not_std3($codepoint) {
        // ฟังก์ชันนี้ใช้ในกระบวนการแปลงโดเมน IDN
        // หากไม่ใช้โดเมนต่างประเทศ ปล่อยว่างไว้ได้
        return false;
    }
}
```

บันทึกแล้วรีเฟรชหน้าเว็บใหม่

---

### วิธีที่ 3: กลับไปใช้ PHP รุ่นเก่าชั่วคราว

หากเว็บโฮสต์อนุญาต ให้ตั้ง PHP เป็น **7.4** หรือ **7.3**
(ใช้ได้ดีกับ SMF 2.0.x เดิม)

ตัวอย่างบน Plesk:

* ไปที่ **Websites & Domains → PHP Settings**
* เปลี่ยน **PHP version** → 7.4
* บันทึกและรีโหลดหน้าเว็บ

---

## 🧠 สรุป

| ปัญหา                                             | สาเหตุ                  | วิธีแก้แนะนำ                          |
| ------------------------------------------------- | ----------------------- | ------------------------------------- |
| `Call to undefined function idna_maps_not_std3()` | SMF รุ่นเก่า + PHP ใหม่ | ✅ อัปเกรด SMF เป็น 2.1.x              |
|                                                   | ไฟล์ระบบหาย             | ✅ อัปโหลดไฟล์ `Subs-Charset.php` ใหม่ |
|                                                   | ต้องการแก้เฉพาะหน้า     | ⚙️ เพิ่มฟังก์ชันเปล่าชั่วคราวในไฟล์   |

----------------------------
MT4 MT5 EA Indicator EURUSD USDJPY XAUUSD Gold Bitcoin Oil
สอบถาม 081-446-5311 , line : junjaocom , Email : jun_jao2000@hotmail.com
สมัคร Exness ได้ที่ https://www.exness.com/a/73208
หน้าลงทะเบียน Exness ได้ที่ https://www.exness.com/boarding/sign-up/a/73208?lng=th
ขั้นตอนสมัคร exness https://www.junjao.com/board/index.php?topic=279

junjao

MT4 MT5 EA Indicator EURUSD USDJPY XAUUSD Gold Bitcoin Oil
สอบถาม 081-446-5311 , line : junjaocom , Email : jun_jao2000@hotmail.com
สมัคร Exness ได้ที่ https://www.exness.com/a/73208
หน้าลงทะเบียน Exness ได้ที่ https://www.exness.com/boarding/sign-up/a/73208?lng=th
ขั้นตอนสมัคร exness https://www.junjao.com/board/index.php?topic=279