Więc tak, kombinowałem kombinowałem i coś nie liczy mi to poprawnie czasu chyba. Coś nie mogę się połapać gdzie robie błąd. Może ktoś wychwyci:
to wykonuje jak loguje użytkownika:
<?php
$_SESSION['logged_admin']=$id;
zalogowany_admin();
$active = true;
$logintime = date(\"U\"); $aktywny = \"UPDATE pracownicy SET aktywny = '\" . $active . \"', login_t = '\".$logintime.\"' WHERE id = '\" .$_SESSION['logged_admin'] . \"'\";
?>
to wykonuje w przypadku gdy ktoś kliknie wyloguj:
<?php
$active = 0;
$logouttime = date(\"U\"); $zapytanie_t = mysql_query (\"SELECT * FROM pracownicy WHERE id='$_SESSION[logged_admin]';\"); $login_time = $rekordzik['login_t'];
$staryczas = $rekordzik['czas'];
$roznica = $logouttime - $login_time + staryczas ;
$logout = \"UPDATE pracownicy SET aktywny = '\" . $active . \"', logout_t = '\" . $logouttime . \"', czas = '\".$roznica.\"' WHERE id = '\" .$_SESSION['logged_admin'] . \"'\";
unset($_SESSION['logged_admin']); }
?>
a to z kolei na początku strony mam wciśnięte:
<?php
if (isset($_SESSION['logged_admin'])){ $loggedid = $_SESSION['logged_admin'];
$pobranieakcji = mysql_query (\"SELECT * FROM pracownicy WHERE id='$_SESSION[logged_admin]';\"); $ostatino = $rekordakcja['ostatnia_akcja'];
$login_t = $rekordakcja['login_t'];
$old = $rekordakcja['czas'];
if ($ostatnio+300
< date(\"U\")){ $obliczony = $ostatnio - $login_t + $old;
$aktualizacja = \"UPDATE pracownicy SET czas = '\".$obliczony.\"' WHERE id = '\" .$_SESSION['logged_admin'] . \"'\";
$logintime = date(\"U\"); }
ZapiszAkcje($loggedid);
?>
funkcja ZapiszAkcje jest to funkcja, którą napisał @b4x
<?php
function ZapiszAkcje($user) {
mysql_query('UPDATE `pracownicy` SET `ostatnia_akcja` = date(\"U\") WHERE `id` = \"'.$user.'\"');
}
?>
Już za długo się chyba z tym męcze i nie potrafie sam wylapac bledu, widzi ktoś coś? Zdarza mi się tak, że czas raz jest mniejszy a raz większy ;/
Bożesz Ty mój! Teraz to czas zalogowania wychodzi mi ujemny a ja nie potrafie znaleźć błędu, proszę o pomoc. To akcje które wykonuje:
podczas logowania
<?php
$_SESSION['logged_admin']=$id;
zalogowany_admin();
$active = true;
$logintime = date(\"U\"); $aktywny = \"UPDATE pracownicy SET aktywny = '\" . $active . \"', login_t = '\".$logintime.\"' WHERE id = '\" .$_SESSION['logged_admin'] . \"'\";
?>
podczas wylogowania
<?php
if ($_GET['auth_admin']=='logout'){
$active = 0;
$logouttime = date(\"U\"); $zapytanie_t = mysql_query (\"SELECT * FROM pracownicy WHERE id='$_SESSION[logged_admin]';\"); $login_time = $rekordzik['login_t'];
$staryczas = $rekordzik['czas'];
$roznica = $logouttime-$login_time + $staryczas;
$logout = \"UPDATE pracownicy SET aktywny = '\" . $active . \"', logout_t = '\" . $logouttime . \"', czas = '\".$roznica.\"' WHERE id = '\" .$_SESSION['logged_admin'] . \"'\";
unset($_SESSION['logged_admin']); }
?>
a to na początku index'a
<?php
if (isset($_SESSION['logged_admin'])){ $loggedid = $_SESSION['logged_admin'];
$pobranieakcji = mysql_query (\"SELECT * FROM pracownicy WHERE id='$_SESSION[logged_admin]';\"); $ostatino = $rekordakcja['ostatnia_akcja'];
$login_tajm = $rekordakcja['login_t'];
$old = $rekordakcja['czas'];
if (($ostatnio+300
) < date(\"U\")){ $obliczony = $ostatnio - $login_tajm + $old;
$logintime = date(\"U\"); $aktualizacja = \"UPDATE pracownicy SET czas = '\".$obliczony.\"', login_t = '\" . $logintime . \"' WHERE id = '\" .$_SESSION['logged_admin'] . \"'\";
}
$dataakcji = date(\"U\"); $zapiszakcjeq = mysql_query('UPDATE `pracownicy` SET `ostatnia_akcja` = \"'.$dataakcji.'\" WHERE `id` = \"'.$loggedid.'\"');
include('modules/descriptions.php');
}
?>
O rany naprawde nie widzę tu błędu, zaczyna mieszać mi się to wszystko...