|
มีลูกค้า hostingหลายรายของแน๊กซ่าที่ใช้งาน script ที่มีการใช้งาน session ซึ่งจะว่าไปแล้ว ตัว session เองปกติแล้วจะเปิดใช้งาน แต่จะตั้งเปิดอัตโนมัติหรือไม่นั้นขึ้นอยู่กับแต่ละผู้ให้บริการ hosting ครับ สำหรับของทาง naxza.com นั้นเราทำการปิด session ไว้ เมื่อลูกค้าต้องการใช้งานก็จะต้องทำการสั่งให้มีการเปิดใช้งานก่อนครับ ด้วยคำสั่ง
session_start();
โดยที่คำสั่งระดับ session นี้จะเป็นคำสั่งที่อยู่เหนือ header ของเอกสาร ดังนั้นคำสั่งนี้จะต้องอยู่ก่อนการ include ใด ๆ ทั้งสิ้นครับ แม้กระทั่ง <HTML> ตัวคำสั่ง session ก็ต้องอยู่เหนือกว่าครับ หากไม่เช่นนั้นแล้ว จะเกิด error
Warning: Cannot modify header information - headers already sent by
ก็เนื่องมาจากว่ามี header อยู่ก่อนหน้าแล้ว ห้ามทำการแก้ไขครับ ตรงนี้แหละ ที่ลูกค้า hosting หลายคนมักไม่เข้าใจ เพราะว่าปกติ run ที่ระบบ localhost ได้ ต้องขอเรียนตามตรงว่าระบบความปลอดภัยในระดับ localhost ที่ทางท่านลูกค้าทดสอบระบบกับ server จริง ๆ นั้นแตกต่างกันมากครับ หลายคนนำไฟล์ที่มีคำสั่ง session_start ไป include ลงไฟล์อื่นอีกที ทำให้มักเกิด error นี้กันบ่อย ๆ
สำหรับ error ต่อมาที่ลูกค้าผู้ใช้บริการ hosting มักจะพบเจอก็คือ
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
ซึ่งวิธีการแก้ไขก็เพียงแค่ เพิ่มเติม .htaccess เพื่อให้ทำการปิดการทำงานของ session debug ออก โดยสร้างไฟล์ .htaccess ลงใน home directory ของ hosting และใส่ข้อความต่อไปนี้ครับ
php_flag session.bug_compat_warn off
จากนั้นโปรแกรมที่ใช้งานบน hosting นั้นก็จะมองข้ามผ่าน error เกี่ยวกับ session ไปครับ
Webdesign Article : |