ค่าตัวแปร เหมือนแต่ไม่เท่ากัน


    

        $x = ซีรั่ม (จาก form)



    

        $z = ซีรั่ม (จาก Database)



    

        พอเช็คค่าดู มันบอกว่า $z เป็น string ขนาด5ตัว แต่ $x เป็น string ขนาด23ตัว

        ใน database ตั้งเป็น varchar ขนาด60ตัวอักษร ผิดพลาดตรงไหนหรอครับ อยากให้มัน เช็คค่าซ้ำครับ


27 ธ.ค. 2554 6 970

$z น่าจะถูก มี 5 ตัวอักษร ที่ผิดคงเป็น $x



ปัญหาคือ อ่าน $sx มาได้ยังไงมาจากการ submit หรือเปล่า



ดูจากคำอธิบายที่ให้มา เป็นไปได้หลายทางเช่น



1. ไฟลืและ database เป็นคนละอักขระกัน ควรตรวจสอบให้ทั้งสองส่วนเป็นชนิดเียวกันคือ Ansi(TIS-620) หรือ UTF-8

2. ข้อความที่ได้จาก $x อาจเข้ารหัสอยู่ ถ้ามาจากการ submit ลองใช้ rawurldecode() ดู
#1

$x submit มาครับ แล้ว rawurldecode() คืออะไรหรอครับ แล้วใช้ยังไงอ่าครับ
#2

$x = rawurldecode($x);
#3

เหมือนเดิมครับ ยังเป็น string 23ตัวอักษรเหมือนเดิม ขอความรู้หน่อยได้มั้ยครับ ทำเว็บมาตั้งนานก็ไม่เคยเจอปัญหาแบบนี้ form ก็สร้างแบบธรรมดาเหมือนกันทุก page แต่ทำไมอันนี้จึงเกิดปัญหาครับ ไม่เคยเจอมาก่อนเลยแบบนี้
#4

อ้างอิงจาก ความคิดเห็น #4เหมือนเดิมครับ ยังเป็น string 23ตัวอักษรเหมือนเดิม ขอความรู้หน่อยได้มั้ยครับ ทำเว็บมาตั้งนานก็ไม่เคยเจอปัญหาแบบนี้ form ก็สร้างแบบธรรมดาเหมือนกันทุก page แต่ทำไมอันนี้จึงเกิดปัญหาครับ ไม่เคยเจอมาก่อนเลยแบบนี้


555+++ บางครั้งปัญหาแบบนี้ก็หญ้าปากคอกครับ



ถ้าข้อความไม่ได้เข้ารหัส ปัญหาอาจอยู่ที่ภาษาครับ



ตรวจสอบว่าทุกอย่างเป็นภาษาเดียวกันทั้งหมด ไฟล์,header,database,field



ลอง echo เอา query ที่ใช้ออกมาดู



ลองแสดงผลลัพท์การ query (ข้อมูลดิบ)



ลองเปลี่ยนเป็นภาษาอังกฤษ



ลองใช้วิธีเปรียบเทียบใน query
#5

ขอบคุณครับ
#6
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^