- Sporadisch tritt die Fehlermeldung "Notice: Object of class mysqli_result could not be converted to int in [...]index.php on line 85" auf. In dieser Zeile steht nichts außer "session_start();".
Speicherst Du irgendwo MySQL-Result-Objekte in der Session (auch indirekt innerhalb von anderen Objekten)? Wenn ja: Das funktioniert so nicht, da MySQL-Result-Objekte nicht serialisiert und erfolgreich wieder deserialisiert werden können.
Nein, tue ich nicht.
Wenn's das nicht ist und Du das Problem isolieren willst: Definiere Dir per set_error_handler einen eigenen Error-Handler. Sobald eben diese Notice kommt (Du kannst ja Dateiname und Zeile überprüfen und ansonsten nur die Meldung selbst wieder ausgeben) liest Du Dir aus $_REQUEST die Session-ID ein (
$sessid = $_REQUEST[session_name ()];
- session_id () wird evtl. nicht funktionieren, da session_start () noch nicht abgeschlossen ist) und liest Dir manuell aus der DB die serialisierten Daten zu der zugehörigen Session aus und speicherst sie z.B. in einem Logfile oder gibst sie aus. Dann schaust Du Dir diese serialisierten Daten an und überlegst, woran das liegen könnte...
Das habe ich gemacht, bin aber leider nicht weitergekommen. Der Fehler tritt bei Leuten auf, die sich auf der Website einloggen, als auch bei nicht eingeloggten Besuchern; er tritt manchmal direkt beim ersten Hit auf (d.h. Session ist noch "leer"), manchmal später; manchmal liegt der letzte Klick des Benutzers nicht mal eine Sekunde zurück, manchmal mehrere Minuten.
Die Datenkonstellation bei den eingeloggten Benutzern sieht auch nicht unüblich aus (bei nicht ausgeloggten Benutzern werden nur zwei, drei Daten gespeichert, an denen mir nicht im Traum einfiele, was daran diese Meldung auslösen könnte). Natürlich hat jeder andere Daten angegeben, aber wirklich aus der Reihe tanzte da bisher keiner der Datensätze.
Kurzum: Ich gehe davon aus, dass die Fehlermeldung absolut unabhängig von den Benutzereingaben auftritt.
Hast du noch andere Ideen, wie was das Problem verursachen könnte bzw. wie man es isolieren könnte?
Was Du aber nicht bedenkst, ist, dass [...} die Methode _gc(), die Du an session_set_save_handler übergibst, weiterhin Sekunden erhält und damit [...] hier INTERVAL ... SECOND stehen müsste.
Richtig, das war das Problem. Danke!
Gruß,
Günther