Undefined variable - ! Hilfe !

Hallo zusammen,

ich habe leider wenig Ahnung von PHP und versuche bei meinem Provider nachfolgendes Galeriescript zum laufen zu bekommen. Leider bekomme ich jedoch immer den Hinweis auf eine nicht definierte Variable $home. Definiere ich die Variable als $home = „“; $home = „0“; oder auch $home = „1“; arbeitet das Skript nicht.

Das komische ist, dass das Skript auf meinem Lokalen Testserver läuft, nur bei meinem Provider immer wieder diese Fehlermedlung auftaucht,

Was kann ich tun um das Ding zum laufen zu kriegen? Hilfe!

wer-weiss-was ?? Vielen Dank im Voraus

Gruß Jan
der ein wenig gefrustet ist!

Fehlermeldung:

Notice: Undefined variable: home in D:\websites…\index.php on line 17

*********************************************************************************************

$album = „Bilder 01.06.2003“; //title of your gallery //
$columns = 4; //number of photos a row //
$thumb_dir = „thumbnails“; //thumbnails location dir //
$scriptname = „index.php“; //name of this file //

//----------------------------------------------------------------------//
echo „\n“;
echo „\n“;
echo „\n\n“;
$mydirectory= ‚.‘;
$counter = 0;
$nbfiles = 0;
$currfile = „“;
$fichier[0] = „“;
$handle=opendir($mydirectory);

if ($home == „“)
{echo " $album \nZur Vergrößerung bitte Foto anklicken \n \n\n";}
while ($currfile = readdir($handle))
{$extension= strtolower(substr( strrchr( $currfile, „.“),1));
if ($extension== „jpg“ || $extension== „jpeg“)
{$nbfiles++;
$currfile = trim($currfile);
$fichier[$nbfiles] = $currfile;
if ($home == „“)
{$currthumbfile = $thumb_dir . „/“ . $currfile;
echo " \n";
$counter++;
if ($counter == $columns)
{$counter= 0;echo"\n";echo"\n";}}}}
if ($home == „“)
{echo"\n\n";}
closedir($handle);
if ($home == 1)
{if ($nr != 1)
{$prevnumber = $nr - 1;
echo „\n“;}
echo „\n“;
if ($nr != $nbfiles)
{$nextnumber = $nr + 1;
echo " \n";}
echo " \n";
echo „\n\n“;}
?>

*********************************************************************************************

Hi,

Ich kenne das Problem, werde mich aber erst in naechster Zeit damit beschaeftigen. Ich kann Dir aber soviel sagen: Schau Dich mal um, wie man Variablen in PHP deklarieren kann. Ich vermute mal, dass Dein Provider globale Variablen nicht aktiviert hat. Es gibt globale Variablen, welche einfach an andere Scripte oder Dateien weitergegeben werden koennen, und lokale Variablen, welche automatisch beim Ende der Funktion oder am Ende des Scripts sterben. Unter Windows kann man in der php.ini (Ich habe auch einen Testserver laufen) einen Wert einstellen; erst dann funktionierts auch mit globalen Variablen. Allerdings geht das zu Lasten der Sicherheit. Aus diesem Grunde muss man Variablen wie in ‚richtigen Programmiersprachen‘ wie C++ deklarieren, dann kann man sie auch weitergeben. Ich wuerde mal versuchen, mittels gettype() den Typ Deiner Variablen ausgeben zu lassen und Dich speziell in www.php.net ueber die Variablendeklaration zu informieren.

Hoffe, ich konnte nen Ansatz geben…

cu,
cjmatsel

Hallo,

du definierst die Variable $home ja auch nirgendwo, da kann das ja garnicht funktioniert. Da ich mal annehme, dass die Variable dann via GET bzw. POST kommen soll ist es klar, dass sie nicht definiert ist, wenn register_globals off ist (wie es uebrigens empfohlen ist). Du solltest statt $home einfach $_GET[‚home‘] (fuer GET) bzw. $_POST (fuer POST) benutzen - oder $_REQUEST, das schlieszt sowohl GET als auch POST ein. Diese Arrays sind superglobal, das heisst auch ohne ein global davor in jeder Funktion oder Klasse verfuegbar. Und fuer die Pruefung wuerde ich if(!empty($home)) { benutzen.

Solltest du eine PHP Version