หน้า: 1 2 [3]
 
ผู้เขียน หัวข้อ: flash กับ database ในการทำการสั่งซื้อสินค้า  (อ่าน 31040 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
อ่า... คือ serialize ที่บอกมันไม่ได้มีปัญหาเรื่องการแสดงผลภาษาหน่ะครับ คือแสดงได้ถูกต้องเพราะเป็น UTF8
แต่คำสั่ง serialize ของ PHP มันจะเป็นการสร้างรูปแบบตัวแปรต่างๆ ให้อยู่ในรูป String แล้วส่งให้ Flash ซึ่งพอเป็นภาษาไทยมันมีการ count ผิดหน่ะครับ อันนี้คือพูดถึงอีกตัวนะครับ ไม่ใช่พูดถึงตัว amfphp ตัวนั้นครับ

จากที่อ่านผมเข้าใจว่าให้ php serialize ออกมาแล้ว แล้วมันใช้ภาษาไทยไม่ได้ใช่มั้ยครับ

ถ้าผมเข้าใจถูกก็คือต้อง check web server ครับว่าใส่ header ออกมาเป็นอะไร
๊และอีกอย่าง UTF8 ภาษาไทย 3 byte นะครับ (maximun ของ UTF8 อยู่ที่่ 4 byte) ถ้าคิดแค่ 2 byte ไป convert เองใน flash จะผิดได้

ตัว amfphp นั้นติดไว้ก่อนครับ เครื่องผมมีแต่ flash cs3 ซึ่ง adobe เอา flash remoting ออกไปแล้ว
จริงๆ เหมือนว่าจะเอา class lib จาก flash 8 มาใส่ได้ แต่เครื่องผมก็ไม่มี flash 8 แล้วเช่นกัน เลยยังไม่ได้ทำครับ
ถ้าใครมีก็ขอไฟล์หน่อยนะครับ  ไหว้

class amfphp ที่เป็น flash remoting download จากที่นี่เลยครับ http://www.adobe.com/products/flashremoting/downloads/components/
« แก้ไขครั้งสุดท้าย: 30 ก.ย. 2007, 19:58 น. โดย WuTtY » บันทึกการเข้า
เหมือนกับว่าผมจะทำอะไรสักอย่างพัง  (เหงื่อแตกพลั่ก)
บันทึกการเข้า

50 levels avaliable, 22 secrets levels avaliable :P
จากที่อ่านผมเข้าใจว่าให้ php serialize ออกมาแล้ว แล้วมันใช้ภาษาไทยไม่ได้ใช่มั้ยครับ

ถ้าผมเข้าใจถูกก็คือต้อง check web server ครับว่าใส่ header ออกมาเป็นอะไร
๊และอีกอย่าง UTF8 ภาษาไทย 3 byte นะครับ (maximun ของ UTF8 อยู่ที่่ 4 byte) ถ้าคิดแค่ 2 byte ไป convert เองใน flash จะผิดได้

class amfphp ที่เป็น flash remoting download จากที่นี่เลยครับ http://www.adobe.com/products/flashremoting/downloads/components/

อ้า... ไม่ใช่ครับ แสดงผลเป็นภาษาไทยครับ แต่ serialize ใน php มันจะ return ค่าของตัวแปรแต่ละตัวมาพร้อมกับจำนวน string กำกับไว้ด้วย ที่เคยลองคร่าวๆ พอใช้ภาษาไทย (ซึ่งเป็น UTF-8 แน่นอนครับ เพราะใช้กับวิธีอื่นก็ไม่มีปัญหา) มันจะนับมามากกว่าตัวอักษรไทย ทำให้พอ flash ไป unserialize มันเลยเลยเถิดไปถึงตัวแปรตัวถัดๆ ไปด้วยครับ ตัวที่นับผิดนี่ผมดูแล้วมันผิดตั้งแต่ php จากคำสั่ง serialize ตรงๆ ยังไม่ได้เข้า flash ครับ...ถ้ามีวิธีแก้แนะนำด้วยนะครับ

ตัว remoting ที่บน adobe นั้นผมลองโหลดแล้วเหมือนกันครับ เหมือนมันลงกับ cs3 ไม่ได้หรือเปล่าครับ
พอกด install มันก็เหมือนว่าพยายามหา หาไม่เจอก็เลยให้ finish ... ลอง search ในเน็ทดูแล้วเหมือนกัน มีคนที่ใช้ cs3 มีปัญหานี้กันเยอะ มีคนทำเป็น zip ให้ แต่เหมือน link มันตายไปแล้ว
บันทึกการเข้า
อ้า... ไม่ใช่ครับ แสดงผลเป็นภาษาไทยครับ แต่ serialize ใน php มันจะ return ค่าของตัวแปรแต่ละตัวมาพร้อมกับจำนวน string กำกับไว้ด้วย ที่เคยลองคร่าวๆ พอใช้ภาษาไทย (ซึ่งเป็น UTF-8 แน่นอนครับ เพราะใช้กับวิธีอื่นก็ไม่มีปัญหา) มันจะนับมามากกว่าตัวอักษรไทย ทำให้พอ flash ไป unserialize มันเลยเลยเถิดไปถึงตัวแปรตัวถัดๆ ไปด้วยครับ ตัวที่นับผิดนี่ผมดูแล้วมันผิดตั้งแต่ php จากคำสั่ง serialize ตรงๆ ยังไม่ได้เข้า flash ครับ...ถ้ามีวิธีแก้แนะนำด้วยนะครับ

ปัญหานี้ผมเคยเจอคล้าย ๆ กันนะครับ แต่ไม่ได้เจอกับ function serialize ปัญหาที่ผมเจอเกิดจากการ UTF8 ของ ภาษาไทย 1 character มัน 3 Byte ครับ อย่างที่บอกไปก่อนหน้านี้ แล้วเวลาส่งไปให้ โปรแกรมอื่นแปลงกลับมันจะนับ byte ผิดครับทำให้แปลงผิด

วิธี check ลองใช้พวก tools ที่มันอ่าน hex ได้แล้วลองเปิดตาราง unicode เทียบดูครับ ถ้ามี linux ใช้ ord ลองก็ได้

พอจะมีตัวอย่างที่ serialize ออกมามั้ยครับจะได้ลองดูหน่อยว่ามันเป็นยังงัย

ส่วน package ผม เคย install ไว้ในเครื่องอีกเครื่องครับ เดี๋ยวจะกลับบ้านไปหาก่อนนะครับ ไม่แน่ใจว่าตัว package ที่เป็น zip ยังมีอยู่หรือเปล่า จำได้ว่าคราวที่แล้วผมลง manual เหมือนกัน ต้อง copy แล้วไปแตกใส่ library ของ as2 เอาเอง
บันทึกการเข้า
ใช่ครับ สำหรับ cs3 ต้องลง manual เอาเอง เห็นใน net บาง forum เค้าจะมีคน zip ให้ แล้วก็บอกว่าใส่ไฟล์ไหนไว้ folder ไหน แต่ผมเข้าไปโหลด link พวกนั้นมันตายไปหมดแล้ว

ใช่ครับปัญหา byte ต่างกันนั่นแหล่ะครับ ซึ่งผมสังเกตว่าตัวอักษรไทยแต่ละตัวให้ byte นับออกมาไม่เท่ากันด้วย
ลองง่ายๆ ครับใช้ serialize($array) ใน php ไม่ต้องลงอะไรเพิ่มเลย แล้วก็ print มันออกมา จะเห็นว่าส่ง byte count แต่ละ ตัวแปร หรือแต่ละ member ของ array ไว้ด้วย
บันทึกการเข้า
ใช่ครับ สำหรับ cs3 ต้องลง manual เอาเอง เห็นใน net บาง forum เค้าจะมีคน zip ให้ แล้วก็บอกว่าใส่ไฟล์ไหนไว้ folder ไหน แต่ผมเข้าไปโหลด link พวกนั้นมันตายไปหมดแล้ว

ใช่ครับปัญหา byte ต่างกันนั่นแหล่ะครับ ซึ่งผมสังเกตว่าตัวอักษรไทยแต่ละตัวให้ byte นับออกมาไม่เท่ากันด้วย
ลองง่ายๆ ครับใช้ serialize($array) ใน php ไม่ต้องลงอะไรเพิ่มเลย แล้วก็ print มันออกมา จะเห็นว่าส่ง byte count แต่ละ ตัวแปร หรือแต่ละ member ของ array ไว้ด้วย

ถ้าภาษาไทยเลยนะครับ codepage อยู่ใน range ของภาษาไทยทั้งหมด จะเป็น 3 byte ครับ เช่น
ตัวอักษร "ก" ถ้าเป็น unicode ก็คือ "0x0E01" แต่เวลาใช้จริง ๆ มันต้องถูกแปลงให้เป็น 3 byte โดยมันก็จะมีวิธีตัดของมัน เช่น เอา 6 bit แรกไปป่ะ "00" 6 bit ถัดมาไปแป๊ะ "01" อะไรทำนอง ยำกันจนได้ออกมาเป็น 3 byte ครับ

เท่าที่รู้ ภาษาอังกฤษ เป็น 1 byte ภาษาญี่ปุ่นเป็น 3 byte เหมือนภาษาไทย

ดังนั้นส่ิ่งที่มันส่งผลคือ database ที่เราสร้างไว้ เช่นเป็น Varchar 1000 มันจะเก็บตัวอักษรได้ไม่ถึง 1000 ตัวขึ้นกับ ภาษาที่เราเก็บว่าเป็นภาษาอะไรด้วย
บันทึกการเข้า
 ไม่ล่ะ  ตามอ่านไม่ทันเลย  ฮือๆ~
บันทึกการเข้า

ล้ำลึกคนึงหาในดวงจิต ใจเคยคิดตัดสวาทมิอาจสิ้น
ดั่งก้านบัวหักกลางชลาสินธุ์ ผิว่าสิ้นไร้เยื่อยังเหลือใย
ไม่เป็นไรเดี่ยวให้ทุกคนพิมพ์ซ้ำอีกรอบ
บันทึกการเข้า

lib ของ flash remoting นะครับ
คิดว่าเป็นอันนี้
ลองเอาไปลงดูก่อนนะครับ
บันทึกการเข้า
http://www.google.co.th/search?q=flash++database
---------
ถ้า database ไม่ใหญ่และเป็นเด็กรุ่นใหม่(สงสัยไม่รวมผม)
แนะนำ AIR + SQLite
http://danny-t.co.uk/index.php/2007/06/23/what-is-an-air-database/
http://www.adobe.com/devnet/air/flash/articles/insult_dueler_04.html
http://blog.everythingflex.com/2007/06/11/air-embedded-database-sample-application/
http://blog.everythingflex.com/2007/06/12/air-embedded-database-code-exerpts-1/
บันทึกการเข้า

http://www.ThaiBuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย
หน้า: 1 2 [3]
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!