Ali-23
چهارشنبه 30 اردیبهشت 1388, 20:04 عصر
»ن یک مشکلی کوچیک دارد اون هم این است که شناسایی کنم هم زمان 2 نفر نتوانند با یک اکانت Login کنند اما مشکل سر این موضوع نیست یک field درست کردن برای هر کاربر که وضعیت انلاین بودن رو به صورت 1 انلاین و صفر آفلاین ثبت می کنه .
هنگامی که کاربر وارد سایت میشه یه query ران میشه وضعیت 1 میشه . هنگامی که روی لینک Logout کلیک کند یه query ران میشه 0 می کنه وضعیت آنلاین رو .
اما مشکل این که اگر کاربر لینک خروج رو نزد و پنجره رو بست چی ؟!!! اون همین شکلی 1 می مونه دیگه نمی تونه وارد شه .
و ازکدهای زیر استفاده کردم . ولی چک کردن چند بار پنجره رو بستم . بازم در چند ساعت بعد هیچ فرقی نمی کند .
من درصفحه ورود :
session_start();
$start=time();
$_SESSION['time_start']=$start;
در صفحه اصلی :
$end=time();
include("start_timer.php");
include("end_timer.php");
Start_timer
<?php
$start=$_SESSION['time_start'];
$ItemStartDate=$start."<br>";
$ItemEndDate = $end."<br>";
// $Today = time();
$TimeLeft = $ItemEndDate - $ItemStartDate;
//$TimeLeft = $ItemEndDate - $ItemStartDate;
if($TimeLeft > 0)
{
$ADayInSecs = 24 * 60 * 60;
$Days = $TimeLeft / $ADayInSecs;
$Days = intval($Days);
$TimeLeft = $TimeLeft - ($Days * $ADayInSecs);
$Hours = $TimeLeft / (60 * 60);
$Hours = intval($Hours);
$TimeLeft = $TimeLeft - ($Hours * 60 * 60);
$Minutes = $TimeLeft / 60;
$Minutes = intval($Minutes);
$TimeLeft = $TimeLeft - ($Minutes * 60);
$Seconds = $TimeLeft;
$Seconds = intval($Seconds);
$TimeLeft = $TimeLeft - ($Seconds / 60 * 60 );
$MilliSeconds = $TimeLeft;
}
?>
End_timer
<?php
$Seconds." Seconds " ;
$time_out=5;
if($Minutes<$time_out){
$_SESSION['time_start']=$end;
}else{
include("logout.php");
}
?>
میشه بگید کد بالا چه مشکلی دارد یا حداقل اینکه وقتی که کاربر به طور کامل پنجره رو بست session هاش قطع شد . چه شکلی بشه مثلا بعد 5 دقیقه اتوماتیک سیستم وضعیت آنلاین رو 0 کند .
هنگامی که کاربر وارد سایت میشه یه query ران میشه وضعیت 1 میشه . هنگامی که روی لینک Logout کلیک کند یه query ران میشه 0 می کنه وضعیت آنلاین رو .
اما مشکل این که اگر کاربر لینک خروج رو نزد و پنجره رو بست چی ؟!!! اون همین شکلی 1 می مونه دیگه نمی تونه وارد شه .
و ازکدهای زیر استفاده کردم . ولی چک کردن چند بار پنجره رو بستم . بازم در چند ساعت بعد هیچ فرقی نمی کند .
من درصفحه ورود :
session_start();
$start=time();
$_SESSION['time_start']=$start;
در صفحه اصلی :
$end=time();
include("start_timer.php");
include("end_timer.php");
Start_timer
<?php
$start=$_SESSION['time_start'];
$ItemStartDate=$start."<br>";
$ItemEndDate = $end."<br>";
// $Today = time();
$TimeLeft = $ItemEndDate - $ItemStartDate;
//$TimeLeft = $ItemEndDate - $ItemStartDate;
if($TimeLeft > 0)
{
$ADayInSecs = 24 * 60 * 60;
$Days = $TimeLeft / $ADayInSecs;
$Days = intval($Days);
$TimeLeft = $TimeLeft - ($Days * $ADayInSecs);
$Hours = $TimeLeft / (60 * 60);
$Hours = intval($Hours);
$TimeLeft = $TimeLeft - ($Hours * 60 * 60);
$Minutes = $TimeLeft / 60;
$Minutes = intval($Minutes);
$TimeLeft = $TimeLeft - ($Minutes * 60);
$Seconds = $TimeLeft;
$Seconds = intval($Seconds);
$TimeLeft = $TimeLeft - ($Seconds / 60 * 60 );
$MilliSeconds = $TimeLeft;
}
?>
End_timer
<?php
$Seconds." Seconds " ;
$time_out=5;
if($Minutes<$time_out){
$_SESSION['time_start']=$end;
}else{
include("logout.php");
}
?>
میشه بگید کد بالا چه مشکلی دارد یا حداقل اینکه وقتی که کاربر به طور کامل پنجره رو بست session هاش قطع شد . چه شکلی بشه مثلا بعد 5 دقیقه اتوماتیک سیستم وضعیت آنلاین رو 0 کند .