• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Session-ID ausblenden

wapplegraph

Normande
Registriert
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
 

Hobbes_

Gast
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

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:
Im Quelltext ist die ID auch schon vorhanden.

Hope it helps
psc
 

wapplegraph

Normande
Registriert
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
 

Hobbes_

Gast
href="link&PHPSESSID=blabla"

XHTML möchte aber ein & anstelle eines &

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
 
Zuletzt bearbeitet von einem Moderator:

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Also

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

wapplegraph
 

Hobbes_

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

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
 
Zuletzt bearbeitet von einem Moderator:

wapplegraph

Normande
Registriert
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
 

Hobbes_

Gast
Hallo psc

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

Merci

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