PHP beginner |
|
Ik maak gebruik van onderstaande code om te kijken welke/hoeveel gasten/leden er online zijn:
<?php
$sOnlineVerval = time()-300; // in secondes
// controleren af pagina is ge-include
if (end(explode("/",$_SERVER['PHP_SELF'])) == "online.inc.php")
{
header("Location: ./index.php");
exit();
}
$iIp = getenv("REMOTE_ADDR");
if ( $iIp == "" )
{
$iIp = getenv ( "HTTP_X_FORWARDED_FOR" );
}
if ( !isset ( $page_naam ) )
{
$page_naam = "";
}
if ( !isset ( $_SESSION['userid'] ) )
{
$userid = 0;
}
$time = time();
$sQuery = ("DELETE FROM online WHERE datum < '$sOnlineVerval'");
mysql_query ( $sQuery ) or die ("Er is een fout opgetreden: ".mysql_error());
if ( $_SESSION['ingelogd'] == 1)
{
$sql = mysql_query ( "SELECT * FROM online WHERE userid = ".$_SESSION['user_id'] );
$sql2 = "userid ='".$_SESSION['userid']."', ip='$iIp'";
$sql3 = "userid =".$_SESSION['userid'];
}
elseif ( $_SESSION['ingelogd'] == 0 )
{
$sql = mysql_query("SELECT * FROM online WHERE ip = '$iIp' AND userid = '0'");
$sql2 = "ip = '".$iIp."'";
$sql3 = "ip = '".$iIp."'";
}
if ( mysql_num_rows ( $sql ) == 0 )
{
$sReferer = $_SERVER['HTTP_REFERER'];
$sQueryInsert = mysql_query ( "INSERT INTO online SET $sql2, datum='$time', datum_start='$time', pagina='$page_naam', referer='$sReferer'" );
}
elseif ( mysql_num_rows ( $sql) != 0)
{
$sQueryUpdate = mysql_query ( "UPDATE online SET datum='$time', pagina='$page_naam' WHERE ".$sql3);
}
?>
<?php $sOnlineVerval = time()-300; // in secondes // controleren af pagina is ge-include if (end(explode("/",$_SERVER['PHP_SELF'])) == "online.inc.php") { header("Location: ./index.php"); } if ( $iIp == "" ) { $iIp = getenv ( "HTTP_X_FORWARDED_FOR" ); } if ( !isset ( $page_naam ) ) { $page_naam = ""; } if ( !isset ( $_SESSION['userid'] ) ) { $userid = 0; } $sQuery = ("DELETE FROM online WHERE datum < '$sOnlineVerval'"); if ( $_SESSION['ingelogd'] == 1) { $sql = mysql_query ( "SELECT * FROM online WHERE userid = ".$_SESSION['user_id'] ); $sql2 = "userid ='".$_SESSION['userid']."', ip='$iIp'"; $sql3 = "userid =".$_SESSION['userid']; } elseif ( $_SESSION['ingelogd'] == 0 ) { $sql = mysql_query("SELECT * FROM online WHERE ip = '$iIp' AND userid = '0'"); $sql2 = "ip = '".$iIp."'"; $sql3 = "ip = '".$iIp."'"; } { $sReferer = $_SERVER['HTTP_REFERER']; $sQueryInsert = mysql_query ( "INSERT INTO online SET $sql2, datum='$time', datum_start='$time', pagina='$page_naam', referer='$sReferer'" ); } { $sQueryUpdate = mysql_query ( "UPDATE online SET datum='$time', pagina='$page_naam' WHERE ".$sql3); } ?>
Nu gaat het goed als je niet bent ingelogd want dan geeft hij netjes weer hoeveel gasten er online zijn.
Maar wanneer ik inlog (dan is mijn user_id dus 1) dan blijft hij het aantal GASTEN maar optellen en verwijderd hij niks.
Fout is dus dat hij de hele tijd gasten +1 doet (wanneer ik op f5 klik) en ik er hoort er 1 bij leden te komen staan ipv bij gasten (omdat ik ben ingelogd)
Wat is hier fout aan?
edit
met error_reporting(E_ALL) geeft hij ook onderstaande fouten:
Notice: Undefined index: ingelogd in /var/www/s//HTML/inc/online.inc.php on line 33
Notice: Undefined index: ingelogd in /var/www/s//HTML/inc/online.inc.php on line 42
|