Problem mit Variablen bei include()

Ronny_25

Grünschnabel
Hi,

seit ich PHP 4.2.3 auf meinem Rechner habe, habe ich folgendes Problem:

Das folgende kleine Script funzt tadellos, wenn ich jetzt allerdings den "SWITCH-TEIL" in einer anderen Datei speichere und mit include() einfüge wird meine Variable $a nicht mehr an mein "Include-Script" übergeben. Soweit ich weis ging das vorher (PHP4.1.x) immer tadellos.
Ich benutze WinXP. Kennt jemand das Problem? Muss ich in der PHP.ini noch irgendeine Einstellung machen, damit das wieder hinhaut? register_globals hab ich zur Zeit auf on.

PHP:
<?php

$a="5";

##################################
switch ($a):
case "5":
echo "dies und das";
break;
case "3"
echo "was anderes";
break;
endswitch;
##################################
?>

Danke für eure Hilfe.

MfG Ronny
 
ich mach die switches immer mit geschweiften klammern. im php.net handbuch steht zwar deine version auch drinne, aber vielleicht liegts ja daran... meine version:

PHP:
<?php

$a="5";

##################################
switch($a)
   {
   case "5":
      echo "dies und das";
      break;
   case "3"
      echo "was anderes";
      break;
   }
##################################
?>

ansonsten weiss ich auch nicht worans liegen könnte...

antihero
 
solltest du damit den bereich auf deiner homepage 'switchen' wollen, deine variable also mit get übertragen wird guck mal nach, ob register_globals aus ist. wenn nämlich ja, musst du dein a erst holen...
PHP:
$a = $_GET['a'];
 
ich habs ja auch nur für den fall geschrieben, dass er sein switch script in ne andere php datei geschrieben hat und die included :-)
 
Nur damit ich es richtig verstehe:

Du schreibst den Switch-Teil in eine andere Datei und willst diese dann per include() einbinden ? Wo bindest du diese denn ein ? Du musst sie unbedingt nach der "Definition" von $a einbinden, denn sonst kennt der Parser die Var nicht und kann daher auch nicht darauf zugreifen.

Gruss

tobi
 
und am Ende einer Switch gehört ein Default-Teil, das wenn keine Bedingung zutrifft, diese irgendwo abgefangen wird und nicht mit ner leeren Seite endet, ausserdem hat das noch den Vorteil, das wenn ihr die Var via GET übergeben wollt und kleine Kinder mit der URL spielen wollen, ihr somit den "Zeigefinger erheben" könnt :)
 
Zurück