Ciao,
sto cercando di implementare nel mio sito la possibilità di registrare l'ip e la data + ora dell'ultimo accesso da parte di un utente alla sua area privata..
per prima cosa ho una tabella chiamata users dove ho appunto i dati degli utenti salvati in campi nominati così:
idus, user, pasw, sezn, sezp, sezg
ho pensato di creare altri tre campi in questo modo:
`lstlogt` time NULL default NULL,
`lstlogd` date NULL default NULL,
`lstlogip` int(11) default NULL,
in modo da avere last login time, last login date e last login ip
idus, user, pasw, sezn, sezp, sezg, lstlogt, lstlogd, lstlogip
A questo punto nel form di connessione all'area privata ho pensato di passare al momento del corretto ingresso l'ora la data e l'ip nei rispettivi campi ma senza risultato piantondosi sull'update..
Codice PHP:
<form name="form" method="post" action="index.php">
<table>
<tr>
<?
$log = FALSE;
if ($_POST['entback'] <> "") :
$usr = $_POST['usr'];
$psw = $_POST['psw'];
$query = "SELECT * FROM users WHERE user = \"$usr\" and pasw = \"$psw\"";
$result = mysql_query($query);
$chk = mysql_num_rows($result);
$row = mysql_fetch_object($result);
mysql_close();
endif;
?>
<td <? if ($_POST['entback'] <> "" and $chk == 0) print"bgcolor=\"#CC0000\"";?>>
<?
if ($_POST['entback'] <> "") :
if ($chk == 0) :
?>
[b]PASSWORD ERRATA[/b]
<?
else :
$_SESSION['log'] = "ok";
$_SESSION['idu'] = $row->idus;
$_SESSION['last_login_time'] = $row->lstlogt;
$_SESSION['last_login_date'] = $row->lstlogd;
$_SESSION['last_ip'] = $row->lstlogip;
$return = $_SESSION['returnurl'];
if(!$return) {
$return = "back.php";
}
date_default_timezone_set("Europe/Rome");
$current_time = date("d-m-Y",time());
$current_date = date("l, F jS, Y");
$ip = $_SERVER['REMOTE_ADDR'];
$aggiorna_log = "UPDATE users SET lstlogt = \"$current_time\", lstlogd = \"$current_date\", lstlogip = \"$ip\" WHERE user = \"$usr\" AND pasw = \"$psw\"";
@MYSQL_QUERY($aggiorna_log) or die("Non è possibile aggiornare!");
header("Location: $return");
exit();
sleep(2);
?>
<?
endif;
endif;
?>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>Username</td>
<td>
<input name="usr" type="text" />
</td>
</tr>
<tr>
<td>Password</td>
<td>
<input name="psw" type="password" />
</td>
</tr>
</table>
<input name="entback" type="submit" value="Submit" />
</td>
</tr>
</table>
</form>
Come posso fare?
E' questa la soluzione giusta per ottenere quello che voglio?
Dimenticavo..
una volta entrato vorrei visualizzare i vari dati in questo modo:
Codice PHP:
<div id="dashboard">
Hi [b]<? print $row->user; ?>[/b],
<? print strftime('%c'); ?>
<?
$last_login_date = $_SESSION['last_login_date'];
if($last_login_date = date("l, F jS, Y")) {
$last_login_date = "Today";
}
$last_login_time = $_SESSION['last_login_time'];
if($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']) {
$last_login_ip = "this IP address (".$_SERVER['REMOTE_ADDR'].")";
}
else {
$last_login_ip = "IP address ".$_SESSION['last_ip'];
}
echo "Last account login: ".$last_login_date." at " . $last_login_time . " from " . $last_login_ip . ".";
?>
[url="../../index.php"]Homepage[/url]|[url="logout.php"]Logout[/url]</p>
</div>