|
|
|
ขอคำแนะนำหน่อยครับ คือผมต้องการเช็ค เกี่ยวกับเครื่องคอมพิวเตอร์ที่ใช้ล็อคอิน ว่าเป็นเครื่องไหน สามารถเช็คได้ไหมครับ |
|
|
|
|
|
|
|
$_SERVER['REMOTE_ADDR']
|
|
|
|
|
Date :
2014-10-22 17:21:46 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$_SERVER['REMOTE_ADDR']
มันจะได้ไอพีเดียวกันทุกเครื่องเลยครับ
|
|
|
|
|
Date :
2014-10-22 18:03:51 |
By :
kimkim00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่มั้งครับ
ผมเรียกจาก โทรศัพท์ เข้าเครื่อง Server ใช้ wifi ซึ่งอยู่ในวงแนเดียวกัน
เรียกแบบนี้นะครับ 192.168.1.150/test/testremote.php
แสดง 192.168.1.36
และ 192.168.1.53
ตาม ip ของ โทรศัพท์ ครับ
ผมลอง โทรศัพท์ 2 เครื่องครับ
testremote.php
Code (PHP)
<?php
echo $_SERVER['REMOTE_ADDR'];
?>
|
ประวัติการแก้ไข 2014-10-22 18:28:26
|
|
|
|
Date :
2014-10-22 18:27:46 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่ทราบเหมือนกันว่าเป็นที่อะไร ที่ตัวฟอจูเกตหรือเปล่าก็ไม่รู้
แต่คอมทุกเครื่องในบริษัทผม ใช้ $_SERVER['REMOTE_ADDR']
แล้วได้ไอพีเดียวกันทั้งบริษัทเลยครับ
พอมีวิธีอื่นไหมครับ
|
|
|
|
|
Date :
2014-10-24 09:27:57 |
By :
kimkim00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คำสั่งเรียก ผ่าน browser หรือเปล่าครับ
และคำสั่งเรียก ใช้คำสั่งไหนเหรอครับ
อย่าของผม ใช้ chrome 191.168.1.150/test/testremote.php
ไม่ทราบว่าวิธีเรียกเหมือนกันไหม
|
|
|
|
|
Date :
2014-10-24 09:34:57 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ภาพตัวอย่าง จากสองเครื่อง
|
ประวัติการแก้ไข 2014-10-24 09:52:56
|
|
|
|
Date :
2014-10-24 09:47:52 |
By :
kimkim00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเรียกผ่าน www มันออกผา่น router ออกไป internet ด้านนอกครับ
จะได้ $_SERVER['REMOTE_ADDR'] เหมือนกันครับ
ต้องใช้ session cookie ในการกำหนดค่าเริ่มต้น ก่อนครับ
แบบ admin ต้องไปconnect แล้วเก็บค่า ต่างๆ ไว้อ้างอิงว่าเป็นเครื่องไหนก่อนครับ
คื่อแต่ละเครื่อง มันจะให้ session_id ต่างกันครับ
<?php
print_r($_SESSION);
?>
อยากทราบวัตถุประสงค์เพื่อจะแนะนำวิธีอื่นให้ครับ
|
|
|
|
|
Date :
2014-10-24 10:13:24 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปัญหาคือ
พนักงาน มีการล็อคอินหลายเครื่องด้วยรหัสเดียวกัน
แล้วเวลา ทำงาน รหัสเดียวกันพร้อมกันหลายเครื่องมันจะตีกันมั่วไปหมด
ผมเลยต้องหาวิธี ที่ทำให้เค้า ไม่สามารถ ใช้รหัสเดียวกันพร้อมกันหลายเครื่องได้อะครับ
|
ประวัติการแก้ไข 2014-10-24 10:23:12
|
|
|
|
Date :
2014-10-24 10:21:33 |
By :
kimkim00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
////////////////////////////////// register machine_id by cookie
/*
'CREATE TABLE IF NOT EXISTS `machine` '.
'( `id` int NOT NULL autoincrement , `description` text, PRIMARY KEY (`id`) )'
และเพิ่มฟีลด์ machine_id, timeconnect ใน tb_user
*/
if( isset($_COOKIE['machine_id'])){
$machine_id=$_COOKIE['machine_id'];
}else{
$mysql->query('insert into machine set description = \''.session_id().'\' ');
$machine_id=$mysql->insert_id;
}
setcookie('machine_id', $machine_id, strtotime('+ 30 days'));
///////////////////////////////////////////////////////////////
if( isset($_REQUEST['login']) ){
$rs=$mysql->query("select * from tb_user where user_nm='$username' and psw='$psw' ");
if($rs->num_rows){
$ro=$rs->fetch_assoc();
if( $machine_id != $ro['machine_id']){
if( $ro['timeconnect']<date('Y-m-d H:i:s', strtotime( '- 1 hours') )){ // time out 1 hours
$mysql->query(
' update tb_user '.
' set timeconnect=now(), machine_id = '. $machine_id .
' where user_id = '.$_SESSION['USER_ID']);
} else echo 'กำลัง ใช้งานที่เครื่องอื่นอยู่';
}else{
$_SESSION['USER_ID']=$ro['user_id'];
$mysql->query('update timeconnect=now() where user_id='.$ro['user_id'] );
}
}
}
//ทุกครั้งที่เปิดไฟล
if( $_SESSION['USER_ID']>''){
$msyql->query('update tb_user set timeconnect=now() where user_id='.$_SESSION['USER_ID']);
}
?>
|
ประวัติการแก้ไข 2014-10-24 13:58:22
|
|
|
|
Date :
2014-10-24 13:57:37 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|