newbi: Sessionproblem PHP 4.0.6

So mache ich es...
Ausgabe in Datei 2: Sessionproblem
Warum??
Und Danke

Datei 1

if (!isset($_GET['nick'])) {

include "config1.php";

$query = "SELECT * FROM test WHERE nick='".$nick."'";
if( $result = mysql_query( $query ) )
{ $count = mysql_num_rows( $result );

if( $count == 0) { // User ist noch nicht vorhanden

$eintragen="INSERT INTO test (nick) values('$nick')";
$result = mysql_query($eintragen);

session_start();
//session_register("nick");
$HTTP_SESSION_VARS ['nick'] =$nick ;
header("location: indexold.php");
//echo $nick ; echo "Jetzt eingetragen";
}
else
.............

Datei 2

session_start();
if (isset($HTTP_SESSION_VARS ['nick']))
echo $HTTP_SESSION_VARS ['nick'];
else
echo "Sessionproblem";

  1. Moin!

    So mache ich es...
    Ausgabe in Datei 2: Sessionproblem
    Warum??
    Und Danke

    Datei 1

    if (!isset($_GET['nick'])) {

    Hier geht das Problem los, schätze ich. PHP 4.0.6 kennt $_GET nicht, sondern nur $HTTP_GET_VARS.

    Du solltest vorzugsweise die PHP-Version mal auf einen aktuellen Stand bringen (4.3.1 ist aktuell), oder aber die Variablenschreibweise vereinheitlichen auf $HTTP_*_VARS.

    Das Problem geht weiter, weil du bei der Datenbankabfrage offenbar auch noch von register_globals=on ausgehst, also einfach auf $nick zugreifst und hoffst, diese Variable würde auf magische Weise von $HTTP_GET_VARS['nick'] abgefärbt sein.

    session_start();
    //session_register("nick");
    $HTTP_SESSION_VARS ['nick'] =$nick ;
    header("location: indexold.php");
    //echo $nick ; echo "Jetzt eingetragen";

    Wie kriegt das Skript indexold.php eigentlich die Session-ID mit? Wenn du keine Cookies erlaubst, muß die ID in der URL weitergegeben werden. PHP macht das aber nur bei im Quelltext enthaltenen Links (<a href>) und Formularen, aber nicht bei Weiterleitungen.

    header("Location: http://".$HTTP_SERVER_VARS['HTTP_HOST']."/Pfad/zur/indexold.php?".SID); sollte helfen (ja, die URL hinter Location MUSS absolut sein).

    - Sven Rautenberg

    --
    Signatur oder nicht Signatur - das ist hier die Frage!