Ik word automatisch uitgelogd nadat ik op een pagina ga.

Hier is de code van de pagina.

<?php
/* Errors */
error_reporting(E_ALL);

/* Configuratie includen */
include('configuratie.php');
include('db.php');
/* usercheck */
if(userCheck())
{
/* Query 1 uitvoeren */
$geld1 =
"
SELECT
geld
FROM
gebruikers
WHERE
hash = '".mysql_real_escape_string($_SESSION['sig'])."'
";
/* Resultaat van de query */
$geld = mysql_query($geld1);
/* Kijken of de query is gelukt */
if(!$geld)
{
/* Fout in query */
echo 'Er is een fout met de update query.';
}
else
{
/* Query succesvol uitgevoerd. */
echo 'De bank heeft nagekeken of je genoeg geld hebt. ';

}


$geld1 = mysql_fetch_array($geld);
if($geld < 20 )
{
/* Query uitvoeren */
$Query =
"
UPDATE
gebruikers
SET
huis = huis+1
WHERE
hash = '".mysql_real_escape_string($_SESSION['sig'])."'
";

/* Resultaat van de query */
$Result = mysql_query($Query);

/* Kijken of de query is gelukt */
if(!$Result)
{
/* Fout in query */
echo 'Er is een fout met de update query.';
}
else
{
/* Query succesvol uitgevoerd. */
echo 'Update query is succesvol uitgevoerd.';
}
/* Query uitvoeren */
$Query =
"
UPDATE
gebruikers
SET
geld = geld-20
WHERE
hash = '".mysql_real_escape_string($_SESSION['sig'])."'
";

/* Resultaat van de query */
$Result = mysql_query($Query);

/* Kijken of de query is gelukt */
if(!$Result)
{
/* Fout in query */
echo 'Er is een fout met de update query.';
}
else
{
/* Query succesvol uitgevoerd. */
echo 'Je geld is besteed.';
}

}
else
{
echo 'Je hebt niet genoeg geld.';
}
}

else
{
/* Waarom niks ?????????? */
echo 'Je bent niet ingelogt.';
}

?>

Zo te zien heb je geen session_start() gebruikt.
lol schreef op 27.07.2009 14:47
Zo te zien heb je geen session_start() gebruikt.

Sowieso geen sessie.
Hij/zij gebruikt wel een sessie, maar declareert die niet, tenzij dit een include pagina is waar de sessie wel is gedeclareerd.
Maar je hebt wel gelijk, sessies declareren en session_start() gebruiken, daarnaast zou ik ook een fout afhandeling schrijven voor je queries.
Ik heb sessien_start() wel gebruikt.
Wat is en sessie declareren?
sessien_start() hoort te staan bovenaan elke pagina waar je naar kunt surfen. Ik zou dat, in dit geval, dus verwachten net onder error_reporting(E_ALL);
heb sessie[/n]n_start() gebruikt of sessi[b]on_start() ?

PS: het is ingelogd
filip schreef op 27.07.2009 14:56
Ik heb sessien_start() wel gebruikt.
Wat is en sessie declareren?


Echo eens $_SESSION['sig'] om te kijken of er wel wat in zit.
session_start()

En @lol dan komt er:

5904823176
filip schreef op 27.07.2009 17:54

En @lol dan komt er:

5904823176


En dat klopt of niet?

[Edit]
Welke sessie gebruik je om te checken of iemand is ingelogd of niet?
Want volgens mij is dat niet $_SESSION['sig'] of zie ik dat verkeerd?
[/Edit]
Ja dit klopt.
En dat zie je toch verkeerd
Hier is de functie usercheck ook even.

<?php
function userCheck()
{
if(!isset($_SESSION['sig']) || empty($_SESSION['sig']))
{
return false;
}
else
{
$query = @mysql_query("
SELECT
hash
FROM
gebruikers
WHERE
hash = '".$_SESSION['sig']."'
AND
ip = '".$_SERVER['REMOTE_ADDR']."'
");
if(!$query || !mysql_num_rows($query))
{
$_SESSION = array();
return false;
}
else
{
return true;
}
}
}
?>

Reageren