switch($_GET['lang']) auch auf included-Seiten anwenden
benpen
- php
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
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?
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
Das war aber nicht meine Frage. Trotzdem Danke.
Um was es mir geht, hab ich doch oben geschrieben.