benpen: switch($_GET['lang']) auch auf included-Seiten anwenden

Hallo,

mit diesem Code wechsle ich zwischen drei Sprachen:

  
<?php  
switch($_GET['lang'])  
 {  
  case 'fr':  
   ?><div id=französisch>Bonjour</div><?php  
   break;  
  case 'en':  
   ?><div id=englisch>Hello</div><?php  
   break;  
  default:  
   ?><div id=deutsch>Hallo</div><?php  
 }  
  
?><p><a href="<?php basename($_SERVER['PHP_SELF']); ?>?lang=en">English</p>  

Jetzt beinhaltet die indexseite aber auch included-Seiten (werden in ein div geladen).
Wie kann ich die "switch" Anforderung auf auf diese Seiten anwenden?

Hier der komplette Code:

  
<?php  
$section = $_GET['section'];  
?>  
<div id="navimain">  
<ul>  
<li style="height:15px; background-color:#CCCCCC;"></li>  
<li><a href="navi01.php?section=produkte"<?php echo $_REQUEST['section']=='produkte'?' class="activ"':''; ?>>Produkte</a></li>  
<li><a href="navi01.php?section=kontakt"<?php echo $_REQUEST['section']=='kontakt'?' class="activ"':''; ?>>Kontakt</a></li>  
<li style="height:15px; background-color:#CCCCCC;"></li>  
</ul>  
</div>  
  
<div id="navisub">  
<?php  
$section = isset($_GET["section"]) ? $_GET["section"] : "produkte";  
if($section == "produkte") include "navi02.php";  
if($section == "kontakt") include "kontakt.php";  
?>  
</div>  
  
<div id="content">  
<?php  
$section = isset($_GET["fection"]) ? $_GET["fection"] : "pl200";  
if($section == "pl100") include "pl100.php";  
if($section == "pl200") include "pl200.php";  
?>  
</div>  
  
  
<?php  
switch($_GET['lang'])  
 {  
  case 'fr':  
   ?><div id=französisch>Bonjour</div><?php  
   break;  
  case 'en':  
   ?><div id=englisch>Hello</div><?php  
   break;  
  default:  
   ?><div id=deutsch>Hallo</div><?php  
 }  
  
?><p><a href="<?php basename($_SERVER['PHP_SELF']); ?>?lang=en">English</p>  

Vielen Dank schon mal für Eure Hilfe.
BP

  1. Hallo,

    ich glaub ich hab das ein bisschen falsch verstanden.

    Ich denke es geht nicht um "switch" sondern es hängt mit dem hier zusammen:

    <?php basename($_SERVER['PHP_SELF']

    Oder?

  2. Hello,

    ?><p><a href="<?php basename($_SERVER['PHP_SELF']); ?>?lang=en">English</p>

    Was soll diese Zeile bewirken?

    Es müsste schon mindestens

    ?><p><a href="<?php echo (htmlspecialchars(basename($_SERVER['PHP_SELF'])); ?>?lang="en">English</p>

    heißen. Besser wäre sicherlich

    echo "<p><a href="{$_SERVER['SCRIPT_NAME']} lang="en">English</p>\r\n";

    Die Verwendung von $_SERVER['PHP_SELF'] ist für XSS (Cross Site Scripting)-Angriffe gefährdet, wenn man die Variable nicht vor der Wiederausgabe mit htmlspecialchars() behandelt. Böse Buben könnten z.B. JavaScript-Code einschleusen oder bei Formularen das Formular "entführen".

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Das war aber nicht meine Frage. Trotzdem Danke.

      Um was es mir geht, hab ich doch oben geschrieben.