1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Session-ID ausblenden

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von wapplegraph, 26.05.07.

  1. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Hallo

    Ich arbeite mit Session und habe am Anfang meine Seite session_start() eingebaut.
    Wenn ich nun auf einen Link klicke, übergibt es oben die Session-ID. Im Quelltext ist die ID auch schon vorhanden.

    Wie kann ich dies Ausschalten ohne Cookie?

    wapplegraph
     
  2. Hobbes_

    Hobbes_ Gast

    Der Sinn einer Session ist es, einen individuellen Benutzer (bzw. eben eine Session von ihm) zu identifizieren. Dabei muss diese ID-Nummer immer wieder hin- und hergeschickt werden zwischen Client und Server.

    Dabei wird die ID entweder als Cookie oder als Parameter gesandt. Cookies möchtest Du nicht. Als Parameter siehst du sie in der URL, wenn es via GET geht. Alternativ, kannst Du Aufrufe jeweils via PUT beim Server anfordern. Dann wird die Session-ID nicht direkt sichtbar an den Server gesandt. PUT erreichst Du, indem du den Aufruf beim Server über ein Formular (in diesem Fall halt ein Pseudo-Formular) gestaltest mit entsprechend PUT-Modus.

    In jedem Fall jedoch (auch Cookies) wird die Nummer übertragen. Cookies scheinen mir diesbezüglich sowieso die beste Option für diese Fragestellung zu sein, da Du sogar anfordern kannst, dass die Cookies verschlüsselt übertragen werden sollen (wird nicht von jeder PHP-Installation erlaubt).

    Daneben: Ich versteh nicht ganz, was Du damit meinst:
    Hope it helps
    psc
     
  3. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Also merci

    Eigentlich stört es mich nicht, wenn es über die URL übergeben wir. Jedoch stört es mich, dass er XHTML Warnungen ausgibt, weil eben im Queltext steht;

    href="link&PHPSESSID=blabla"

    XHTML möchte aber ein & anstelle eines &

    wapplegraph
     
  4. Hobbes_

    Hobbes_ Gast

    Ich verstehe.

    Der Parameter
    arg_separator.output​
    definiert in PHP.INI das Trennzeichen.

    Du kannst das auf drei Arten anpassen
    • direkt in PHP.INI, wenn Du Zugriff darauf hast
    • mittels eines Befehls in .htaccess, insofern der Admin dies zulässt
    • mittels eines Befehls in Deinem PHP-Programm, insofern der Admin das zulässt; zudem können einzelne Parameter während der Laufzeit nicht mehr verändert werden, so dass die Anpassung zwingend in einer der obenstehenden Methoden erfolgen muss

    Hier der Befehl für PHP:
    Code:
    ini_set("arg_separator.output", "&"); 
    anbei die Links auf dazu passende Seiten in php.net:
    http://www.php.net/manual/de/ini.core.php#ini.arg-separator.output
    http://www.php.net/manual/de/ref.session.php (unter Übermittlung einer Session-ID)

    Probier es doch mal aus :)

    Gruss
    psc
     
    #4 Hobbes_, 26.05.07
    Zuletzt von einem Moderator bearbeitet: 26.05.07
  5. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Also

    Auf die .htacces Datei habe ich Zugriff.
    Wie lautet hier der Befehl?

    wapplegraph
     
  6. Hobbes_

    Hobbes_ Gast

    Aus Deinem Kommentar schliesse ich, dass es mit der obenstehenden Variante nicht funktioniert hat. Mmh, komisch o_O Wo hast du den Befehl platziert?

    Auf jeden Fall kannst Du auch die passende .htaccess Datei anpassen mit folgender zusätzlichen Zeile (Du kennst Dich offenbar darin bereits aus):

    Code:
    php_value arg_separator.output &
    Wie aus der Dokumentation ersichtlich, kann es sein, dass diese Parameteranpassung nur funktioniert, wenn PHP als Apache-Modul läuft. Die obenstehende Methode mit init_set() ist unabhängig von der Art, wie PHP ausgeführt wird. Auch ist dann alles im Programm intern gespeichert. Deshalb verwende ich wenn immer möglich diese Methode.

    Nützliche Informationen erhälst Du, wenn du mal folgenden Befehl in ein Testprogramm einbaust
    phpinfo()

    Siehe wieder diese Links der offiziellen PHP-Dokumentation / SELFHTML
    http://www.php.net/manual/de/configuration.changes.php
    http://www.php.net/manual/de/configuration.php
    http://forum.de.selfhtml.org/archiv/2005/3/t103502/
    (php.net, SELFHTML und Google sind wirklich gute Freunde in der Web-Entwicklung - neben apfeltalk selbstverständlich :))

    Falls diese beide Methoden wirklich nicht funktionieren sollten, so kannst Du auch Deinen Admin/Provider fragen, ob er die PHP.INI für Dich anpasst.

    Falls dies alles nicht funktionieren sollte, so gibt es weiter die Möglichkeit, dass Du den Output parsest und konkret & durch & ersetzt. Da bin ich mir jedoch nicht sicher, ob sich dieser Aufwand wirklich lohnt.

    Hope it helps
    psc
     
    #6 Hobbes_, 26.05.07
    Zuletzt von einem Moderator bearbeitet: 26.05.07
  7. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Hallo psc

    Es klappt doch.
    Ich habe es gar nicht probiert, weil ich meinte, man muss es direkt in die Datei schreiben.

    Merci
     
  8. Hobbes_

    Hobbes_ Gast

    Sehr schön!

    Dann würde ich dieser Variante aus obgenannten Gründen den Vorzug geben...

    Ich bin gespannt, Deine Seite mal fertig zu sehen :)

    Gruss
    psc
     

Diese Seite empfehlen