Stefan: Woran erkenne ich, dass Session-ID übergeben wurde?

Beitrag lesen

Hi,

ändere
echo "<br><br><a href="$PHP_SELF?<?=SID?>">Restart</a>";
mal in
echo "<br><br><a href="$PHP_SELF?SID=$session_id">Restart</a>";

und noch besser, weil sauberer
echo "<br><br><a href="" . $PHP_SELF . "?SID=" . $session_id. "">Restart</a>";

Zum Verständnis:

Der Ausdruck <?=SID?> setzt sich zusammen aus:

<?       um dem PHP-Interpreter anzuzeigen, daß php-Code folgt
=SID     als Kurzform für "echo SID;"
?>       um den PHP-Code wieder zu schließen.

Da der PHP-Interpreter aber schon gestartet ist, und Du diesen Ausdruck innerhalb des echo "<?=SID?>" benutzt, wird der Ausdruck gar nicht interpretiert, sondern einfach nur ausgegeben.

Ob Du also
echo "<?=SID?>" ;
oder
echo "<? irgendein Text ?>"
ausgibst, ist an dieser Stelle völlig egal, es wird einfach ausgegeben.

Wenn Du

echo "<br><br><a href="" . $PHP_SELF . "?SID=" . $session_id. "">Restart</a>";

diese Zeile mal splittest, kannst Du auch schreiben:

echo "<br><br><a href="";   // ein string -> öffnet den Link
echo $PHP_SELF;              // eine Variable -> gibt die Url des Scripts aus
echo "?SID=";                // ein string -> gibt den Url-Parameter-Name SID aus
echo $session_id;            // eine Variable -> gibt die Variable $session_id aus
echo "">Restart</a>";       // ein string -> schließt den Link.

Vielleicht verdeutlicht das nochmal die Bestandteile der echo-Zeile.

Gruß,
Stefan