Stefan: Register globals und Session Problem

Hallo,

ich habe ein Skript, das eine Warnmeldung rausgibt, die ich nicht wegbekomme. Zur Erklärung: Ich ziehe gerade mit meinen Skripten auf einen neuen Server um, auf dem register_globals=off ist. Deswegen habe ich bis zur Neuprogrammierung ein kleines Workaround eingebaut, das hier aber versagt:

<?php
import_request_variables('GPC');
session_start();
foreach($_SESSION as $key => $var) {${$key} = $var;}

include("../mysqlzugangsdaten.php");
$fehler = 0;

$sql = "SELECT * FROM termine WHERE indizierung = '$bearb' ORDER BY indizierung";

if (!$datenbank = mysql_connect("$MySQLHost","$MySQLUser","$MySQLPasswort"))
   {
   $fehler = 1;
   echo 'Fehler!';
   }
if (!$erg = mysql_db_query($datenbankname,$sql))
   {
   $fehler = 1;
   echo 'Fehler!';
   }

$auslesen = mysql_fetch_array($erg);
mysql_close($datenbank);

$dateialt = $auslesen['dateiname'];
session_register("dateialt");
?>

die Warnmeldung:

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Nun, diese Warnmeldung wird nach meinem Debugging durch die letzte Zeile erzeugt, in der ich "dateialt" zur Session hinzufügen will. Der Text würde demnach auch Sinn machen. Nun habe ich nur das Problem: Ich weiss nicht, wie ich das anders machen soll: Ich lese eine Datenbank aus und registriere eine Variable, die ich später brauche, in der Session. So hab ich das früher immer gemacht und ich weiss nicht, wie ich das "sicherer" machen kann. Weiss jemand Rat?

viele Grüße,
Stefan

  1. Hallo Stefan,

    Nun, diese Warnmeldung wird nach meinem Debugging durch die letzte Zeile erzeugt, in der ich "dateialt" zur Session hinzufügen will. Der Text würde demnach auch Sinn machen. Nun habe ich nur das Problem: Ich weiss nicht, wie ich das anders machen soll: Ich lese eine Datenbank aus und registriere eine Variable, die ich später brauche, in der Session. So hab ich das früher immer gemacht und ich weiss nicht, wie ich das "sicherer" machen kann. Weiss jemand Rat?

    Ganz einfach, verwende stattdessen das Array $_SESSION.

    Schöne Grüße,

    Johannes