Hallo!
ich habe Dein Script kurz überflogen und mir sind da spontan zwei Fragen eingefallen:
a) Woher kommt $sid und wo wird er bestückt?
Bei der Abfrage der Benutzerdaten (ID, Username und Passwort) habe ich eine weitere Verknüpfung zur Tabelle sessions eingebunden. Dort soll die ID aus der Tabelle benutzer mit der userid gleichgesetzt werden.
Wies sieht die Abfrage aus und wie hast Du das "verbunden"?
... $abfrage = "UPDATE sessions SET userid ='$id' WHERE sid = '$sid'"; ...
in $sid steht nicht automatisch die SessionID, wofür verwendest Du die Tabelle "Sessions"? Die Sessiondaten werden standardmmäßig automatisch in Dateien gespeichert, aber darum mußt Du Dich nicht kümmern, das ist ja gerade das gute an Sessions! Ich würde vielelicht lieber die UserID als Variable in der Session speichern.
Jeder weitere Link soll dann mit der $sid aus der Tabelle sessions verbunden werden.
???
Was meisnt Du diesmal mit "verbunden werden"? In der Standardeinstellung wird nachdem die Session mit session_start() gestartet wurde an jeden Link die SessionID als Parameter angehängt, der Sessionname ist standardmäßt $PHPSESSID
b) Warum nutzt Du einen Refresh und keinen header()
Mit Header() hab ichs probiert, allerdings kam dann immer wieder als Fehlermeldung zurück, dass die Header-Info bereits übertragen wurde und nicht mehr übertragen werden kann (doppelt). Mit dem Refresh hats dann aber geklappt. Ich weiß aber eigentl. auch nicht, warum der Header include nicht bei dem Skript geht ?!
Vor dem Header darf kein Ausgabe wie echo(), print() oder sowas erfolgen.
In der Fehlermeldung sollte genau gestanden haben, wo bereits eine Ausgabe erfolgt ist.
Viele Grüße
Andreas