วิธีนับ User Online อย่างง่าย by

30
Nov
1

ปกติการนับ User Online มักจะทำด้วยการ insert ลง database และนับเวลาเอา แต่ว่าวันนี้ผมมีวิธีนับ User Online อย่างง่ายมาให้ครับ โดยจะใช้การนับจาก Session ที่สร้างขึ้นจาก session_start(); แทน โดยในหลักการแล้วข้อมูล session ก็คือการสร้างไฟล์ text ไฟล์หนึ่งเก็บเอาไว้ใน server และผู้ใช้แต่ละคนจะมี session id ของตัวเองมาเพื่อร้องขอข้อมูลตรงนี้ไปใช้งาน ซึ่งการเก็บข้อมูลลงไฟล์จะเป็นในลักษณะ 1 คนต่อ 1 ไฟล์อยู่แล้ว หลักการเราก็เพียงแค่นับจำนวนไฟล์ในขณะนั้นทั้งหมดก็พอ หากผู้ใช้คนใดเลิกใช้งานไปสักระยะหนึ่งไฟล์จะถูกลบไปเอง จึงสามารถนำมาคำนวณ User Online ได้อย่างที่ต้องการ
พอดี code ที่ใช้งานมีดังนี้

<?php
/* Start the session */
session_start(); 

/* Define how long the maximum amount of time the session can be inactive. */
define("MAX_IDLE_TIME", 3); 

function getOnlineUsers(){ 

	if ( $directory_handle = opendir( session_save_path() ) ) {
		$count = 0;
		while ( false !== ( $file = readdir( $directory_handle ) ) ) {
			if($file != '.' && $file != '..'){
				// Comment the 'if(...){' and '}' lines if you get a significant amount of traffic
				//if(time()- fileatime(session_save_path() . '\\' . $file) < MAX_IDLE_TIME * 60) {
					$count++;
				//}
			} 

		}
		closedir($directory_handle); 

		return $count;
	} else {
		return false;
	}
} 

echo 'Number of online users: ' . getOnlineUsers() . "\n";
?>

MAX_IDLE_TIME คือเวลาหน่วยเป็นนาทีว่าจะนับเฉพาะ session ที่ถูกสร้างมาภายในกี่นาที หากต้องการเวลาที่แม่นยำให้ระบุตรงนี้และเอา comment //if(time()- fileatime(session_save_path() . ‘\\’ . $file) < MAX_IDLE_TIME * 60) ออกด้วย

หากคุณเช่า hosting อยู่และไม่ได้เช่าเครื่องเฉพาะเป็นของตัวเองโดดๆ จะต้องระบุ

session_save_path(“/path/to/custom/directory”);

เพิ่มเข้าไปด้วย เป็นการระบุ path ที่จะเก็บไฟล์ session เอง เพื่อจะให้ไม่ปนกับเว็บไซต์อื่นที่ Host อยู่เครื่องเดียวกับเรา

เพียงเท่านี้คุณฃก็จะได้วิธีนับ User Online มาโดยไม่ต้องเขียนระบบด้วย database วุ่นวายครับ แถม performance ยังดีกว่าการใช้ database อีกด้วย แต่วิธีนี้ก็มีข้อเสียอยู่เหมือนกันคือหากต้องการนับเฉพาะหน้าหรือต้องการรายละเอียดปลีกย่อยกว่านี้เช่นนับเฉพาะคนใช้ IE จะไม่สามารถทำได้ ต้องใช้ database เขียน code เอาเองครับ

เพิ่ม Return ให้เกม#1 : Daily Bonus by

27
Nov
0
ในการทำเกมแน่นอนครับ เราก็ต้องการที่จะให้ผู้เล่นพอเข้ามาเล่นเกมของเราแล้ว กลับมาเล่นอีกเรื่อยๆ
นอกจากความสนุก ความน่าสนใจของเกมแล้ว ก็ยังมีกลเม็ดในการดึงให้ผู้เล่นกลับมาเล่นอีกหลายรูปแบบ
วันนี้ก็จะขอพูดถึง กลเม็ดแรกกันเลยนะครับ
Daily Bonus คือ การที่ให้ผลประโยชน์พิเศษภายในเกมกับผู้เล่นในแต่ละวัน
โดยที่อาจจะให้ตรงๆหรือผ่านทางมินิเกมที่ต้องดวงในการเล่นเช่น Slotmachine หรือ หมุนวงล้อก็ได้
จุดประสงค์ เพื่อให้ผู้เล่นต้องกลับมาเล่นทุกๆวัน ไม่งั้นจะเสียโอกาสในการได้ผลประโยชน์
ซึ่งวิธีนี้เกมดังๆหลายเกมก็ใช้กันครับ ตัวอย่าง เช่น
เกม Bejeweled Blitz ใช้การเล่นเกี่ยวกับดวง
เกม Farm Ville
เกม Pet Society
เกม Pirate A Hoy!
แน่นอนครับเกมของผมเองก็ต้องใช้ Daily Bonus เหมือนกัน
เกม Planet that have many creatures
เกม Petswar – Asura Farm
 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน