PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

กำหนด domain และการใช้งานใน sub domain ของตัวแปร cookie ด้วย php ตอนที่ 4

26 September 2013 By


 การกำหนด domain เมื่อมีการสร้างตัวแปร cookie ตัวอย่าง

 
ตัวอย่างที่ 1 กรณีกำหนด domain เป็น "www.ninenik.com"
 
<?php
if(!isset($_COOKIE["cookie1"])){ // เช็คว่ามีตัวแปรนี้อยู่ก่อนแล้วหรือไม่
	setcookie("cookie1", "ทดสอบ",time()+3600,"/","www.ninenik.com");  // กำหนดตัวแปร		
}
?>
 
 
ค่าตัวแปร cookie ในตัวอย่างที่ 1 สามารถเรียกใช้งาน ผ่าน domain ที่เป็น www.ninenik.com เท่านั้น แต่จะไม่สามารถเรียกใช้งานผ่าน ninenik.com ได้
คือ
www.ninenik.com/test_cookie.php 
เรียกใช้งานตัวแปร cookie ตามตัวอย่างที่ 1 ได้
 
ninenik.com/test_cookie.php 
เรียกใช้งานตัวแปร cookie ตามตัวอย่างที่ 1 ไม่ได้
 
แก้ปัญหา โดยใช้งานตามตัวอย่างที่ 2
 
ตัวอย่างที่ 2 กรณีกำหนด domain เป็น ".ninenik.com"
 
<?php
if(!isset($_COOKIE["cookie1"])){ // เช็คว่ามีตัวแปรนี้อยู่ก่อนแล้วหรือไม่
	setcookie("cookie1", "ทดสอบ",time()+3600,"/",".ninenik.com");  // กำหนดตัวแปร		
}
?>
 
ค่าตัวแปร cookie ในตัวอย่างที่ 2 จะสามารถเรียกใช้งานได้ทั้ง ผ่าน domain ที่เป็น www.ninenik.com และ ninenik.com ได้
 
หรือ กรณีต้องการให้เว็บไซต์ ลิ้งค์ไปที่หน้า ที่มี www นำหน้าทุกครั้งที่ไม่ได้มีการพิมพ์
เช่น พิมพ์แค่ ninenik.com เว็บก็จะลิ้งค์ไปที่หน้า www.ninenik.com
หรือ เมื่อเปิดไปหน้า
ninenik.com/test_cookie.php
ก็จะลิ้งค์ไปที่หน้า 
www.ninenik.com/test_cookie.php
 
โดยการเพิ่มคำสั่งในไฟล์ .htaccess ดังนี้
 
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
 
 
โดยทำสั่งจากด้านบน จะทำให้มีการเติม www ให้ทุกครั้งหากไม่มีการพิมพ์ www นำหน้า
 
 
สำหรับการใช้งาน cookie ผ่าน sub domain นั้น เราสามารถเพิ่ม 
คำสั่งต่อไปนี้ ลงในไฟล์ .htaccess เพื่อให้ cookie สามารถส่งค่า และเรียกใช้งานได้ใน
sub domain  
 
php_value session.cookie_domain ".ninenik.com"
 
ด้วยคำสั่งนี้ที่เพิ่มเข้าไปในไฟล์ .htaccess จะทำให้ sub domain เช่น
demo.ninenik.com หรือ  board.ninenik.com 
สามารถเรียกใช้งาน ตัวแปร cookie จาก โดนเมนหลักได้
 
นอกจากการกำหนด โดยใช้ไฟล์ .htaccess แล้ว เราสามารถกำหนดผ่านไฟล์ php
เพื่อใช้งาน cookie ผ่าน sub domain ได้อีกวิธี โดยต้องเขียนไว้ด้านบนสุดของไฟล์ เช่นเดียว
กับการกำหนด ตัวแปร cookie
 
ตัวอย่าง
 
<?php
ini_set('session.cookie_domain', '.ninenik.com') // ไว้ด้านบนสุดของไฟล์
?>
 

Tags:: php sub domain cookie domain





URL สำหรับอ้างอิง