Ik probeer om in de database de datum+tijd dat iemand heeft ingelogd, in een ander veld in de database vast te leggen voordat de datum+tijd wordt opgeslagen als NOW().
Hier is de code:
<?
$sql = "SELECT lastactive FROM '".$db_tbl."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
$vorigeactief = ($row->lastactive);
$sql = "UPDATE `".$db_tbl."` SET vorigeactief = '".$vorigeactief."', lastactive = NOW() WHERE id = '".$_SESSION['user_id']."'";
mysql_query($sql);
?>
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in safe.php on line 15
Notice: Trying to get property of non-object in safe.php on line 16
INSERT INTO gebruikers (vorigeactief, lastactive) VALUES ('', NOW())
<?php
###################################
## PHPMYLOGON: A LOGIN SYSTEM ##
## (c) 2006 Jorik Berkepas ##
## Under the GNU GPL license ##
## [email protected] ##
###################################
// Inlucde this file (safe.php) to let a page only access by members/admins
error_reporting(E_ALL);
ini_set('display_errors',1);
include_once("config.php");
include_once("lang/lang_".$lang.".php");
include_once("connect.php");
if(isset($_SESSION['user_id']))
{
// Login ok, get lastactive, then update last active and ip
// we gaan laats online setten
$sql = "UPDATE ".
$db_tbl.
" SET
vorigeactief = lastactive,
lastactive=NOW()
WHERE
id = '". $_SESSION['user_id']."'";
$result = mysql_query($sql) or die(mysql_error());
// kijken of de sql gelukt is
if(!mysql_affected_rows()==1){
// bijvoorbeeld mail aan de beheerder
}
}
elseif(isset($_COOKIE['cookie_id'])) { // blijkbaar is de user aan het inloggen
// codehieronder vind ik eng overigens
$sql = "SELECT cookie_pass,state FROM `".$db_tbl."` WHERE id = '".$_COOKIE['cookie_id']."'";
$result = mysql_query($sql);
while($gegevens = mysql_fetch_array($result)){
$dbpass = htmlspecialchars($gegevens['cookie_pass']);
$dbstatus = htmlspecialchars($gegevens['state']);
if($dbpass == $_COOKIE['cookie_pass']){
$_SESSION['user_id'] = $_COOKIE['cookie_id'];
$_SESSION['user_status'] = $dbstatus;
}
else {
setcookie("cookie_id", "", time() - 3600);
setcookie("cookie_pass", "", time() - 3600);
header("Location:index.php?goto=login");
}
}// while afsluiten
}
else
{
header("Location:index.php?goto=login");
}
?>
Krijg je dan niet het probleen dat eerst de laatst ingelogde datum overschreven wordt door now(), waardoor de $vorigeactief gelijk wordt aan de lastactive?
maw als je dan kijkt wanneer je voor het laatst hebt ingelogd, zie je dat dat een halve minuut geleden is..?
goede vraag maar aangezien het hier om insert gaat en je de variabele lastactive al gefetched hebt geloof ik niet dat dit een probleem zal geven...testen is de boodschap ;)
<?
<?php
session_start();
ob_start();
// MySQL settings
$db_user = "root"; // MySQL username
$db_pass = "****"; // MySQL password
$db_host = "localhost"; // MySQL host, mostly localhost
$db_db = "login"; // MySQL database
$db_tbl = "gebruikers"; // MySQL table
// Settings
$site_url = "http://www.mijnsite.nl/"; // URL to PhpMyLogon, / at end
$site_mail = "[email protected]"; // Mail address website
$site_name = "mijnsite.nl"; // Website name
$activate = "TRUE"; // E-mail validation at registration, TRUE or FALSE
$afterlogin = "index.php"; // Page to go to after login
$lang = "nl"; // Language of PhpMyLogon
?>
?>