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