André Laugks: Probleme mit Sessions ohne Cookies

Beitrag lesen

Hallo!

Leider funktioniert das nicht:

echo "<a href="sess.php?PHPSESSID=" . $session_id() . ">";

Fatal error: Call to undefined function: () in c:\apache\htdocs\sess.php on line 11

Wenn Du Dir mal bei php.net die Session-Funktionen angeschaut hättest, wäre Dir aufgefallen, daß ich dort einem Tipp/Formfehler habe, den ich über Copie/Past mitgeschleppt habe.

echo "<a href="sess.php?PHPSESSID=" . session_id() . ">";

Ist das jetzt automatisch gesetzt oder muß man $session_id() irgendwie erst definieren?

Die genneriert PHP für Dich und kannst sie mit session_id() ermittel.

$session_id = session_id();

So geht es:

<a href="<? echo "$PHP_SELF$PHPSESSID"?>">PHPSESSID</a>

Aber das verstehe ich  nicht, im Quelltext der ausgegebenen Seite steht da dann alles ordnungsgemäß.

Genau so wie <input type="hidden" name="<? echo "$PHPSESSID" ?>">
Irgendwie, fast egal ob ich das als name, oder value schreibe macht der immer das richtige daraus, nur immer als PHPSESSID.

Hääää?

In $PHPSESSID ist die Session_id gespeichert. Bei mir kommt da sowas raus, was auch logisch ist: datei.phtmldf38cb9055bc8658ed925299cd03cd88

Das sollte wohl alles so aussehen:

<a href="<? echo $PHP_SELF ?>?<?PHP echo session_name() . "=" . session_id();  ?>">link</a>

<input type="hidden" name="<?PHP echo session_name(); ?>" value="<? echo session_id(); ?>">

Oder Du verwendest die Konstante SID.

Ich glaube ist stelle lieber alles auf PHPSESSID um, das ist einfacher, und das mit Cookies ausschalten geht auch gut.

Du kannst mit session_name('variable') Dir einen eigenen Sessionname bzw. Sessionvariable schaffen. An die kommts Du über session_name() ran.

$session_name = session_name();

Nur schade das ich auf der Startseite zum verrecken nicht an die SESSION ID als Variable selbst komme.

Programmierfehler und sicherlich auch ein Denkfehler von Dir!

startseite.phtml

<?PHP
session_start()
?>
<html>
<body>

echo "<a href="seite.phtml?" . session_name() . "=" . session_id() . "">";

</body>
</html>

MfG, André Laugks