Goeiemiddag!
Ik heb wat problemen met een script waar ik zo niet echt de oorzaak van zie... In het script vraag ik om $ip te vullen met $_SERVER['REMOTE_ADDR'], maar dat doet 'ie niet. Hierdoor vult de database zich ook niet, en zal check.php je direct weer uitloggen.
login.php
check.php
Misschien kan een van jullie het probleem zien?
Ik heb wat problemen met een script waar ik zo niet echt de oorzaak van zie... In het script vraag ik om $ip te vullen met $_SERVER['REMOTE_ADDR'], maar dat doet 'ie niet. Hierdoor vult de database zich ook niet, en zal check.php je direct weer uitloggen.
login.php
PHP:
<?php
$showform = TRUE;
// Controleer of de bezoeker is ingelogd of niet
if(!isset($_SESSION['id'])) {
// Controleer of er een formulier is verstuurd
if($_SERVER['REQUEST_METHOD'] == 'POST' || isset($_POST['submit'])) {
// Controleer of alle velden zijn meegestuurd
$errors = array();
if(empty($_POST['naam'])) {
$errors[] = 'Je bent vergeten je naam in te vullen!';
}
if(empty($_POST['naam'])) {
$errors[] = 'Je bent vergeten je wachtwoord in te vullen!';
}
if(count($errors) === 0) {
// Verzamel alle nodige gegevens
$gebruikersnaam = mysql_real_escape_string(trim($_POST['gebruikersnaam']));
$wachtwoord = mysql_real_escape_string(trim(hash('sha512', $_POST['wachtwoord'])));
// Controleer gebruikersnaam en wachtwoord combinatie
$sql = mysql_query('SELECT * FROM users WHERE gebruikersnaam="'.$gebruikersnaam.'" AND wachtwoord="'.$wachtwoord.'"');
if(mysql_num_rows($sql) == 1) {
// Verwerk resultaten
$row = mysql_fetch_assoc($sql);
// Verzamel echte gegevens
$gebruikersnaam = $row['gebruikersnaam'];
$id = $row['id'];
$habbonaam = $row['habbonaam'];
$level = $row['level'];
$ip = $_SERVER['REMOTE_ADDR']; // // // // // // PROBLEEM HIER
$lastlogin = date('d-m-Y H:i:s');
// Start sessie in database
mysql_query('INSERT INTO sessions (userid, ip, tijd) VALUES ("'.$id.'", "'.$ip.'", NOW())');
// Update user data
mysql_query('UPDATE users SET lastlogin="'.$lastlogin.'", karma=karma+1 WHERE gebruikersnaam="'.mysql_real_escape_string($gebruikersnaam).'"');
// Controleer of gebruiker clublid is
$sql = mysql_query('SELECT * FROM clublid WHERE datum < CURRENT_DATE - INTERVAL 30 DAY AND id='.$id.'');
if(mysql_num_rows($sql) == 1) {
mysql_query('DELETE FROM clublid WHERE id='.$id.'');
mysql_query('UPDATE leden SET level=1 WHERE id='.$id.'');
}
// Maak sessie variabelen aan
$_SESSION['id'] = $id;
$_SESSION['naam'] = $gebruikersnaam;
$_SESSION['habbonaam'] = $habbonaam;
$_SESSION['ip'] = $ip;
if($level == 8) {
$_SESSION['administrator'] = 1;
}
if($level == 1) {
$_SESSION['lid'] = 1;
}
// Inloggen succesvol, dus formulier verbergen
$showform = FALSE;
// Inloggen succesvol, dus we gaan terug naar home.php
header('Location: home.php');
} else {
$errors[] = 'Gebruikersnaam/wachtwoord klopt niet!';
}
}
// Fouten laten zien
if(count($errors) != 0) {
echo '<ol>';
foreach($errors as $error) {
echo '<li>'.$error.'</li>';
}
echo '</ol><br />';
$showform = TRUE;
}
}
} else {
echo 'In ons systeem sta je nog als aangemeld, log uit om verder te gaan!';
$showform = FALSE;
}
if($showform) {
?>
<img src="/v3/images/images/dino.gif" align="right" alt="" />
<form method="POST">
Gebruikersnaam:<br />
<input style="width: 140px;" type="text" name="naam" />
<br /><br />
Wachtwoord:<br />
<input style="width: 140px;" type="password" name="wachtwoord" />
<br />
<font color="red">Gebruik niet je Habbo wachtwoord!</font>
<br /><br />
<input type="submit" name="submit" value="Inloggen" />
</form>
<?php
}
?>
check.php
PHP:
<?php
if(isset($_SESSION['id'])) {
$sql = mysql_query('SELECT * FROM sessions WHERE userid="'.$_SESSION['id'].'" AND ip="'.$_SERVER['REMOTE_ADDR'].'" AND valid="TRUE"');
if(mysql_num_rows($sql) == 1) {
$row = mysql_fetch_assoc($sql);
if($_SERVER['REMOTE_ADDR'] == $row['ip'] && $_SERVER['REMOTE_ADDR'] == $_SESSION['ip'] && $row['ip'] == $_SESSION['ip']) {
mysql_query('UPDATE sessions SET tijd="'.time().'" WHERE userid="'.$_SESSION['id'].'" AND ip="'.$_SERVER['REMOTE_ADDR'].'" AND valid="TRUE"');
} else {
mysql_query('UPDATE sessions SET valid="FALSE" WHERE userid="'.$_SESSION['id'].'" AND ip="'.$_SERVER['REMOTE_ADDR'].'" AND valid="TRUE"');
$_SESSION = array();
session_destroy();
}
} else {
mysql_query('UPDATE sessions SET valid="FALSE" WHERE userid="'.$_SESSION['id'].'" OR ip="'.$_SERVER['REMOTE_ADDR'].'" AND valid="TRUE"');
$_SESSION = array();
session_destroy();
}
}
?>
Misschien kan een van jullie het probleem zien?