Supportnet / Forum / Webseiten/HTML
Alternative zu Session-IDs in PHP?
Frage
Ich habe auf meiner Seite ein Login-Script (PHP), das Sitzungscookies nutzt (Session-ID). Leider sind die meisten Firmennetzwerke so konfiguriert, dass sie nich mal Sitzungscookies zulassen (dass sie normale Cookies nicht zulassen ist ja verständlich, aber Sitzungscookies?, na ja). Jedenfalls, bekomme ich von den Firmen halt anfragen, ob ich das nicht ändern kann, damit sie meine Seite nutzen können.
Gibt es überhaupt eine Möglichkeit (es muss nicht auf PHP und MySQL beschränkt sein), eine Seite zu machen mit nem Login-Script, das berücksichtigt, dass ein Nutzer JavaScript, Cookies,Sitzungscookies und wer weiss was ich noch vergessen haben, ausgeschaltet hat? Wie gesagt, ich hab da nen Login-Script (läuft im Moment mit Sitzungscookies und JavaScript) und nen Forum (läuft ohne Cookies mit PHP und MySQL) und halt sonst normale PHP-Seiten, wo im Grunde nur HTML-Code drin steht.
Danke für eure Tipps!
Anika
Antwort 1 von robbie17
du mußt dynamische links erzeugen
die die session-id als variable an die nächste seite übergeben
also wenn sich jemand einloggt
müssen alle links auf der empfangsseite so aussehen:
und jede neue seite (blabla.htm) übernimmt die id
und schreibt sie wieder in all ihre weiterführenden links rein
an der id erkennst du dann den user der die seite aufruft
die die session-id als variable an die nächste seite übergeben
also wenn sich jemand einloggt
müssen alle links auf der empfangsseite so aussehen:
<a href="blabla.htm?id=0E34FF34D .. ">blabla</a>
und jede neue seite (blabla.htm) übernimmt die id
und schreibt sie wieder in all ihre weiterführenden links rein
an der id erkennst du dann den user der die seite aufruft
Antwort 2 von anika77
Ne, ich wollte nicht wissen wie man die Sesion-ID weiter gibt, denn das funktioniert schon alles. Ich wollte wissen, was man machen kann, wenn der Nutzer keine Session-ID`s zuläßt, spich er hat es deaktiviert, da kannst Du probieren wie Du willst eine zu bekommen, da bekommt man keine.
Anika
Anika
Antwort 3 von robbie17
hab ich noch nie gehört
aber wenn dem so ist mußt du dir halt selbst eine basteln
zb kombination aus userdaten, uhrzeit und ner zufallszahl
und der optik/sicherheit halber vielleicht noch mit md5 drüber gehen
aber wenn dem so ist mußt du dir halt selbst eine basteln
zb kombination aus userdaten, uhrzeit und ner zufallszahl
und der optik/sicherheit halber vielleicht noch mit md5 drüber gehen
Antwort 4 von MixMax
also es ist wohl sinnvoller einfach ne session yu starten aber einfach in der php.ini des servers einyustellen das er die session nie @ber ein cookie weitergibt.
php.ini >
...
; Whether to use cookies.
session.use_cookies = 1
:ndern auf 0
dann wird php im normalfall selber bei allen relativen verlinkungen auf php/dateien die id mitgeben
php.ini >
...
; Whether to use cookies.
session.use_cookies = 1
:ndern auf 0
dann wird php im normalfall selber bei allen relativen verlinkungen auf php/dateien die id mitgeben
Antwort 5 von Feuervogel
also wenn du die sessiondaten als hiddenfield weitergibts, weil der user sessions nicht zulässt, MUSS es gehen, denn du übergibst ja die sessionid wie jede andere variable auch.
Antwort 6 von anika77
Aber wie kann man dann Daten weitergeben, die man gar nicht erhält, sprich, wenn der User Session-ID`s deaktiviert hat, dann bekommt man auch keine Session zurück und kann auch nix weitergeben :-(.
Kennt denn vielleicht jemand ein ganz einfaches Login-Script, das KEINE Session-ID`s und Cookies und Evtl. auch kein JavaScript benötigt? Ist das überhaupt möglich? Irgendwie muss man doch aber den Benutzer identifizieren, wie kann man das ohne Session oder Cookies machen?
Wie gesagt, ich brauche das, weil die Firmennetzwerke sowohl Session als auch Cookies sperren und oft auch JS. Bitte helft mir!!!
Anika
Kennt denn vielleicht jemand ein ganz einfaches Login-Script, das KEINE Session-ID`s und Cookies und Evtl. auch kein JavaScript benötigt? Ist das überhaupt möglich? Irgendwie muss man doch aber den Benutzer identifizieren, wie kann man das ohne Session oder Cookies machen?
Wie gesagt, ich brauche das, weil die Firmennetzwerke sowohl Session als auch Cookies sperren und oft auch JS. Bitte helft mir!!!
Anika
Antwort 7 von anika77
Hat denn keiner ne Lösung für mich :-((( ?
Anika
Anika
Antwort 8 von Feuervogel
okay, mädel, ich will jetzt einen auf schlaubischlumpf machen, aber ein freund von mir hatte genau das selbe problem. daten weitergabe über sessions für eine ewig lange formular ausfüllung, und das ganze auch für firmencomputer, also wo keine session ids auf dem pc gespeichert werden können/dürfen.
vielleicht liest du mal das hier:
http://de3.php.net/manual/de/ref.session.php#session.idpassing
dort steht:
vielleicht liest du mal das hier:
http://de3.php.net/manual/de/ref.session.php#session.idpassing
dort steht:
Zitat:
Übermittlung der Session-ID
Es gibt zwei Methoden, eine Session-ID zu übermitteln:
*Cookies
*URL Parameter
Das Session-Modul unterstützt beide Methoden. Cookies sind optimal, aber da sie nicht immer zur Verfügung stehen, bieten wir auch noch eine Alternative an. Die zweite Methode hängt die Session-ID direkt an die URLs.
Übermittlung der Session-ID
Es gibt zwei Methoden, eine Session-ID zu übermitteln:
*Cookies
*URL Parameter
Das Session-Modul unterstützt beide Methoden. Cookies sind optimal, aber da sie nicht immer zur Verfügung stehen, bieten wir auch noch eine Alternative an. Die zweite Methode hängt die Session-ID direkt an die URLs.
Antwort 9 von Feuervogel
und der vollständigkeit halber:
quelle: http://de.php.net/manual/de/function.session-id.php
damit du jetzt nicht kommst: "aber dann geht das mit den hiddenfields doch nicht, man muss es anhängen an den url, und das sieht dann hässlich aus!"
also gehts auch mit GET oder POST, und nicht nur mit cookie!
Zitat:
session_id
(PHP 4 )
session_id -- Liefert und/oder setzt die aktuelle Session-ID
Beschreibung
string session_id ( [string ID])
session_id() gibt die Session-ID der aktuellen Session zurück.
Wenn ID angegeben wird, wird die die aktuelle Session-ID ersetzt. session_id() muss zu diesem Zweck vor session_start() aufgerufen werden. In Abhängigkeit von der Session-Prozedur sind in der Session-ID nicht alle Zeichen erlaubt. Zum Beispiel erlaubt die dateibasierte Session-Prozedur nur Zeichen im Bereich a-z, A-Z and 0-9!
Die Konstante SID kann auch dazu verwendet werden, den aktuellen Namen und die Session-ID als Zeichenkette passend zum Anhängen an URLs zu erhalten. Beachten Sie, dass SID nur definiert ist, wenn vom Client nicht das richtige Cookie gesendet wurde. Siehe auch Session Funktionen.
session_id
(PHP 4 )
session_id -- Liefert und/oder setzt die aktuelle Session-ID
Beschreibung
string session_id ( [string ID])
session_id() gibt die Session-ID der aktuellen Session zurück.
Wenn ID angegeben wird, wird die die aktuelle Session-ID ersetzt. session_id() muss zu diesem Zweck vor session_start() aufgerufen werden. In Abhängigkeit von der Session-Prozedur sind in der Session-ID nicht alle Zeichen erlaubt. Zum Beispiel erlaubt die dateibasierte Session-Prozedur nur Zeichen im Bereich a-z, A-Z and 0-9!
Die Konstante SID kann auch dazu verwendet werden, den aktuellen Namen und die Session-ID als Zeichenkette passend zum Anhängen an URLs zu erhalten. Beachten Sie, dass SID nur definiert ist, wenn vom Client nicht das richtige Cookie gesendet wurde. Siehe auch Session Funktionen.
quelle: http://de.php.net/manual/de/function.session-id.php
damit du jetzt nicht kommst: "aber dann geht das mit den hiddenfields doch nicht, man muss es anhängen an den url, und das sieht dann hässlich aus!"
Zitat:
session_start() erzeugt eine Session oder nimmt die aktuelle wieder auf, die auf der Session-ID basiert, die mit einer Anfrage, z.B. durch GET, POST oder ein Cookie, übermittelt wurde.
session_start() erzeugt eine Session oder nimmt die aktuelle wieder auf, die auf der Session-ID basiert, die mit einer Anfrage, z.B. durch GET, POST oder ein Cookie, übermittelt wurde.
also gehts auch mit GET oder POST, und nicht nur mit cookie!
Antwort 10 von Feuervogel
der satz:
sollte heißen:
okay, mädel, ich will jetzt nicht einen auf schlaubischlumpf machen, aber ein freund von mir hatte genau das selbe problem.
mea culpa
Zitat:
okay, mädel, ich will jetzt einen auf schlaubischlumpf machen, aber ein freund von mir hatte genau das selbe problem.
okay, mädel, ich will jetzt einen auf schlaubischlumpf machen, aber ein freund von mir hatte genau das selbe problem.
sollte heißen:
okay, mädel, ich will jetzt nicht einen auf schlaubischlumpf machen, aber ein freund von mir hatte genau das selbe problem.
mea culpa
Antwort 11 von Feuervogel
und ganz ausführlich (weil ich so ein netter kerl bin:)
http://www.dclp-faq.de/q/q-sessions-fallback.html
http://www.dclp-faq.de/q/q-sessions-fallback.html
Antwort 12 von Feuervogel
kommt da noch ne rückmeldung?
Antwort 13 von anika77
Sorry,dass ich jetzt erst Antworte. Ja, das Fallback war mir bekannt, aber funktioniert leider nicht so, wie es in der Doku steht.
Werde wohl nen neues Script schreiben, wo ich ne Session erzeugen werden und in ner Datenbank speichere und nicht in nem Cookie und dann per URL weitergeben.
Kennt jemand dazu vielleicht nen gutes Tutorial, wo soetwas beschrieben ist, wie man das selber machen kann mit ner Session, ohne den vordefinierten Kram von PHP zu benutzen?
Anika
Werde wohl nen neues Script schreiben, wo ich ne Session erzeugen werden und in ner Datenbank speichere und nicht in nem Cookie und dann per URL weitergeben.
Kennt jemand dazu vielleicht nen gutes Tutorial, wo soetwas beschrieben ist, wie man das selber machen kann mit ner Session, ohne den vordefinierten Kram von PHP zu benutzen?
Anika
Antwort 14 von Feuervogel
jetzt verstehe ich dein problem aber wirklich nicht mehr. die session wird auf dem server gestartet und der browser indentifiziert sich per sessid. ob das nun über ein cookie oder den url geschieht, ist deinem script doch wurscht, oder wie?
Antwort 15 von anika77
Ne, na im Moment ist es so, dass die ID halt in nem Cookie gespeichert wird. Hat der Nutzer aber Sessioncookies deaktiviert, dann kann ja keine ID in nem Cookie gesetzt werden (der Cookie wird ja irgendwie in den Arbeitsspeicher des Benutzers gesetzt). Normalerweise soll ja laut Doku das so sein, dass bei Deaktiviereung dieses Fallback dann automatisch in Kraft tritt und die Session nicht im Cookie speichert, sondern per URL mitgibt. Aber genau das macht es bei mir nicht.
Deshalb werde ich das mit dem Cookie Kram seinlassen, da ist man immer auf die Richtige Einstellung des Nutzers angewiesen. Mache mir ne eigene Session, die in der Datenbank gespeichert wird und per URL zur Identifikation weitergeleiet wird. Dazu wäre ich halt über ein paar Tutorials dankbar :-).
Anika
Deshalb werde ich das mit dem Cookie Kram seinlassen, da ist man immer auf die Richtige Einstellung des Nutzers angewiesen. Mache mir ne eigene Session, die in der Datenbank gespeichert wird und per URL zur Identifikation weitergeleiet wird. Dazu wäre ich halt über ein paar Tutorials dankbar :-).
Anika

