 |
|
|
 |
 |
|
สุดยอดขอบคุณคับกำลังคิดหาพอดี
|
 |
 |
 |
 |
Date :
2009-10-08 22:02:32 |
By :
apicha31 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ พี่วิน ไม่ผิดหวังเลยครับ
ขอบคุณที่ให้ความกระจ่างครับ
 
|
 |
 |
 |
 |
Date :
2009-10-08 22:17:20 |
By :
khunset |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
UPDATE user SET TIME_LOGIN= NOW() WHERE USER = 'user'
จะเอาไปไว้ในส่วนไหนคับ แล้วต้องมีการสร้างเงื่อนไขควบคุมหรือเปล่าคับ
ตัวอย่างการใช้งานด้วยคับ ผมยังไม่เก่ง ดูยังไงก็ยัง งงคับ ช่วยอิบาย บรรทัดนี้ให้ด้วยคับ
|
 |
 |
 |
 |
Date :
2009-10-22 18:23:00 |
By :
chaynuwong |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เห็นคำถาม ผมก็คิดเหมือนพี่วิน เหมือนกันเลย ว่าสร้าง ตารางมา เก็บค่าการ login ไว้
แล้วพอ logout ออก ก็มาอัพเดต เคลียร์ค่าเหมือนเดิม ^-^
เรื่อง ปิดเพจ โดยไม่ได้ logout ผมคุ้นๆ ว่า เราสามารถเขียน php เพื่อให้ทำงานต่อ แม้ user จะออกไปแล้ว
ไม่ทราบว่า เอามาประยุกต์ใช้แทนกันได้ไหมครับ พี่วิน
คิดว่า น่าจะได้ นะ
|
 |
 |
 |
 |
Date :
2009-10-22 20:14:18 |
By :
yomaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขุดๆๆ คำตอบยังไม่ชัดเจน คับ อยากได้ ชัวร์ๆ คับ
|
 |
 |
 |
 |
Date :
2009-10-22 22:52:22 |
By :
chaynuwong |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้ามีคนแอบใช้ user เราแล้ว status มันก็เป็น 1
แล้วที่นี้ ณ เวลาเด๋วกันพอเราจะเข้าใช้งานเราก็ใช้งานไม่ได้สิครับ
|
 |
 |
 |
 |
Date :
2010-04-05 17:25:15 |
By :
อยากขี้เหล่ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่ม เวลา login เป็น เวลาปจุบัน ครับ where ผู้ใช้งาน=ผู้ใช้งานขณะนี้
|
 |
 |
 |
 |
Date :
2010-06-08 14:12:25 |
By :
deawx |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าใน asp หรือ .net จะมี event ของ global.asa หรือ global.asax ในการความคุม Event ตรงนี้อยู่ครับ ซึ่งจะง่ายกว่า php
|
 |
 |
 |
 |
Date :
2010-06-09 06:40:06 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แบ่งเป็น 2 เงื่อนไขน่ะครับ
แทรกไว้ในหน้า Login ก่อนคำสั่งอื่น ๆ เป็นไปได้ 2 กรณีคือ
- ถูก run โดยผู้ใช้คนอื่นๆ ที่กำลังคลิกหน้านั้น ๆ อยู่
- ต่อให้ไม่มีคนรัน แต่เมื่อคุณกลับมา Login อีกครั้ง script นี้ก็จะถูกทำงานเป็นคำสั่งแรกอยู่แล้ว
|
 |
 |
 |
 |
Date :
2010-06-09 08:46:18 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กกำลังหาพอดี ขอบคุณมากๆค่ะ
|
 |
 |
 |
 |
Date :
2010-06-09 08:58:11 |
By :
amster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ออเขาจัยแล้วครับเดียวขอนำไปลองก่อนครับ
|
 |
 |
 |
 |
Date :
2010-06-09 09:51:26 |
By :
aimoomoo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พี่วินครับ ผมกำลังศึกษาและทำเรื่องเกี่ยวกับ login อยู่พอดีเลยครับ รบกวนพี่วิน ทำตัวอย่างให้ดูหน่อยได้ไหมครับ ผมเพิ่งหัดเขียนครับ เลยไม่ค่อยจะเข้าใจหลักการเท่าไรครับ อยากจะดูตัวอย่างและลองศึกษาดูครับ
|
 |
 |
 |
 |
Date :
2010-12-01 14:06:39 |
By :
TT |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต้องเขียน session เพิ่มเติมหรือเปล่าคับ มีตัวอย่างการเขียนหรือเปล่าคับ
|
 |
 |
 |
 |
Date :
2011-02-28 13:39:22 |
By :
โปแกรมมั่ว |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้า ถ้า time น้อยกว่า session นั้นจะถูกลบทิ้งครับ ไม่มีปัญหา
|
 |
 |
 |
 |
Date :
2011-09-09 09:27:29 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม้ต้องครับ มันลบทั้งหมดที่ session หมดอายุครับ
|
 |
 |
 |
 |
Date :
2011-09-09 09:40:54 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ๋อครับ ผมเข้าใจหลักการละ ขอบคุณมากครับพี่วิน
|
 |
 |
 |
 |
Date :
2011-09-09 09:44:47 |
By :
noppawut |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เห็นด้วยทุกประการ 555
|
 |
 |
 |
 |
Date :
2011-09-09 11:24:53 |
By :
taomasaba |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณค่ะ กำลังหาอยู่ค่ะ
|
 |
 |
 |
 |
Date :
2012-02-27 13:29:15 |
By :
bb |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
     ทดสอบแล้วครับผ่านครับใช้ได้ครับ
|
 |
 |
 |
 |
Date :
2012-03-03 23:48:00 |
By :
jojo hitman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โค๊ดที่บอกมาทั้งหมดเขียนไว้ในหน้า update_login.php หรอคะพี่วิน และไฟล์ update_logout.php หรือคะ หรือเขียนไว้หน้า login.php และ logout.php เลยค่ะ
|
 |
 |
 |
 |
Date :
2012-07-09 16:29:51 |
By :
bangkok_2012 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยากได้แบบ ASP มีบ้างไหมอ่ะครับผม
แล้วแบบนี้ทำยังไงอ่ะครับผม
"ถ้าใน asp หรือ .net จะมี event ของ global.asa หรือ global.asax ในการความคุม Event ตรงนี้อยู่ครับ ซึ่งจะง่ายกว่า php"
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2012-09-30 03:59:32 |
By :
oreojung |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณพี่ๆทุกคนครับกำลังหาอยู่พอดี
|
 |
 |
 |
 |
Date :
2013-04-19 12:01:23 |
By :
nana |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันยังไม่กระจ่างเลยค่ะ ยังงงว่าตกลงโค้ด
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อยากทราบว่าแล้วเมื่อเขาปิด window ไปเลย จะเขียนโค้ดยังไงเพื่อแก้ค่าที่ status ให้เป็น 0 ล่ะคะ ใครรู้ช่วยบอกที ฮึ ฮึ 
|
 |
 |
 |
 |
Date :
2013-04-22 16:34:44 |
By :
aun aun |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากคะ 
|
ประวัติการแก้ไข 2013-08-22 13:24:29
 |
 |
 |
 |
Date :
2013-08-22 12:01:09 |
By :
vongole |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แนวคิดเยี่ยมมาก
|
 |
 |
 |
 |
Date :
2013-08-22 12:42:09 |
By :
อ้อม |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ 
ผมเอาไปผูกกับ ip อีกที คนปิดหน้าต่างลืม logout จะได้ไม่ต้องรอ 20 นาที
|
 |
 |
 |
 |
Date :
2013-08-23 15:20:34 |
By :
เมว |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอโค้ดแบบเต็มหน่อยครับ
ผมไม่เข้าใจ
ปล. มือใหม่หัดเขียน PHP
|
 |
 |
 |
 |
Date :
2013-11-30 07:33:06 |
By :
Brokenza |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สงสัยเพิ่งซื้อจอบมาใหม่ ขุดกันมันส์เลย ฮ่า ๆ ๆ
|
 |
 |
 |
 |
Date :
2013-11-30 13:57:44 |
By :
จอบ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมอยาก ให้ อธิบายว่าเอาโค้ด ไปใส่ตรงไหนยังครับอ่ะครับพอดี กำลังศึกษา ไม่รู้เรื่องเท่าไหร่ครับ
และเราต้อง สร้างตารางดาต้าเบสยังไง
อยากได้ความละเอียดครับ
ส่วนมากไปดูที่ไหนมาก็ตอบเหมือนๆกันครับ
คนที่ไม่รู้ก็งงต่อไปอีกละ
คือผมไม่เก่งphp แต่ผมทำ VB ให้มันทำงานร่วมกับPHP อยู่ครับ
|
 |
 |
 |
 |
Date :
2014-04-21 21:25:13 |
By :
นักศึกษาของคุณ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
No.37 เยี่ยมมาก ต้องหาวิธีการแก้ไขต่อ ข้อนี้น่าจะเป็น bug ของโปรแกรม ผมยังหาวิธีไม่ได้ ถ้าทำได้แล้วจะนำมาแชร์ให้ทุกๆ ท่าน นะครับ
|
 |
 |
 |
 |
Date :
2014-05-06 11:16:59 |
By :
abass |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
การแก้ปัญหาของ #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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่มเติมอีกหน่อยครับ
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มีเวลาจัดซะหน่อย

PHP ทำระบบ Login และป้องกันการ ล็อกอิน ซ้ำซ้อนใน User เดียวกัน (MySQLi , Duplicate Session)
|
 |
 |
 |
 |
Date :
2014-10-07 13:02:13 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณคับ
|
 |
 |
 |
 |
Date :
2014-10-07 18:19:57 |
By :
esthook |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมลองรันแล้วติดปัญหา 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|