Aiun Geschrieben 16. Februar 2007 Geschrieben 16. Februar 2007 hi, frage, ich habe eine Anwendung mit hunderten von Links (teils dynamisch, teils statisch in templates), Formularen, AJAX und und und... Login läuft derzeit über Session-Cookies, nun möchte ich aber einen alternativen Übermittlungsweg hinzufügen, falls Cookies nicht vorhanden sind. Der automatischen Übergabe von PHP traue ich nicht ganz, eben weil das eben nicht javascript-Aktionen mit einschließt (window.open, location.href,....) eine idee wäre die http ($_SERVER['PHP_AUTH_USER']), die beim Login mit der SessionID besetzt wird. Aber das scheint bisher nicht zu funktionieren. Hat da jemand erfahrung mit ? , was haltet ihr überhaupt davon ? zweite Frage: wie kann ich testen ob im Client-browser Cookies aktiviert sind. Die Session, ergo auch das session-Cookie, wird generell beim ersten besuch der Seite erstellt, unabhängig davon ob eingeloggt oder nicht. Macht es dann aber sinn das mit $_COOKIE zu prüfen ? allgemein soll das jetzt keine diskusion über Sicherheit heraufbeschwören, auch wenn ich für jeden Tip dankbar bin. Derzeit sichere ich die Session zusätzlich durch die IP des Clients ab. Zitieren
etreu Geschrieben 16. Februar 2007 Geschrieben 16. Februar 2007 Der automatischen Übergabe von PHP traue ich nicht ganz, eben weil das eben nicht javascript-Aktionen mit einschließt (window.open, location.href,....) Das ist eine Einstellungssache. Kannst du alles in der php.ini berücksichtigen lassen. Ansonsten kannst du mit der base-url arbeiten. In diese verpackst du einfach deine SessionId: www.deine-doma.in/irgendein.skript/sessionid/... Zitieren
geloescht_JesterDay Geschrieben 19. Februar 2007 Geschrieben 19. Februar 2007 eine idee wäre die http ($_SERVER['PHP_AUTH_USER']), die beim Login mit der SessionID besetzt wird. Aber das scheint bisher nicht zu funktionieren. Hat da jemand erfahrung mit ? , was haltet ihr überhaupt davon ? zweite Frage: wie kann ich testen ob im Client-browser Cookies aktiviert sind. Die Session, ergo auch das session-Cookie, wird generell beim ersten besuch der Seite erstellt, unabhängig davon ob eingeloggt oder nicht. Macht es dann aber sinn das mit $_COOKIE zu prüfen ? 1. Die $_SERVER['PHP_AUTH_USER'] gibt es erstmal nur beim Apache (AFAIK) und zweitens bringt es nix, wenn die selber setzt. Die wird bei jedem Seitenaufruf neu geschrieben und somit auch überschrieben. In $_SERVER['PHP_AUTH_USER'] steht der User drin, der vom Client an den Server übermittelt wurde und ich glaube auch nur dann, wenn die Authentifizierung geklappt hat. Und was der Client dem Server sendet kannst du nicht beeinflussen. 2. Nein, das macht keinen Sinn. In einem Cookie werden Daten gespeichert, die der Client bei jedem Aufruf an den Server mitschickt. Diese Daten sind nach URL und Pfad zugeordnet. Bei jedem Aufruf werden dann nur die dieser URL und diesem Pfad zugeordneten, vorhandenen(!) Cookies mitgeschickt. Bei allerersten Aufruf kann der Client also noch gar keine Cookies mitschicken. $_COOKIE wäre also leer. Cookies sind aber die einzige Methode Daten dauerhaft beim Client zu speichern. die Alternative besteht darin, die Session_Id der URL anzuhängen als Parameter. Das kann von PHP automatisch gemacht werden, oder du machst es selbst. Allerdings fließt die Session_Id dann auch in Bookmarks ein, oder in Links, die man jemand weitergibt oder in ein Forum stellt etc. (Ok, über die IP würde das dann "abgefangen"). Sonst gibt es keine Möglichkeiten um so etwas zu erreichen. Außer du machst das ganz allgemein, indem du eine IP intern einer Session zuweist, aber in Zeiten dynamischer IPs sollte man daran nicht wirklich denken Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.