Archive for ‘ PHP

PHP 5 กับปัญหาการแสดงเวลา 26 September 2008 at 12:46 am by tumaji

����������� ผมเขียน PHP มาหลายปีพึ่งมามีปัญหากับ function date ที่แสดงเวลาไม่ตรงเพราะพึ่งจะหันมาเขียนบน PHP5 (ลง Appserv ตัวใหม่ ) หลังจากที่กำลังเขียนโปรแกรมเกี่ยวกับเวลาสังเกตว่าเวลามันเร็วไป 1 ชม.

����������� เอาหล่ะสิเขียน PHP มาตั้งนานพึ่งจะเจอปัญหาก็เพราะว่าใน PHP 5 มีการ config เกี่ยวกับ timezone เอาไว้ ลองดูที่ php.ini จะพบ


[Date]; Defines the default timezone used by the date functions
;date.timezone =

�ตามตัวอย่างถ้าไม่ได้แก้อะไรเวลาจะบวกไปอีก 1 ชม. แล้วถ้าต้องการแก้ให้ถูกต้องหล่ะไม่ยากครับ


[Date]; Defines the default timezone used by the date functions
date.timezone = "Asia/Bangkok"

�แก้ตามนี้แล้ว restart webserver ใหม่ก็ใช้งานได้แล้ว ทดสอบตาม code นี้

< ?
echo date('l jS \of F Y h:i:s A');
?>

�ผลที่ได้ประมาณนี้
Friday 26th of September 2008 12:32:25 AM

�ส่วนสำหรับใครที่ไม่สามารถแก้ php.ini โดยเฉพาะที่เช่า host เค้าอยู่ก็ลองใช้�


< ?
//�set�the�default�timezone�to�use.�Available�since�PHP�5.1

date_default_timezone_set('Asia/Bangkok');

echo date('l jS \of F Y h:i:s A');
?>

เท่านี้ก็จะสามารถใช้ Function ที่เกี่ยวกับเวลาได้อย่างไม่มีปัญหาแล้วครับ

ปล. date_default_timezone_set มีใน PHP 5.1 [1] ขึ้นไปครับ

�อ้างอิง

[1] http://th2.php.net/manual/en/function.date-default-timezone-set.php

+ Google Chrome กับ Rich Text Editor มันมีปัญหา ! By tumaji 12 September 2008 at 2:10 am and have No Comments

agent����������� หลังจากเป็นที่ฮือหากับการเปิดตัวของ browser เจ้าใหม่แต่ชื่อไม่ใหม่อย่าง Google Chrome ของค่ายยักษ์ใหญ่อย่าง Google ที่ทำอะไรก็รุ่งไปหมด ทำให้ตลาดของ browser ตื่นตัวขึ้นอีกครั้งซึ่งเรื่องนั้นเราไม่พูดถึงเราจะมาพูดถึงเรื่องที่เราถนัดดีกว่านั้นก็คือเรื่องของการเขียนโปรแกรม

����������� การเปิดตัวของ Google Chrome ทำให้วงการ Software ต้องมีการปรับปรุงไม่มากก็น้อยซึ่งที่เห็นได้ชัดก็คือการปรับให้ Software สามารถรันบน Google Chrome ได้ ซึ่งปัญหาที่เห็นได้ชัดที่สุดก็คือบรรดา Rich Text Editor ทั้งหลายต่างเอ๋อไปตามๆกันเมื่อรันผ่าน Google Chrome เพราะไม่รู้จักว่ามันเป็นใครก็ที่ไม่รู้จักก็เพราะว่าตัว USER_AGENT ของ Google Chrome ทะลึ่งมีหน้าตาแปลกๆ�

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13

 

�แล้วอย่างนี้ที่เขียนกันเอาไว้ก็ไม่รู้ว่าจะเข้าเงื่อนไขไหนเพราะมันมีทั้ง Mozilla , Gecko , Chrome , Safari งงเลย

����������� ล่าสุดในวันที่ผมนั่งเขียน (12 กย. 51) Rich Text Editor เจ้าใหญ่ๆพากันปรับให้สามารถใช้งานบน Google Chrome แล้วอย่าง Spaw, TinyMCE ( Open Source หลายตัวใช้อยู่เช่น Moodle, Wordpress) จริงๆแล้ว Rich Text Editor เหล่านี้จะใช้ JavaScript ในการ detect browser ซึ่งถ้าอธิบายก็คงต้องไปนั่งไล่ JavaScript อีกยาว เอาเป็นว่าเอาตัวอย่างที่เป็น PHP ไปลองเล่นกันก็แล้วกัน

function userAgent($minor=false){
	$agents = array('MSIE'=>'/MSIE ([0-9]\.[0-9])/', 'Firefox'=>'/Firefox\/([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/', 'Opera'=>'/Opera\/([0-9]*\.[0-9])/','Safari'=>'/Version\/([0-9]*\.[0-9]*\.?[0-9]*)/','Chrome'=>'/Chrome\/([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/');
	foreach($agents as $agent=>$pattern){
		preg_match($pattern,$_SERVER['HTTP_USER_AGENT'],$match);
		if(isset($match[1])){
			if($minor){
				return $agent.' '.$match[1];
			}
			else
			{
				return $agent.' '.floor($match[1]);
			}
		}
	}
	return 'Unknown browser';
}
echo userAgent(true) ;

ทดสอบ: demo

chrome

+ Unable to find socket transport ssl while using PHPMailer By tumaji 07 August 2008 at 1:46 pm and have 5 Comments

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?) in C:\phpmailer\class.smtp.php on line 124
Mailer Error: SMTP Error: Could not connect to SMTP host.

หากเจอปัญหาแบบนี้วิธีแก้ก็ไปที่ php.ini
แก้ ;extension=php_openssl.dll
เป็น extension=php_openssl.dll
จากนั้น restart webserver ก็ใช้งานได้แล้ว