|
|
|
สอบถามปัญหาเกี่ยวกับ เวลาเข้า-ออกเว็บไซต์ครับติดตรงเวลาออกอย่างเดียว |
|
|
|
|
|
|
|
คือผมสร้างตารางเก็บ เวลาเข้า-ออก เมื่อมีการ login เข้าเว็บโดยจะเก็บเวลาไปเลื่อยแม้ว่า user ที่เข้ามาจะซ้ำกัน
ที่ทำได้ตอนนี้สามารถเพิ่มเวลาเข้าได้ตลอด
// ติดปัญหาตรงเวลาออกครับ เวลาออกมันไม่รู้ว่าจะ update ค่าตรง report_id ไหน
ตารางนี้ SESSION user_id มันจะซ้ำกันเมื่อ เข้า-ออกไปเลื่อยๆ มันเลยไม่รู้ว่า update ตรงไหน ตามรูปอะครับ
ผมไม่เข้าใจ ทำแบบลักไก่พอได้อยู่ แนะนำผมที่ครับ ไม่เข้าใจเลยพวก where , join , and เนี่ย
เวลาเข้า
Code
if($xx["status"] == "ADMIN")
{
$ip = $REMOTE_ADDR;
$datetime = date('d-m-Y H:i:s');
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("electical");
$strSQL = "insert into report_login
(report_timein,report_timeout,user_id)
values ('$datetime','-','".$_SESSION["user_id"]."')";
$objQuery = mysql_query($strSQL);
$strSQL1 = "UPDATE person_user SET user_ip='$ip',user_status='1'";
$strSQL1 .="WHERE user_id = '".$_SESSION["user_id"]."' ";
$objQuery1 = mysql_query($strSQL1);
mysql_close($objConnect);
header("location:admin/admin_page.php");
}
เวลาออก
Code
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("electical");
$datetime = date('d-m-Y H:i:s');
$strSQL = "UPDATE report_login
SET report_timeout ='$datetime'
WHERE report_id = '$id' and user_id = '".$_SESSION["user_id"]."' ";
$objQuery = mysql_query($strSQL);
$strSQL1 = "UPDATE person_user SET user_status='0'";
$strSQL1 .="WHERE user_id = '".$_SESSION["user_id"]."' ";
$objQuery1 = mysql_query($strSQL1);
mysql_close($objConnect);
อันนี้ผมลองทำแบบลักไก่มันบันทึกเวลาออกได้อยู่ คือ ดึงค่า report_id ล่าสุดในตารางมาเก็บไว้ในตัวแปร $id แล้วตอน update มันจะได้รู้ แต่พอคนเข้าหลายคน มัน update เวลาออกมั่ว เพราะ $id มันดึงค่าล่าสุดเท่านั้น
Code
<?
include('../connect/config.inc.php');
$sql = "select report_id from report_login order by report_id DESC";
$dbquery = mysql_db_query($dbname, $sql);
$result = mysql_fetch_array($dbquery);
$id = $result[report_id];
mysql_close();
?>
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("electical");
$datetime = date('d-m-Y H:i:s');
$strSQL = "UPDATE report_login SET report_timeout ='$datetime' WHERE report_id = '$id' and user_id = '".$_SESSION["user_id"]."' ";
$objQuery = mysql_query($strSQL);
$strSQL1 = "UPDATE person_user SET user_status='0'";
$strSQL1 .="WHERE user_id = '".$_SESSION["user_id"]."' ";
$objQuery1 = mysql_query($strSQL1);
mysql_close($objConnect);
ช่วยดูให้หน่อยนะครับ สับสนมากเลยตอนนี้
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2014-01-02 04:21:24
|
|
|
|
|
Date :
2014-01-02 04:05:25 |
By :
jokerjoza555 |
View :
727 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
include('../connect/config.inc.php');
$sql = "select report_id from report_login order by report_id DESC";
$dbquery = mysql_db_query($dbname, $sql);
$result = mysql_fetch_array($dbquery);
$id = $result[report_id];
mysql_close();
?>
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("electical");
$datetime = date('d-m-Y H:i:s');
///////////////////////////////////////////////////////////////////// new update
$strSQL = "UPDATE report_login SET report_timeout ='$datetime' WHERE user_id = '".$_SESSION["user_id"]."' ORDER BY report_id DESC LIMIT 1 ";
////////////////////////////////////////////////////////////////////
$objQuery = mysql_query($strSQL);
$strSQL1 = "UPDATE person_user SET user_status='0'";
$strSQL1 .="WHERE user_id = '".$_SESSION["user_id"]."' ";
$objQuery1 = mysql_query($strSQL1);
mysql_close($objConnect);
อัพเดตเฉพาะค่า report_id ล่าสุดของ user ครับ
ลองดูนะครับว่าถูกหรือเปล่า :)
|
|
|
|
|
Date :
2014-01-02 05:10:03 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : num เมื่อวันที่ 2014-01-02 05:10:03
รายละเอียดของการตอบ ::
ได้แล้วครับขอบคุณมาก
อันนี้เผื่อใครเอาไปใช้ต่อ 555+
ตาราง person_user
CREATE TABLE `person_user` (
`user_id` int(5) unsigned zerofill NOT NULL auto_increment,
`user_user` varchar(20) collate utf8_unicode_ci NOT NULL,
`user_pass` varchar(20) collate utf8_unicode_ci NOT NULL,
`user_name` varchar(50) collate utf8_unicode_ci NOT NULL,
`user_last` varchar(50) collate utf8_unicode_ci NOT NULL,
`user_add` varchar(50) collate utf8_unicode_ci NOT NULL,
`user_tel` varchar(10) collate utf8_unicode_ci NOT NULL,
`user_allow` int(5) NOT NULL,
`user_status` int(5) NOT NULL,
`user_ip` varchar(100) collate utf8_unicode_ci NOT NULL,
`status` enum('ADMIN','USER') collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`user_id`),
KEY `user_user` (`user_user`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;
--
-- dump ตาราง `person_user`
--
INSERT INTO `person_user` VALUES (00001, 'admin', 'admin', 'admin', 'admin', '', '', 1, 0, '', 'ADMIN');
INSERT INTO `person_user` VALUES (00002, 'user', 'user', 'user', 'user', '', '', 1, 0, '127.0.0.1', 'USER');
ตาราง report_login
CREATE TABLE `report_login` (
`report_id` int(5) unsigned zerofill NOT NULL auto_increment,
`report_timein` varchar(30) collate utf8_unicode_ci NOT NULL,
`report_timeout` varchar(30) collate utf8_unicode_ci NOT NULL,
`user_id` int(5) unsigned zerofill NOT NULL,
PRIMARY KEY (`report_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=20 ;
--
-- dump ตาราง `report_login`
--
INSERT INTO `report_login` VALUES (00017, '02-01-2014 14:43:00', '02-01-2014 14:44:06', 00002);
Check_login.php
<?
session_start();
mysql_connect("localhost","root","root");
mysql_select_db("electical");
$sql = "SELECT * FROM person_user WHERE
user_user = '".($_POST['logusername'])."' and
user_pass = '".($_POST['logpassword'])."' ";
$result = mysql_query($sql);
$xx = mysql_fetch_array($result);
if(!$xx)
{
echo"<script language='JavaScript'>";
echo"alert('Username หรือ Password ไม่ถูกต้อง');";
echo"window.location='index.php';";
echo"</script>";
}
else
{
$_SESSION["user_id"] = $xx["user_id"];
$_SESSION["status"] = $xx["status"];
session_write_close();
if($xx["status"] == "ADMIN")
{
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("electical");
$strSQL1 = "UPDATE person_user SET user_ip='$ip',user_status='1'";
$strSQL1 .="WHERE user_id = '".$_SESSION["user_id"]."' ";
$objQuery1 = mysql_query($strSQL1);
mysql_close($objConnect);
header("location:admin/admin_page.php");
}
else if($xx["status"] == "USER")
{
$ip = $REMOTE_ADDR;
$datetime = date('d-m-Y H:i:s');
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("electical");
$strSQL = "insert into report_login (report_timein,report_timeout,user_id) values ('$datetime','-','".$_SESSION["user_id"]."')";
$objQuery = mysql_query($strSQL);
$strSQL1 = "UPDATE person_user SET user_ip='$ip',user_status='1'";
$strSQL1 .="WHERE user_id = '".$_SESSION["user_id"]."' ";
$objQuery1 = mysql_query($strSQL1);
mysql_close($objConnect);
header("location:user/user_page.php");
}
else
{
echo"<script language='JavaScript'>";
echo"alert('โปรดรอผู้ดูแลระบบอนุมัติผู้ใช้งาน');";
echo"window.location='index.php';";
echo"</script>";
}
}
mysql_close();
?>
<html>
<head>
<title></title>
<meta content='text/html;charset=UTF-8' http-equiv='content-type'>
</head>
<body>
</body>
</html>
logout.php
<?
session_start();
session_destroy();
?>
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("electical");
$datetime = date('d-m-Y H:i:s');
///////////////////////////////////////////////////////////////////// new update
$strSQL = "UPDATE report_login SET report_timeout ='$datetime' WHERE user_id = '".$_SESSION["user_id"]."' ORDER BY report_id DESC LIMIT 1 ";
////////////////////////////////////////////////////////////////////
$objQuery = mysql_query($strSQL);
$strSQL1 = "UPDATE person_user SET user_status='0' WHERE user_id = '".$_SESSION["user_id"]."' ";
$objQuery1 = mysql_query($strSQL1);
mysql_close($objConnect);
echo"<script language='JavaScript'>";
echo"alert('ออกจากระบบ');";
echo"window.location='../index.php';";
echo"</script>";
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body>
</body>
</html>
|
|
|
|
|
Date :
2014-01-02 14:53:32 |
By :
jokerjoza555 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|