Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > พี่ ๆ ทั้งหลาย ช่วยดู CODE ให้หน่อยครับ เกี่ยวกับ login ครับ



 

พี่ ๆ ทั้งหลาย ช่วยดู CODE ให้หน่อยครับ เกี่ยวกับ login ครับ

 



Topic : 032832



โพสกระทู้ ( 21 )
บทความ ( 0 )



สถานะออฟไลน์




จากที่ผมเคยถามเรื่อง ล๊อกอินซ้ำอ่ะครับ ท่านวินได้แนะนำจากกระทู้เก่า ผมเลยลองมาเขียนเอง แต่มันยังแปลก ๆ อ่ะครับ ยังไม่ได้อ่ะ น่าจะผิดตรงไหนสักนิดหน่อยอ่ะครับรบกวนดูหน่อยนะครับ

program.php อันนี้เป็นหน้า login ครับ

Code (PHP)
<form id="form1" name="form1" method="post" action="programchk.php">
  <table width="450" border="1" align="center" cellpadding="0" cellspacing="1" bordercolor="#E2E2C7">
    <tr bgcolor="#EDEDDC">
      <th colspan="2" scope="row">MEMBER</th>
    </tr>
    <tr>
      <th width="105" scope="row">username</th>
      <td width="336"><input type="text" name="username" id="username" /></td>
    </tr>
    <tr>
      <th scope="row">Password</th>
      <td><input type="password" name="password" id="password" /></td>
    </tr>
    <tr bgcolor="#EDEDDC">
      <th colspan="2" scope="row"><input type="submit" name="button" id="button" value="Submit" /></th>
    </tr>
  </table>
</form>



อันนี้เป็นหน้าที่รับค่ามาจาก program.php นะครับตรงส่วนนี้ผมทำการเซ้ตไว้ว่า

Code (PHP)
	session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?PHP
	include("connection/connect.php");
	include("connection/function.php");
	include("useronline.php");
	$username			= $_POST['username'];
	$user_passpro		= md5($_POST['password']);


	
	
	if(empty($username)||empty($user_passpro))
	{
		echo "<script>alert('กรอกข้อมูลไม่ครบคร๊าบ');history.back();</script>";
		exit();
	}
	
	$sql 	= "select * from phpbb_users where username='$username' and user_passpro='$user_passpro' and statscorecard='9'";
	$query	= mysql_query($sql) or die("error=$sql");
	$num	= mysql_num_rows($query);
	$row	= mysql_fetch_array($query);
//echo $row[tblogin];
	if($num==0)
	{
		echo "<script>alert('## Login Fail ##');history.back();</script>";
		exit();
	}
	
	
for ($i=0;$i<count($f);$i++) {
if ($f[$i]>$nu) { $sql = "update phpbb_users set tblogin = 7";
	$query	= mysql_query($sql) or die("error=$sql"); } 
}
	
	

	if($row[tblogin] == 9)
		{echo "<script>alert('@@ log in ซ้ำ @@');history.back();</script>";
		 exit();
}


else

	{
		$_SESSION['username']=$username;
		echo "<script>alert('@@ Welcome @@');window.location='data.php';</script>";
		exit();
	}
	



File useronline ผมก๊อปปี้มาจากคุณ MR.WIN เลยอ่ะครับ
จริง ๆ ผมก็ไม่ค่อยเข้าใจfunction มันอ่ะครับ เลยไม่ได้แก้อะไร
useronline.php

Code (PHP)
$time=time();
$nu=time()-60; # ประมาณ 1 นาที ที่แล้ว

$file="useronline2.txt"; #ชื่อไฟล์ที่ต้องการเก็บ

$f=fopen($file,"a+");
fputs($f,$time."\n"); # จัดเก็บเวลาปัจจุบัน ลง file
fclose($f);

$count_users = count(file($file)); # นับจำนวนบรรทัด

$f=file($file);
$f1=fopen($file,"w");
for ($i=0;$i<count($f);$i++) {
if ($f[$i]>$nu) { fputs($f1,$f[$i]); } # ถ้าค่า time ที่เก็บไว้มากกว่า ค่า $nu ให้ลบออก
}
fclose($f1);



ตรงส่วนนี้เป็นหน้า data.php ครับ
ผมตั้งค่าไว้ว่ า ถ้า login เข้ามาแล้ว ให้เซ้ต tblogin = 9 อ่ะครับ พอตรงหน้า check ถ้ามันเท่กับ 9 ก็เข้าไม่ได้
Code (PHP)
	session_start();
	include("connection/function.php");
	include("connection/connect.php");
	@chklogin($_SESSION['username']);
	//$_SESSION['username']=$username;

	include("useronline.php");
	$sql	= "select * from phpbb_users where username='$username'";
	$query	= mysql_query($sql) or die("error=$sql");
	$row	= mysql_fetch_array($query);
//print_r($row);
	$sql = "update phpbb_users set tblogin = 9, logintime='$time' where username='$username' ";
	$query	= mysql_query($sql) or die("error=$sql");



อันนี้โค้ด file function นะครับ ไม่สำคัญอะไร
Code (PHP)
	function chklogin($username)
	{
		if(!isset($username))
		{
			echo "<script>alert(' Please Login ');window.location='program.php';</script>";
			exit();
		}
	}



ปัญหาที่พบคือ ครั้งหน้ามันจะเตือนว่า login ซ้ำครับ
แต่พอพิมพ์ username password เพื่อ login อีกที มันก็เข้าได้อ่ะครับ
งง เลย ทั้ง ๆ ที่ตั้งเอาไว้แล้วนะครับ ว่าถ้า login อยู่ให้เตือนว่ login ซ้ำอ่ะ แต่มันเตือนแค่ทีเดียวอ่ะครับ
ไม่ทราบว่ามันผิดตรงไหนเหรอครับ
เวลา echo $time มันจะมากกว่า$nu ตลอดเลยครับ เหมือนไม่มันไม่เคยต่ำกว่าเลยอ่ะครับ

ควรเขียนยังไงดีครับ ที่แบบว่าคอยเช็คเวลาได้เมื่อเข้าปิดหน้าจอไปเฉย ๆ อ่ะครับ ตรงส่วนนี้ไม่เข้าใจครับ
รบกวนหน่อยนะครับ
ขอบคุณมากครับทุกท่าน



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-10-09 17:04:03 By : lhing View : 1039 Reply : 8
 

 

No. 1



โพสกระทู้ ( 21 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้ทำตรงส่วนนี้ได้แล้วครับ
ที่check เวลาครับ
ผมเซ้ตไว้ว่า ถ้า น้อยกว่า 1 นาที ให้ทำการ log in ได้
แต่ตอนนี้มีปัญหาใหม่ มาอีกแล้วครับ
คือ ถ้าภายใน 1 นาที ไม่มีการเปลี่ยนหน้าใหม่ log in ไม่ได้ก็จริง แต่ถ้า รอเกิน 1 นาที ก็ log in ได้อ่ะครับ
ตอนนี้กำลังคิดจะทำที่ว่า ถ้าภายใน 1 นาทีไม่ไปหน้าใหม่ก็ให้หลุดออกจากระบบอ่ะครับ แต่ผมว่าระบบแบบนี้มันไม่ค่อยดีเลยครับ เพราะว่าบางทีคนต้องอ่านข้อความอาจจะเกิน 1 นาที แต่ถ้าเซ็ตเกิน 1 นาที เวลาเค้า log out แบบไม่ปิดหน้าจอ เค้าก็อาจจะต้องรอนานอ่ะครับ
ควรทำไงดีครับ ?

ขอคำแนะนำหน่อยนะครับ
ตอนนี้กลายเป็นอยากได้ระบบแบบที่ว่า พอ log in ซ้อน ก็ให้คนที่ 1 หลุดไปเลยอ่ะครับ เหมือน msn อ่ะครับ






Date : 2009-10-09 19:29:20 By : lhing
 


 

No. 2



โพสกระทู้ ( 315 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

?
Date : 2009-10-09 20:09:09 By : nerobenz
 

 

No. 3



โพสกระทู้ ( 202 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


?
Date : 2009-10-10 10:47:23 By : doji
 


 

No. 4



โพสกระทู้ ( 21 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้พัฒนาไปอีกขั้นแล้วครับ ใครไม่กดหน้าใหม่ภายใน ระยะเวลาที่กำหนด จะทำให้หลุดเลยครับ
ป้องกัน การ login ซ้อนได้อีกทีนึงครับ

ใครสนใจบอกนะครับ ผมยินดีสอนให้เป็นแนวทาง ท่านต้องไปลองเขียนเองนะครับ
อันนี้ผมเริ่มจากไม่เป็นไรเลย จนเขียนได้
นั่งอ่าน นั่งงม 3-4 ได้อ่ะครับ
Date : 2009-10-11 00:26:35 By : lhing
 


 

No. 5



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

คืออยากถามหน่อยว่า จะเอาไปใช้ทำอะไรเหรอครับ

มีความจำเป็นอย่างไรคับ
Date : 2009-10-11 00:38:45 By : pjgunner
 


 

No. 6



โพสกระทู้ ( 21 )
บทความ ( 0 )



สถานะออฟไลน์


คือเป็นระบบสมาชิกนะครับ
ก่อนจะเข้ามาใช้ได้ต้องสมัครสมาชิกครับ
ขั้นตอนในการสมัครสมาชิกค่อนข้างยุ่งยากครับ
กลัวคน ๆ เดียวจะสมัคร แล้วก็เอา id pass ไปแจกอ่ะครับ
ประมาณนี้ครับ
Date : 2009-10-11 00:50:09 By : lhing
 


 

No. 7



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

เรื่องนี้จริงๆ ผมคิดว่าพอมีวิธีนะ ไม่รู้จะอธิบายสั้นๆได้ยังไง

ก็คือการเก็บ ip ครับ หรือจะเก็บ session id ก็ได้

คือเราต้องจำครั้งล่าสุดเอาไว้(ทุกครั้งที่รีเควส) หาว่ามีคนล็อคอินเข้ามาแล้วก็ต้องจำค่าไว้ หากมีคนล็อกอินอีกก็ต้องจำค่าไว้ แต่ค่าแรกเราจะต้องตีตราประทับว่าว่าเป็นของเก่า ดังนั้นหากของเก่าทำงานขึ้นมาก็แสดงว่ามีการใช้งาน ร่วมกันสองคนโดยใช้ไอดีเดียวกัน สำหรับหลายๆคนก็ใช้วิธีในลักษณะเดียวกันครับ แต่อย่าลืมคือการตีตรา ก็ควรจะมีอายุอยู่บ้างเหมือนกัน วิธีนี้เราไม่จำเป็นต้องทำการเปลี่ยนหน้าตามเวลาที่กำหนด และหากว่า เครื่องเก่าคนอื่นใช้ cookie อยู่ เราก็สามารถล็อคอินเข้าไปได้ และเครื่องเก่า(อีกเครื่อง) ก็จะไม่สามาถใช้ได้อีก(คือลบ cookie)ออกไปหากว่าเป็นเครื่องที่ถูกตีตราไว้

สรุปก็คือการ แอ็คทีฟให้เฉพาะ ค่าล่าสุดเท่านั้น ดังนั้น user เดียวกัน ไม่สามารถใช้งานพร้อมกันได้หลายๆเครื่อง แต่ใช้คนละเวลาได้

อธิบายแบบนี้ไม่รู้จะเข้าใจไหม แต่พรุ่งนี้ผมจะไม่เล่นเนต 1 เดือนแล้วครับ(พักผ่อน) ตอนนี้ก็ง่วงละ

นี่เป็นแค่แนวคิดครับ ผมก็คิดว่าซักวันก็จะได้ใช้ เลยคิดไว้นานแล้ว
Date : 2009-10-11 01:08:50 By : pjgunner
 


 

No. 8



โพสกระทู้ ( 21 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากครับ
ผมจะลองทำ ๆ ดูนะครับ
ขอโทษด้วยครับ ที่ตอบช้า เมื่อวานนอนแล้วครับ
Date : 2009-10-11 14:09:48 By : lhing
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : พี่ ๆ ทั้งหลาย ช่วยดู CODE ให้หน่อยครับ เกี่ยวกับ login ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่