Session Problem

Hi ich hab meinen Counter auf session umgebaut aber leider kann ich ihn (die gerade user anzeige) mit F5 in die höhe schießen woran liegt das hier der code(ausschnitt)

$loescheuser = mysql_query("DELETE FROM $jetztonline WHERE DATE < $countflag - $offline"); // Den User löschen wenn er eine bestimmte zeit offline war

PHP:
$query = "SELECT idnr FROM $jetztonline WHERE idnr='$idnr'"; 
$result = mysql_query($query); 
$check = mysql_fetch_array($result); 
if (!$check["idnr"]) 
{

$neuuser = mysql_query("INSERT INTO $jetztonline ( DATE, idnr) VALUES ('$countflag', '$idnr')"); 

}
$viele = mysql_query("SELECT count(*) as total FROM $jetztonline"); 

$anzahl = mysql_fetch_array($viele); 

 echo "gerade : $anzahl[total]";

Die $idnr hat als Inhalt session_id
Ich hab auch zum Anfang eine session aufgemacht!
Weiß jemand voran das liegen könnte?

Mfg
MajorWindbeutel
 
Hi!
Bin nicht sicher aber kann das daran liegen, daß er bei (!$check["idnr"]) das idnr nicht kennt und damit immer einen neuen User anlegt?
Versuchs doch mal mit $check[0]

Um assoziative Arrays (mit Strings als Indices) zu verwenden gilt folgende Syntax:
$array['string']="bla";

cu
 
Wenn idnr eine Spalte der Tabelle in der Datenbank ist, dann wird er sehr wohl $check['idnr'] kennen...

Zu beachten wäre folgendes:
1. besitzt die Variable $idnr wirklich die session_id ? (mal per echo ausgeben oder so)
2. Du kannst deine IF-Abfrage folgendermaßen umbauen (vielleicht bringt das was):
PHP:
$query = "SELECT idnr FROM $jetztonline WHERE idnr='$idnr'"; 
$result = mysql_query($query); 

if (mysql_num_rows($result)<1) { 

    $neuuser = mysql_query("INSERT INTO $jetztonline ( DATE, idnr) VALUES ('$countflag', '$idnr')"); 

} 

$viele = mysql_query("SELECT count(*) as total FROM $jetztonline"); 

$anzahl = mysql_fetch_array($viele); 

echo "gerade : $anzahl[total]";
3. du solltest vielleicht auch das Datum in der Tabelle ändern, wenn ein User immer noch auf der Seite ist

ok, mehr fällt mir im Moment jetz auch nicht zu ein.
 
...übergibst du die Session dann per URL ?
wenn nicht, dann ändere deine Links etc. so in etwa um:
PHP:
<a href="seite.php?<?php echo session_name() . '=' . session_id(); ?>">

//glaube das geht auch:
<a href="seite.php?<?=SID ?>">
 
Hmm ok werds mal probieren hab nämlich keine links auf meiner seite hab nur Spass am programmieren also kann ich es nicht mit zwei seiten lösen?

So sieht es im augenblick aus:

index.php

session_start()

include(counter.php)
 
SO ich habs gelöst (hoff ich zumindestens) es wurde von mir und meinem Freund getestet und er erhöht sich nicht mehr ist aber glaube ich nicht so gut was ich da verzapft hab hier der code:

PHP:
<?php
header("Location: xxx.php?=SID");
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
include("xxx.php");
?>

</body>
</html>

xxx.php ist der Counter mir fiel grad kein anderer Name ein
Oder fällt euch ne bessere Lösung ein?
 
Zurück