| 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | มันน่าจะ Error น่ะครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 21:46:21 | By :
                            webmaster |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | error โค้ดผม หรือว่ายังไงครับคุณ win 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 21:49:04 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เอาโคดมาดู 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 21:52:58 | By :
                            panyapol |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ใส่ path หรือว่า domain ไปหรือเปล่า 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 22:05:14 | By :
                            plakrim |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ผมลองรันใน firefox ปรากฎว่าได้ครับ แต่ ie ไม่ได้อะครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 22:17:41 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | โพสโค้ดมาให้ดูหน่อยครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 22:40:35 | By :
                            NanoTHoro |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | Code (PHP) 
 <?php
session_start();
ob_start();
session_register("s_ad_user");
//session_register("s_ipaddress");
if (getenv("HTTP_X_FORWARDED_FOR"))
{
$ipaddress=getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP"))
{
$ipaddress=getenv("HTTP_CLIENT_IP");
}
else
{
$ipaddress=getenv("REMOTE_ADDR");
}
if (isset($_COOKIE["ipaddress"])) {
$sql2 = "DELETE FROM tb_ip_login  WHERE ip_login = '$ipaddress' ";
mysql_query ($sql2) or die ("Delete Error");
		echo "<script>
		alert ('You will be unable to login for 15 minutes.');
		window.location = 'login.php';
		</script>";
		exit();
}
?>
$ad_user = $_POST['ad_user'];
$ad_pass = $_POST['ad_pass'];
$sqlSelect = "SELECT ad_user, ad_pass FROM admin_login WHERE (ad_user ='$ad_user') AND (ad_pass='$ad_pass')";
$qry = mysql_query($sqlSelect);
$recCount = mysql_num_rows($qry);
if ($recCount < 1) //หมายถึงล็อกอินเข้าระบบไม่ได้
{
//หาไอพีของผู้ล็อกอิน ด้วยคำสั่งนี้ (ยาวหน่อย เพราะคำสั่งแบบสั้นๆ บางทีหาไม่ได้)
if (getenv("HTTP_X_FORWARDED_FOR"))
{
$ipaddress=getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP"))
{
$ipaddress=getenv("HTTP_CLIENT_IP");
}
else
{
$ipaddress=getenv("REMOTE_ADDR");
}
//เมื่อได้ไอพีมาแล้ว ก็ตรวจสอบไอพีก่อนว่ามีแล้วหรือยัง ถ้ามีแล้ว ให้บวกเค้าเตอร์อีก 1 ถ้ายังไม่มี ให้เพิ่มใหม่และเริ่มนับเค้าเตอร์เป็น 1
$sqlSelect = "SELECT ip_login, count_of_fail_login FROM tb_ip_login WHERE (ip_login ='$ipaddress')";
$qry = mysql_query($sqlSelect);
$recCount = mysql_num_rows($qry);
if ($recCount < 1) //ยังไม่มี
{
$sqlInsert = "INSERT INTO tb_ip_login values('$ipaddress', 1)"; //อย่าลืมว่าเริ่มนับหนึ่งใหม่
mysql_query ($sqlInsert) or die ("Insert ERROR");
} 
else
{
$result = mysql_fetch_array($qry);
$Counter = $result['count_of_fail_login'] + 1; //เพิ่มค่าเข้าระบบผิดอีกหนึ่ง
$sqlUpdate = "UPDATE tb_ip_login SET count_of_fail_login = $Counter WHERE ip_login = '$ipaddress'";
mysql_query ($sqlUpdate) or die ("Update ERROR");
}
}
//ตรงนี้เป็นขั้นตอนตรวจสอบจำนวนครั้งที่เข้าระบบผิด และล็อกไอพีไม่ให้เข้าระบบ ตาเวลาที่กำหนด คุณลองทำดูเองก่อน ติดแล้วค่อยมาถามนะครับ
//หลังจากครบเวลาที่กำหนดแล้ว อย่าลืมว่าระบบจะเริ่มนับหนึ่งใหม่ ตรงนี้คุณก็ลองทำดูกอ่นอีกเหมือนกันครับ
$sqlSelect = "SELECT * FROM tb_ip_login WHERE (ip_login ='$ipaddress')";
$qry = mysql_query($sqlSelect);
$row = mysql_fetch_array($qry);
$sqlSelect2 = "SELECT ad_user, ad_pass FROM admin_login WHERE (ad_user ='$ad_user') AND (ad_pass='$ad_pass')";
$qry2 = mysql_query($sqlSelect2);
$row2 = mysql_fetch_array($qry2);
if (($row[1] >= 3) AND (empty($row2[0]))) //ยังไม่มี
{
//$_SESSION['ipaddress'] = $ipaddress;
	setcookie("ipaddress",$ipaddress,time()+60); 
/*	
$sql2 = "DELETE FROM tb_ip_login  WHERE ip_login = '$ipaddress' ";
mysql_query ($sql2) or die ("Delete Error");
*/
echo '<script language="JavaScript">';
echo 'alert("ชื่อผู้ดูแลระบบ หรือ รหัสผ่าน ไม่ถูกต้อง\nคุณได้ทำการล็อกอินเกินกว่า 3 ครั้ง\nหลังจากคุณล็อกอินครบ 3 ครั้งแล้ว คุณจะไม่สามารถล็อกอินได้อีกภายในเวลา 15 นาที");';
echo "window.location = 'login.php'";
echo '</script>';
exit();
} 
$sql = sprintf("select * from admin_login where ad_user = '%s' and ad_pass = '%s'",
            mysql_real_escape_string($ad_user),
            mysql_real_escape_string($ad_pass));
$result = mysql_query($sql) or die ("SQL Error");
$row = mysql_fetch_array($result);
$sqlSelect2 = "SELECT * FROM tb_ip_login WHERE (ip_login ='$ipaddress')";
$qry2 = mysql_query($sqlSelect2);
$row2 = mysql_fetch_array($qry2);
if (empty($row[0])){
echo '<script language="JavaScript">';
echo 'alert("ชื่อผู้ดูแลระบบ หรือ รหัสผ่าน ไม่ถูกต้อง\nคุณได้ทำการล็อกอินเกินกว่า 3 ครั้ง\nหลังจากคุณล็อกอินครบ 3 ครั้งแล้ว คุณจะไม่สามารถล็อกอินได้อีกภายในเวลา 15 นาที");';
echo "window.location = 'login.php'";
echo '</script>';
exit();
}
$_SESSION['s_ad_user'] = $ad_user;
echo "<script>
		alert ('สวัสดี คุณ $row[3] $row[4].');
		window.location = 'detail.php';
		</script>";
	exit();
ob_end_flush();
 อันนี้โค้ดเต็มๆ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 23:01:04 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ถ้าเป็นผมจะใส่  ob_start();  บนสุดครับ เผื่อได้
  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 23:21:45 | By :
                            panyapol |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ลองแล้ว ยังไม่ได้อ่า 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 23:52:30 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ตามที่คุณพีบอกอะครับ ส่วนการหาไอพีควรจะหาแค่ครั้งเดียวพอ ทำไมต้องให้โปรแกรมหาซ้ำซ้อนครับ 
 ลองดูตรงนี้ด้วยครับ
 ?>  //ปิดแล้ว แต่คุณยังมีคำสั่ง พีเอชพีทำงานต่อจากแท็กปิด
 
 
 }
 }
 
 ซ้อนกันอยู่ 2 อัน เท่าที่ดูผมเห็นว่าก่อนหน้านั้นปิดหมดแล้ว (อิอิอิ หรือผมตาถั่วมองไม่เห็นก็ไม่แน่นะครับ แต่อยากให้ลองตรวจดูอีกทีครับ)
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-09 23:56:59 | By :
                            NanoTHoro |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ie มันเปิดให้เขียน cookie หรือเปล่า 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 00:16:55 | By :
                            plakrim |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เปิดนะครับ เพราะเวลาลองรันบน local ยังได้เลยครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 08:44:13 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | วันนี้ไม่ต้องปลุกแงะ อิอิอิ 
 ครับๆๆๆๆ
 
 คุณบอกว่าใช้ไฟฟ็อกได้ แต่ไออีไม่ได้ แสดงว่าโค้ดถูกต้องแล้ว และใช้โลคอลได้ แต่ใช้บนฌซอร์เวอร์ไม่ได้ งั้นคุณลองลดระดับของ ซีเคอร์ริตี้ในไออีลงอีกระดับนึงครับ แล้วลองตรวจสอบค่าการรับคุกกี้อีกทีครับ อย่าลืมว่า เซอร์เวอร์ใช้อินเตอร์เน็ต แต่โลคอลโฮสใช้ อินทราเน็ตอะครับ ลองปรับเปลี่ยนตัวนี้ดูครับ และๆๆๆๆ ทดลองใช้กับเครื่องอื่นดูด้วยครับ (อย่าบอกนะว่ามีเครื่องเดียว.... ร้านเน็ตมีให้ทดลองครับ แต่อย่าไปปล่อยไวรัสใส่ร้านเขาซะล่ะ ออิอิอิิอิ)
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 09:09:10 | By :
                            NanoTHoro |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ครับลองปรับเป็น Accept All Cookie แล้วก็ยังไม่ได้ครับ ลองรันบนเครื่องอื่น IE คนละเวอร์ชั่นก็ยังไม่ได้ครับ
 
 อืม..... พอจะมีวิธีอื่นที่ไม่ใช้ Cookie ได้ไหมครับ (วิธีที่ทำยังไงให้มันใช้ได้นะครับ) เริ่มมึนครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 09:20:51 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | คุณนาโน เงียบไปเลย รอคำตอบอยู่นะครับ    
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 10:35:10 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | อิอิอิ ขอโทษทีครับ วันนี้ไม่ค่อยได้อยู่หน้าคอมตลอด เดี๋ยวอาจจะต้องเข้าออฟฟิสที่พัทยานะครับ กลับมาอีกทีคงจะเย็นๆ ครับ แค่อาจจะนะ 
 โอเคเข้าเรื่องนะครับ เท่าที่ดูตรงนี้คุณให้คุกกี้ในการจำไอพีที่ไม่สามารถล็อกอินได้ใช่ไหมครับ เพื่อกักเวลาเขา เราใช้วิธีเก็บลงฐานข้อมูลเหมือนเดิมสิครับ เวลาจะตรวจสอบว่าเขาอยู่ในช่วงเวลาที่โดนกักหรือเปล่า เราก็เอาเวลา (และวันที่ด้วย) ที่เก็บไว้ในฐานข้อมูล มาตรวจสอบกับวันที่และเวลาปัจจุบันขณะที่เขากำลังล็อกอิน รอบที่ 4-5-6... น่าจะง่ายกว่าคุ๊กกี้ไหมครับ สร้างเขตข้อมูลขึ้นมารองรับในตารางเดิมที่มีอยู่แล้วก็ได้ อีกอย่างนะครับ การเก็บด้วยคุกกี้ คุกกี้ถูกเก็บที่เครื่องผู้ใช้ เวลาเขาลบคุกกี้ไปแล้ว เขาก็ไม่ถูกบล็อคอยู่ดี จริงไหมครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 10:47:14 | By :
                            NanoTHoro |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | คุณเคนเป็นไงบ้างครับ ทำได้หรือยัง ผมรอลุ้นอยู่นะครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 12:17:04 | By :
                            NanoTHoro |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ถ้าทำอย่างที่คุณ Nano ว่า เกิดผู้ใช้ปรับเวลา ก็สามารถหลุดจากการบล็อกได้อยู่ดี ใช่ไหมครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 13:15:28 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | อ้างอิงเวลาในเซอร์เวอร์สิครับ ยังงัยเขาก็ปรับไม่ได้ อิอิอิ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 13:34:22 | By :
                            NanoTHoro |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ประกาศ setcookie ไว้ใน พาธไหนครับ ควรประกาศ setcookie ไว้ root นอกสุดเลยนะครับเพื่อที่จะใช้ใน subdirectory ได้ 
 *** ถ้าประกาศ setcookie ไว้ใน Directory ในๆๆ ลึกๆ มันจะใช้ใน root นอกๆไม่ได้ครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 14:48:51 | By :
                            adaaugusta |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ได้แล้วครับ คุณ Nano ตามวิธีที่แนะนำ แต่ยังคาใจว่า cookie ใช้ได้แต่ firefox แต่ ie ไม่ได้ซะงั้น  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 18:18:39 | By :
                            ken |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | มีด้วยหรอ ที่แบ่งพรรคแบ่งพวกแบบนี้ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 18:38:01 | By :
                            panyapol |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              |  ดีใจด้วยครับ ส่วนที่ถามอันนี้ผมก็ไม่แน่ใจเหมือนกันครับ สงสัยแบ่งพรรคแบ่งพวก เหมือนคุณพีว่าละมั้งครับ ฮาๆๆๆๆ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-10 20:34:27 | By :
                            NanoTHoro |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              |  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-12 23:57:18 | By :
                            nakait20 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | Code (PHP) 
 <?php
define('_W_ADDRESS_',              $_SERVER['HTTP_HOST']);
if (_W_ADDRESS_ == "localhost" || _W_ADDRESS_ == "localhost:81") {
	$webaddress = false;
} else {
	$webaddress = _W_ADDRESS_;
}
setcookie("ipaddress", $ipaddress, time()+60, _W_ROOT_, $webaddress);
?>
แบบนี้จะได้มั้ย?
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-13 02:02:10 | By :
                            mr.v |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | _W_ROOT_ ก็คือตำแหน่ง root ของเว็บ อย่างไทยครีเอทก็ / หรืออะไรประมาณนี้ ถ้าเว็บอยู่ใน /dir ก็กำหนด /dir/
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2009-09-13 02:04:02 | By :
                            mr.v |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |