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 > ใช้ session อย่างไร ถ้าต้องการ login ได้แค่ เครื่องเดียวเท่านั้น ของ user นั้นๆ ป้องกัน login ซ้ำ



 

ใช้ session อย่างไร ถ้าต้องการ login ได้แค่ เครื่องเดียวเท่านั้น ของ user นั้นๆ ป้องกัน login ซ้ำ

 



Topic : 032797

Guest




ตามหัวข้อ

ในช่วงเวลาเดียวกันนั้น ต้องการให้ username เดียว สามารถ login ได้แค่เครื่องเดียวเท่านั้น ต้องเขียนอย่างไรครับ

ขอวิธีการก็ได้ครับ

หรือ ได้โค้ด ก็ดี



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-10-08 20:49:47 By : มอส View : 26425 Reply : 47
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

บอกหลักการน่ะครับ ใช้เหมือนกับ Useronline ครับ คือเมื่อ User Login ก็เปลี่ยนสถานะว่ากำลังทำงานอยู่ ไม่ให้ user อื่น ๆ Login ได้ และเมื่อ User คนนั้น Logout ก็เปลี่ยนสถานะให้เป็นว่าง

Table User
USER , PASSWORD , STATUS , TIME_LOGIN
win , 001 , 1 (1 = Login อยู่ , 0 = ว่าง)



LOGIN
SELECT * from user WHERE USER = 'user' AND PASSWORD = 'pass' AND STATUS ='0'


หลังจาก LOGIN ผ่าน

LOGIN
UPDATE user SET STATUS = '1' WHERE USER = 'user'


หลังจาก Login ผ่านแล้ว User คนอื่นก็จะไม่สามารถ Login ได้อีกครับ

และเมื่อ User Logout ก็ให้ใช้

LOG OUT
UPDATE user SET STATUS = '0' WHERE USER = 'user'



แล้วถ้า User ไม่ได้ Logout ??

ให้เชคว่า User คนดังกล่าวได้มีการใช้งานอยู่หรือไม่ โดย UPDATE เวลาทุก ๆ ครั้งที่มีการ Refresh Web Page ครับ แต่ถ้าไม่ได้มีการ UDPATE เวลาตามเวลาที่กำหนด แสดงว่าได้ ออกไปโดยไม่ผ่านการ Logout

LOG OUT
UPDATE user SET TIME_LOGIN= NOW() WHERE USER = 'user'







Date : 2009-10-08 21:44:01 By : webmaster
 


 

No. 2



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



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


สุดยอดขอบคุณคับกำลังคิดหาพอดี
Date : 2009-10-08 22:02:32 By : apicha31
 

 

No. 3



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

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

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

ขอบคุณครับ พี่วิน ไม่ผิดหวังเลยครับ

ขอบคุณที่ให้ความกระจ่างครับ


Date : 2009-10-08 22:17:20 By : khunset
 


 

No. 4



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

UPDATE user SET TIME_LOGIN= NOW() WHERE USER = 'user'

จะเอาไปไว้ในส่วนไหนคับ แล้วต้องมีการสร้างเงื่อนไขควบคุมหรือเปล่าคับ
ตัวอย่างการใช้งานด้วยคับ ผมยังไม่เก่ง ดูยังไงก็ยัง งงคับ ช่วยอิบาย บรรทัดนี้ให้ด้วยคับ
Date : 2009-10-22 18:23:00 By : chaynuwong
 


 

No. 5



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

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

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


เห็นคำถาม ผมก็คิดเหมือนพี่วิน เหมือนกันเลย ว่าสร้าง ตารางมา เก็บค่าการ login ไว้

แล้วพอ logout ออก ก็มาอัพเดต เคลียร์ค่าเหมือนเดิม ^-^

เรื่อง ปิดเพจ โดยไม่ได้ logout ผมคุ้นๆ ว่า เราสามารถเขียน php เพื่อให้ทำงานต่อ แม้ user จะออกไปแล้ว

ไม่ทราบว่า เอามาประยุกต์ใช้แทนกันได้ไหมครับ พี่วิน

คิดว่า น่าจะได้ นะ
Date : 2009-10-22 20:14:18 By : yomaster
 


 

No. 6



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ขุดๆๆ คำตอบยังไม่ชัดเจน คับ อยากได้ ชัวร์ๆ คับ
Date : 2009-10-22 22:52:22 By : chaynuwong
 


 

No. 7

Guest


ถ้ามีคนแอบใช้ user เราแล้ว status มันก็เป็น 1

แล้วที่นี้ ณ เวลาเด๋วกันพอเราจะเข้าใช้งานเราก็ใช้งานไม่ได้สิครับ
Date : 2010-04-05 17:25:15 By : อยากขี้เหล่
 


 

No. 8



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



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


พี่วินช่วยอธิบายบรรทัดสุดท้ายอีกหน่อยครับงง

Code (PHP)
UPDATE user SET TIME_LOGIN= NOW() WHERE USER = 'user'

Date : 2010-06-08 14:09:49 By : aimoomoo
 


 

No. 9



โพสกระทู้ ( 5,146 )
บทความ ( 26 )

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

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


เพิ่ม เวลา login เป็น เวลาปจุบัน ครับ where ผู้ใช้งาน=ผู้ใช้งานขณะนี้
Date : 2010-06-08 14:12:25 By : deawx
 


 

No. 10



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



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


ดังนั้นเราต้องเอา code ตัวนี้ไปวางทุกๆ หน้า web สิครับ
Code (PHP)
UPDATE user SET TIME_LOGIN= NOW() WHERE USER = 'user'


ผมยังงงต่อว่าถ้า user ปิดหน้า web ไปเลย มันจะเปลี่ยนสถานะอย่างไรครับ
อธิบายหั้ยนิดหนึ่งครับ
Date : 2010-06-08 14:15:43 By : aimoomoo
 


 

No. 11



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

มาแล้วครับ มาให้ความกระจ่าง

Code
UPDATE user SET TIME_LOGIN= NOW() WHERE USER = 'user'


บางคนยังงงว่าตัวนี้คืออะไร ถ้าจะใช้งานจริง ๆ ก็คือ

Code
UPDATE user SET TIME_LOGIN= '".time()."' WHERE USER = 'user'


ซึ่งจะต้องทำการแทรกทุกหน้าที่ User คนดังกล่าว ทำการ Link ไป ซึ่งเราจะทราบเวลาที่ User ได้ทำการอยู่บนหน้า Web Page ล่าสุด

แล้วตามด้วยแทรกคำสั่ง UPDATE เรคคอร์ดสำหรับ User ที่ไม่ได้ติดต่อกับ Server ตาเวลาที่กำหนด

Code
UPDATE user SET STATUS ='0' WHERE TIME_LOGIN <='".(time()-1200)."'


จาก Code ดังกล่าวจะได้ว่าเมื่อ User ไม่ได้ทำการ ติดต่อกับ Web Server ประมาณ 20 นาที ก็จะถูก Update Record เป็น 0 ขึ้นมาทันที แบบนี้ต่อให้ User ปิดหน้าจอไปเลย มันก็จะถูก Update อัตโนมัติ

** หมายเหตุ 2 คำสั่งนี้จะต้องแรกในส่วนที่มีการรันบ่อยๆ ครับ
Date : 2010-06-09 06:39:01 By : webmaster
 


 

No. 12



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ถ้าใน asp หรือ .net จะมี event ของ global.asa หรือ global.asax ในการความคุม Event ตรงนี้อยู่ครับ ซึ่งจะง่ายกว่า php
Date : 2010-06-09 06:40:06 By : webmaster
 


 

No. 13



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



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


ผมยังงอีกนิดครับ
ถึง Mr.วิน No.11 ตรง 3 บรรทัดสุดท้ายที่ว่า
Quote:
จาก Code ดังกล่าวจะได้ว่าเมื่อ User ไม่ได้ทำการ ติดต่อกับ Web Server ประมาณ 20 นาที ก็จะถูก Update Record เป็น 0 ขึ้นมาทันที แบบนี้ต่อให้ User ปิดหน้าจอไปเลย มันก็จะถูก Update อัตโนมัติ

** หมายเหตุ 2 คำสั่งนี้จะต้องแรกในส่วนที่มีการรันบ่อยๆ ครับ

ในเมื่อปิดหน้าจอไปแล้ว code ส่วนนี้ยังคงจะทำงานอยู่หรอครับ

ผมนี่โง่จัง
Date : 2010-06-09 08:03:29 By : aimoomoo
 


 

No. 14



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

แบ่งเป็น 2 เงื่อนไขน่ะครับ

แทรกไว้ในหน้า Login ก่อนคำสั่งอื่น ๆ เป็นไปได้ 2 กรณีคือ
- ถูก run โดยผู้ใช้คนอื่นๆ ที่กำลังคลิกหน้านั้น ๆ อยู่

- ต่อให้ไม่มีคนรัน แต่เมื่อคุณกลับมา Login อีกครั้ง script นี้ก็จะถูกทำงานเป็นคำสั่งแรกอยู่แล้ว
Date : 2010-06-09 08:46:18 By : webmaster
 


 

No. 15



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



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


กกำลังหาพอดี ขอบคุณมากๆค่ะ
Date : 2010-06-09 08:58:11 By : amster
 


 

No. 16



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



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


ออเขาจัยแล้วครับเดียวขอนำไปลองก่อนครับ
Date : 2010-06-09 09:51:26 By : aimoomoo
 


 

No. 17

Guest


พี่วินครับ ผมกำลังศึกษาและทำเรื่องเกี่ยวกับ login อยู่พอดีเลยครับ รบกวนพี่วิน ทำตัวอย่างให้ดูหน่อยได้ไหมครับ ผมเพิ่งหัดเขียนครับ เลยไม่ค่อยจะเข้าใจหลักการเท่าไรครับ อยากจะดูตัวอย่างและลองศึกษาดูครับ
Date : 2010-12-01 14:06:39 By : TT
 


 

No. 18

Guest


ต้องเขียน session เพิ่มเติมหรือเปล่าคับ มีตัวอย่างการเขียนหรือเปล่าคับ
Date : 2011-02-28 13:39:22 By : โปแกรมมั่ว
 


 

No. 19



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ถ้ายังติดปัญหา ให้ทำการลงมือทำ แล้วอ่านกระทู้นี้เพิ่มเติมครับ Go to : ขออนุญาติถามเกี่ยวกับ php user online หน่อยนะครับ ที่ต้องขออนุญาติเพราะว่าได้ลอง เซิชดูจากหลายๆกระทู้
Date : 2011-05-31 09:38:56 By : webmaster
 


 

No. 20



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



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


พี่วินครับ ตอนนี้ ติดปัญหาอยู่ที่ว่า ถ้า User ปิดเวป และ ปิดคอม ไฟดับ

สถานะ ไม่ยอมเปลี่ยนครับ

คำสั่งนี้ต้องอ้างอิง เชกชั่น id ปะครับ

Code
UPDATE user SET method='0' WHERE TIME_LOGIN <='".(time()-1200)."'



และถ้าสมมุติทำถูกหลักแล้ว

ถ้า User ปิดหน้าเวป สถานะการล็อกอินจะเปลี่ยนหรือป่าวครับ
Date : 2011-09-09 09:24:49 By : noppawut
 


 

No. 21



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ถ้า ถ้า time น้อยกว่า session นั้นจะถูกลบทิ้งครับ ไม่มีปัญหา
Date : 2011-09-09 09:27:29 By : webmaster
 


 

No. 22



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



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


Code
UPDATE user SET method='0' WHERE TIME_LOGIN <='".(time()-1200)."'


ต้องใช้ เชกชั่น id เพื่ออ้างอิง id นั้นด้วยใช่ปะครับ
Date : 2011-09-09 09:37:20 By : noppawut
 


 

No. 23



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ไม้ต้องครับ มันลบทั้งหมดที่ session หมดอายุครับ
Date : 2011-09-09 09:40:54 By : webmaster
 


 

No. 24



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



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


อ๋อครับ ผมเข้าใจหลักการละ ขอบคุณมากครับพี่วิน
Date : 2011-09-09 09:44:47 By : noppawut
 


 

No. 25



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



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


เห็นด้วยทุกประการ 555
Date : 2011-09-09 11:24:53 By : taomasaba
 


 

No. 26

Guest


ขอบคุณค่ะ กำลังหาอยู่ค่ะ
Date : 2012-02-27 13:29:15 By : bb
 


 

No. 27

Guest


ทดสอบแล้วครับผ่านครับใช้ได้ครับ
Date : 2012-03-03 23:48:00 By : jojo hitman
 


 

No. 28

Guest


โค๊ดที่บอกมาทั้งหมดเขียนไว้ในหน้า update_login.php หรอคะพี่วิน และไฟล์ update_logout.php หรือคะ หรือเขียนไว้หน้า login.php และ logout.php เลยค่ะ
Date : 2012-07-09 16:29:51 By : bangkok_2012
 


 

No. 29

Guest


อยากได้แบบ ASP มีบ้างไหมอ่ะครับผม

แล้วแบบนี้ทำยังไงอ่ะครับผม

"ถ้าใน asp หรือ .net จะมี event ของ global.asa หรือ global.asax ในการความคุม Event ตรงนี้อยู่ครับ ซึ่งจะง่ายกว่า php"

ขอบคุณครับ
Date : 2012-09-30 03:59:32 By : oreojung
 


 

No. 30

Guest


ขอบคุณพี่ๆทุกคนครับกำลังหาอยู่พอดี
Date : 2013-04-19 12:01:23 By : nana
 


 

No. 31



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



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


มันยังไม่กระจ่างเลยค่ะ ยังงงว่าตกลงโค้ด

UPDATE user SET TIME_LOGIN= '".time()."' WHERE USER = 'user'

อันนี้เอาแทรกไว้ทุกหน้าแล้วใช่มั้ยค่ะ แล้วโค้ดนี้

UPDATE user SET STATUS ='0' WHERE TIME_LOGIN <='".(time()-1200)."'

ใช้ด้วยกันแทรกไว้ทุกหน้าเหมือนกันหรอค่ะ มันใช้ยังไงค่ะ ช่วยอธิบายเพิ่มอีกหน่อยได้มั้ยค่ะ เผื่อสมองตัวเองมันจะติ๊งบ้าง




ประวัติการแก้ไข
2013-04-22 09:18:17
2013-04-22 09:18:33
Date : 2013-04-22 09:17:27 By : laongdow
 


 

No. 32

Guest


อยากทราบว่าแล้วเมื่อเขาปิด window ไปเลย จะเขียนโค้ดยังไงเพื่อแก้ค่าที่ status ให้เป็น 0 ล่ะคะ ใครรู้ช่วยบอกที ฮึ ฮึ
Date : 2013-04-22 16:34:44 By : aun aun
 


 

No. 33



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ตอบความคิดเห็นที่ : 3 เขียนโดย : aun aun เมื่อวันที่ 2013-04-22 16:34:44
รายละเอียดของการตอบ ::
กลับไปอ่านให้เข้าใจครับ

Date : 2013-04-22 17:48:37 By : mr.win
 


 

No. 34



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



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

ขอบคุณมากคะ


ประวัติการแก้ไข
2013-08-22 13:24:29
Date : 2013-08-22 12:01:09 By : vongole
 


 

No. 35

Guest


แนวคิดเยี่ยมมาก
Date : 2013-08-22 12:42:09 By : อ้อม
 


 

No. 36

Guest


ขอบคุณมากครับ

ผมเอาไปผูกกับ ip อีกที คนปิดหน้าต่างลืม logout จะได้ไม่ต้องรอ 20 นาที
Date : 2013-08-23 15:20:34 By : เมว
 


 

No. 37



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



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


ขอสอบถามครับ ขอดันหน่อย
จาก
Code
UPDATE user SET status='0' WHERE TIME_LOGIN <='".(time()-1200)."'


เมื่อผมนำไปใส่ที่ ฟอร์ม login เพื่ออัพเดต เมื่อมี user ปิด browser ไป เมื่อครบกำหนดเวลา ก็จะอัพเดทตารางให้ เพื่อ logout เอง แต่ถ้า
ปิดบราวเซอร์แล้วเปิดขึ้นมาใหม่ละครับ มัน login ไม่ได้ เพราะเวลายังไม่ครบ ค่า status เลยจะค้างเป็น 1 อยู่ หากยังไม่ครบกำหนดเวลา ก็เลย login ไม่ได้ แล้วผมต้องทำอย่างไรครับ
Date : 2013-09-25 21:33:12 By : angelkiller9
 


 

No. 38

Guest


ขอโค้ดแบบเต็มหน่อยครับ
ผมไม่เข้าใจ
ปล. มือใหม่หัดเขียน PHP
Date : 2013-11-30 07:33:06 By : Brokenza
 


 

No. 39

Guest


สงสัยเพิ่งซื้อจอบมาใหม่ ขุดกันมันส์เลย ฮ่า ๆ ๆ
Date : 2013-11-30 13:57:44 By : จอบ
 


 

No. 40



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



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


Code (PHP)
<?php
include("include/include.inc.php");
mysql_query("UPDATE member SET exptime = '' WHERE username = '".$_SESSION["".$SeS_TiTle_NaME."username"]."'");
$_SESSION["".$SeS_TiTle_NaME."id"] = '';
$_SESSION["".$SeS_TiTle_NaME."username"] = '';
$_SESSION["".$SeS_TiTle_NaME."password"] = '';
$_SESSION["".$SeS_TiTle_NaME."tel"] = '';
header("Location: ".$_SERVER['HTTP_REFERER']."");
?>



หน้า login แก้ยังไงครับ
Date : 2013-12-11 00:33:46 By : torres009
 


 

No. 41

Guest


ผมอยาก ให้ อธิบายว่าเอาโค้ด ไปใส่ตรงไหนยังครับอ่ะครับพอดี กำลังศึกษา ไม่รู้เรื่องเท่าไหร่ครับ

และเราต้อง สร้างตารางดาต้าเบสยังไง

อยากได้ความละเอียดครับ

ส่วนมากไปดูที่ไหนมาก็ตอบเหมือนๆกันครับ

คนที่ไม่รู้ก็งงต่อไปอีกละ

คือผมไม่เก่งphp แต่ผมทำ VB ให้มันทำงานร่วมกับPHP อยู่ครับ
Date : 2014-04-21 21:25:13 By : นักศึกษาของคุณ
 


 

No. 42



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

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

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

No.37 เยี่ยมมาก ต้องหาวิธีการแก้ไขต่อ ข้อนี้น่าจะเป็น bug ของโปรแกรม ผมยังหาวิธีไม่ได้ ถ้าทำได้แล้วจะนำมาแชร์ให้ทุกๆ ท่าน นะครับ
Date : 2014-05-06 11:16:59 By : abass
 


 

No. 43



โพสกระทู้ ( 4,719 )
บทความ ( 8 )



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


การแก้ปัญหาของ #37

กรณีของ 37 จะถือว่าเป็นการเปิดจากเบราเซอร์อื่นหรือเครื่องอื่น เพราะว่าปิดไปแล้วและเข้ามาในขณะที่ยังไม่ถึงเวลา auto logout

กรณีนี้แนะนำให้แก้ได้ 2 แบบตามลำดับความเข้มข้นของความปลอดภัย
เริ่มจากน้อยสุด

1. ใช้คุกกี้ระบุตัวตนเบราเซอร์
คือเมื่อล็อกอินสำเร็จเสร็จหมดแล้ว ก่อนจะไปหน้าอื่นๆ ให้ส่งคุ้กกี้ระบุตัวตนเบราเซอร์ไปด้วย เช่น คุกกี้ชื่อ browser_identity
ข้อมูลคือชื่อเบราเซอร์ เวอร์ชั่น วันที่ เวลา account id มาแบบต่อสตริงกันมาเลย แล้วเก็บลงทั้งในคุกกี้และในฟิลด์เพิ่มในตารางฐานข้อมูลผู้ใช้
กรณีล็อกอินตามเงื่อนไขคห. 37 หากติดยังไม่ auto logout ก็ให้ตรวจก่อนว่ามี cookie browser_indentity มั้ย มีแล้วเอามาเช็คในตารางผู้ใช้ว่าตรงกันมั้ย ถ้าตรงก็ล็อกอินได้
คุกกี้ browser_identity นี้อาจเก็บไว้สัก เดือนหนึ่ง หรืออย่างน้อยนานกว่าคุกกี้ผู้ใช้ 2 เท่า.

2. ใช้ระบบ token ผ่าน email
วิธีนี้ค่อนข้างปลอดภัยมากมายมหาศาล (ถ้าคุณใช้อีเมลที่มี 2 step verification เหมือนผม)
กล่าวคือ เมื่อติดปัญหาล็อกอินไม่ได้เพราะยังไม่ auto logout ก็ให้เสนอทางเลือกว่าผู้ใช้จะรอ หรือจะไปสร้าง token
วิธีสร้าง token ก็คล้ายๆลืมรหัสผ่าน กระบวนการเดียวกันเป๊ะ ไปกรอกอีเมล ตรวจอีเมลว่าตรงมั้ย ถ้าตรงก็สร้าง token แล้วเก็บใน db ผู้ใช้อันนึง ส่งไปทางอีเมลผู้ใช้อีกอันนึง ให้เค้าคลิกลิ้งค์เพื่อล็อกอิน
การล็อกอินผ่าน token ก็จะได้ url เช่น http://localhost/login.php?force_login_token=xXxXxXxX ก็เอา querystring force_login_token ไปตรวจว่าตรงกับใน db มั้ย ถ้าตรงก็เข้ากระบวนการตรวจ username password
พอล็อกอินสำเร็จก็ล้าง token ของผู้ใช้ใน db ซะ

สำหรับข้อ 2 ถ้าจะเพิ่มความปลอดภัยเข้าไปอีก ก็ให้เพิ่มฟิลด์เวลาด้วยว่า token นี้สร้างเมื่อไหร่ และให้ใช้เวลาไม่เกินกี่นาทีในการดำเนินการ ถ้าเกินก็ต้องไปสร้างใหม่ครับ


ประวัติการแก้ไข
2014-06-24 00:43:56
Date : 2014-06-24 00:42:17 By : mr.v
 


 

No. 44



โพสกระทู้ ( 9,556 )
บทความ ( 2 )



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


เพิ่มเติมอีกหน่อยครับ
UPDATE user SET method='0' WHERE method='1' and TIME_LOGIN <='".(time()-1200)."'

ให้เช็ค method ด้วยเลย เพื่อจะได้ ผ่านไปเลย ไม่ต้องเสียเวลา เข้าสูโหมด update แล้ว ถึงเช็ค method ว่าเท่ากัน หรือไม่ เพื่อ update

เร็วขึ้นอีกหน่อย
Date : 2014-06-24 02:13:55 By : Chaidhanan
 


 

No. 45



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

มีเวลาจัดซะหน่อย



PHP ทำระบบ Login และป้องกันการ ล็อกอิน ซ้ำซ้อนใน User เดียวกัน (MySQLi , Duplicate Session)

Date : 2014-10-07 13:02:13 By : mr.win
 


 

No. 46



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



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


ขอบคุณคับ
Date : 2014-10-07 18:19:57 By : esthook
 


 

No. 47

Guest


ผมลองรันแล้วติดปัญหา user คนอื่นก็ยังเข้ามาใช้ได้ถึงแม้เราจะกำลัง log อยู่ก็ตาม จากนั้นผมก็เลยออกแบบเพิ่มเองเลย (ไม่รู้ถูกป่าว)อิอิ

โดยหลักการของผมคือ
1 เพิ่ม table IPaddress มาอีกคอลัม เพื่อแยกแยะเครื่องในกรณีที่มีคอมพิวเตอร์มากกว่า 1 ตัว
2 เช็ค status ก่อนเลยว่าเป็น 0 มั้ย กับค่า ip ของเครื่องเราเทียบกับค่า ip ใน mysql table
3 ถ้า status เป็น 1 และค่า ip เหมือนกัน แสดงว่ามีคนใช้คอมเครื่องนี้อยู่ให้แจ้งข้อความเตือนแล้วกลับไปหน้า Login
4 ถ้า status เป็น 0 แสดงว่าคอมพิวเตอร์เครื่องนี้ว่าง ส่วนค่า ip จะมีผลก็ตอนสถานะเป็น 1 ก็เข้าเงื่อนไขต่อไป
5 เมื่อผ่านสถานะว่างมาแล้ว ให้เช็ค user and password เทียบกับ ตารางใน mysql
6 ถ้าไม่ match ให้แจ้งเตือนว่า user and password ผิด แล้วรีเทรินกลับไปหน้า login
7 ถ้า match ให้ update status ใน mysql table ให้เป็น 1 พร้อมบันทึก เวลา update พร้อมทั้ง ค่า ip ด้วย
8 นอกนั้นก็ใช้ code ของคุณวินตามปรกติ ครับ
Date : 2016-09-17 10:29:42 By : RJB
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ใช้ session อย่างไร ถ้าต้องการ login ได้แค่ เครื่องเดียวเท่านั้น ของ user นั้นๆ ป้องกัน 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 อัตราราคา คลิกที่นี่