Ich habe eine API, die abhängig von bestimmten Statusinformationen zwischen Anforderungen ist. Als eine einfache erste Version des Codes benutze ich einfach PHP-Sessions, um die Statusinformationen statt etwas fortgeschrittener zu speichern (APC, Memcache, DB). Während meiner ersten Tests in einem Webbrowser funktionierte alles perfekt. Es scheint jedoch, dass die Statusinformationen nicht erhalten werden, wenn Clients versuchen, eine Verbindung über Nicht-Browser-Methoden wie Curl oder wget herzustellen.In PHP wird eine Sitzung erstellt, wenn ein Browser nicht verwendet wird
Wird eine PHP-Sitzung nur erstellt, wenn ein Browser die Seite anfordert? Ich starte die Session explizit mit session_start() und benenne sie vorher mit session_name().
Eine zusätzliche Notiz. Ich erfuhr, dass eines der Hauptprobleme, das ich hatte, war, dass ich die Sitzung benannte, anstatt die Sitzungs-ID über Session-ID ($ ID) zu setzen; Meine Absicht bei der Verwendung von session_name() war es, die gleiche Sitzung, die zuvor erstellt wurde, abzurufen, und die richtige Weise, dies zu tun ist, indem Sie die Sitzungs-ID nicht den Sitzungsname festlegen.
Es scheint, dass Sitzungsinformationen auf dem Server wie unten angegeben gespeichert werden (DANKE). Aber um dies zu behalten, müssen Sie die Session-ID oder, wie in meinem Fall, eine andere ID übergeben, die den Benutzer eindeutig identifiziert. Verwenden Sie diese ID als Sitzungs-ID, und Ihre Sitzungen funktionieren wie erwartet.
> aber, wenn der Client unterstützt keine Cookies (wie curl oder wget) tatsächlich. beide unterstützen eine Möglichkeit, eine Cookie-Datei zu speichern/zu laden – Uberfuzzy
Guter Fang. Vielen Dank. – keparo