Ich habe eine API, die auf bestimmte Statusinformationen zwischen Anfragen angewiesen ist. Als einfache erste Version des Codes verwende ich einfach PHP-Sitzungen, um die Statusinformationen zu speichern, anstatt etwas Fortschrittlicheres (APC, Memcache, DB). Während meiner ersten Tests in einem Webbrowser funktionierte alles perfekt. Es scheint jedoch, dass, wenn Clients versuchen, über Nicht-Browser-Methoden wie Curl oder wget eine Verbindung herzustellen, die Statusinformationen nicht beibehalten werden.
Wird eine PHP-Sitzung nur erstellt, wenn ein Browser die Seite anfordert? Ich starte die Sitzung explizit mit session_start() und benenne sie vorher mit session_name().
Eine zusätzliche Anmerkung . Ich lernte, dass eines der Hauptprobleme, die ich hatte, darin bestand, 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, dieselbe Sitzung abzurufen, die zuvor erstellt wurde, und der korrekte Weg, dies zu tun, ist die Einstellung der session_id, nicht der session_name.
Es scheint, dass die Sitzungsinformationen auf dem Server erhalten bleiben, wie unten angegeben (DANKE). Um diese zu erhalten, müssen Sie jedoch die Sitzungs-ID oder, wie in meinem Fall, eine andere ID übergeben, die den Benutzer eindeutig identifiziert. Verwenden Sie diese ID als session_id und Ihre Sitzungen werden wie erwartet funktionieren.