Nieuw lid |
|
Ik ben gisteren en vrijdag een hele tijd bezig geweest met logintime updaten in mijn database via onkeydown()
door goede hulp hier is dat eindelijk gelukt...
nu update hij de tijd,
maar waar ik nu achter kom is dat hij nog gewoon uitlocht na 5 minuten login...
terwijl dit eigelijk niet hoort te kunnen odmat hij overnieuw moet gaan tellen...
ik denk dus dat ik ergens iets over het hoofd heb gezien,
als ik inlog wordt er functions.php geinclude,
ik zal deze even posten:
wat ik nu al gedaan heb is bij iedere toetsaanslag op bepaalde pagina's...
dat hij update uitvoert en de tijd van login naar nu zet...
maar het blijkt dus dat hij deze niet controleerd met de tijd...
ik denk dat jullie hier meer mee kunnen,
als je nog meer pagina's nodig hebt laat dat even weten:
functions.php
<?php
include('config.php');
function sqlsafe($data) {
$data = mysql_real_escape_string($data);
return $data;
}
// Make MySQL-database connection
@mysql_connect($server, $user,$pass) or die ("Can't connect to MySQL database server");
@mysql_select_db($database) or die("Can't find database.");
// Start here the login action, and make the random hash
if(($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['login'])) {
$selectleden = mysql_query("SELECT * FROM $ledentabel WHERE username = '".sqlsafe($_POST['username'])."' AND password = '".sqlsafe(md5($_POST['password']))."'");
if(mysql_num_rows($selectleden)) {
// Ingelogd
$ip=$_SERVER['REMOTE_ADDR'];
$hash = md5(uniqid(rand(), true));
$get_id = mysql_query("SELECT id FROM ".$ledentabel." WHERE username = '".sqlsafe($_POST['username'])."' AND password = '".sqlsafe(md5($_POST['password']))."'");
mysql_query("UPDATE leden SET active=1 WHERE username='".sqlsafe($_POST['username'])."'");
$fetch_id = mysql_fetch_assoc($get_id);
$insert_session = mysql_query("INSERT INTO sessions (id, userid, hash, logintime, ip) VALUES ('','".$fetch_id['id']."','".$hash."',NOW(), '".$ip."')");
// for debugging:
#$bericht = "Ingelogd met hash: ".$hash." En je hebt id-nummer:".$fetch_id['id'];
if ($insert_session) {
setcookie ("id", $fetch_id['id'],time()+$_POST['sessiontime']);
setcookie ("hash", $hash,time()+$_POST['sessiontime']);
header('location:menu.php');
} else {
echo "Fout in de query: ".mysql_error();
exit();
}
} else {
// Foute pass
$bericht = "<b>Je inloggegevens komen niet overeen met wat in de database staan.</b>";
}
}
// here is the function for the login-check
function checklogin() {
if (mysql_num_rows(mysql_query("SELECT userid, `hash` FROM `sessions` WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'"))) {
$return = TRUE;
} else {
$return = FALSE;
}
return $return;
}
// Data uit leden-tabel oproepen ($get_userdata['username'], $get_userdata['warnings']
$get_data_qry = mysql_query("SELECT userid, `hash` FROM `sessions` WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'");
$get_data = mysql_fetch_assoc($get_data_qry);
$get_userdata = mysql_fetch_assoc(mysql_query("SELECT * FROM $ledentabel WHERE id = '".$get_data['userid']."'"));
?>
<?php include('config.php'); function sqlsafe($data) { return $data; } // Make MySQL-database connection @mysql_connect($server, $user,$pass) or die ("Can't connect to MySQL database server"); // Start here the login action, and make the random hash if(($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['login'])) { $selectleden = mysql_query("SELECT * FROM $ledentabel WHERE username = '".sqlsafe ($_POST['username'])."' AND password = '".sqlsafe (md5($_POST['password']))."'"); // Ingelogd $ip=$_SERVER['REMOTE_ADDR']; $get_id = mysql_query("SELECT id FROM ".$ledentabel." WHERE username = '".sqlsafe ($_POST['username'])."' AND password = '".sqlsafe (md5($_POST['password']))."'"); mysql_query("UPDATE leden SET active=1 WHERE username='".sqlsafe ($_POST['username'])."'"); $insert_session = mysql_query("INSERT INTO sessions (id, userid, hash, logintime, ip) VALUES ('','".$fetch_id['id']."','".$hash."',NOW(), '".$ip."')"); // for debugging: #$bericht = "Ingelogd met hash: ".$hash." En je hebt id-nummer:".$fetch_id['id']; if ($insert_session) { } else { } } else { // Foute pass $bericht = "<b>Je inloggegevens komen niet overeen met wat in de database staan.</b>"; } } // here is the function for the login-check function checklogin() { if (mysql_num_rows(mysql_query("SELECT userid, `hash` FROM `sessions` WHERE `userid` = '".sqlsafe ($_COOKIE['id'])."' AND `hash` = '".sqlsafe ($_COOKIE['hash'])."'"))) { $return = TRUE; } else { $return = FALSE; } return $return; } // Data uit leden-tabel oproepen ($get_userdata['username'], $get_userdata['warnings'] $get_data_qry = mysql_query("SELECT userid, `hash` FROM `sessions` WHERE `userid` = '".sqlsafe ($_COOKIE['id'])."' AND `hash` = '".sqlsafe ($_COOKIE['hash'])."'"); ?>
ik zie hem in dat script dus alleen bij inloggen een sessiontime meegeven,
deze wordt ingesteld op login pagina 5 min 10 min 15 min etc...
dit is dat update script:
updatetime.php
<?php
include ("gegevens.php");
include "functions.php";
$id = $get_userdata['id'];
mysql_query("UPDATE sessions SET logintime = NOW() WHERE userid = ".$get_userdata['id']." ")
?>
<?php include ("gegevens.php"); include "functions.php"; $id = $get_userdata['id']; mysql_query("UPDATE sessions SET logintime = NOW() WHERE userid = ".$get_userdata['id']." ") ?>
|