phibbo
Goto Top

Php Webseite mit mehreren Sprachen geht nicht

Moin

Ich habe ein problem.
Folgendes ich habe eine Internetseite am laufen die auf einen anderen Server umgezogen wurde.
Jetzt geht die umstellung der Sprachen nicht mehr.

<?php
include ("oben.php");  
?>

<?php if ($language == "de") { ?>              
			
			<br>
<table width="451" height="396" border="0" align="center" cellspacing="0" cellpadding="0">  
              <tr> 
                <td colspan="2" class="textoben">Schneidleistenherstellung seit   
                  &uuml;ber 30 Jahren!<br>
                  Weltweiter Vertrieb!</td>
              </tr>
              <tr> 
                <td width="199" class="textmitte">Moderne Fertigungstechnologien,   
                  qualifiziertes Personal und qualitativ hochwertige Produkte, 
                  garantieren Ihnen f&uuml;r jeden Bedarf ein optimales Produkt. 
                  Selbst enge Toleranzen werden eingehalten und die speziell bearbeiteten 
                  Oberfl&auml;chen der Messer erm&ouml;glichen ein einwandfreies 
                  Schneiden. Das verbessert die Qualit&auml;t des Schnittgutes 
                  und die Arbeitsproduktivit&auml;t.</td>
                <td align="center" width="252"><img src="images/sl.jpg" width="200" height="139"></td>  
              </tr>
              <tr> 
                <td valign="top" height="87" colspan="2" class="textmitte">Wir liefern alle   
                  g&auml;ngigen Schneidleisten in den Qualit&auml;ten: Rot f&uuml;r 
                  Standardmesser, grau f&uuml;r Hartmetall und HSS-Messer, wei&szlig; 
                  f&uuml;r Feinstkornmesser und Dreischneider.</td>
              </tr>
            </table> 
			
<?php } ?>

<?php if ($language == "en") { ?>  


			<br>
<table width="451" height="396" border="0" align="center" cellspacing="0" cellpadding="0">  
              <tr> 
                <td colspan="2" class="textoben">Manufacturer of Cutting Sticks for more than 30 years!<br>  
                  Worldwide distribution!</td>
              </tr>
              <tr> 
                <td width="199" class="textmitte">Modern manufacturing technologies, skilled personnel and high-quality materials  
				guarantee an optimal product that meets any requirements. Narrow tolerances and the specialized machined surface
				of the cutting sticks enables a clean cut. This improves the quality of the cutting goods as well as labor productivity.</td>
                <td align="center" width="252"><img src="images/sl.jpg" width="200" height="139"></td>  
              </tr>
              <tr> 
                <td valign="top" height="87" colspan="2" class="textmitte">We deliver all marketable cutting sticks in the qualities:  
				RED for standard knives, GREY for tungsten carbide and high speed steel knives, WHITE for fine grain knives and three
				knife trimmers.</td>
              </tr>
            </table>
			
<?php } ?> 

<?php if ($language == "fr") { ?>  

<br>
<table width="451" height="396" border="0" align="center" cellspacing="0" cellpadding="0">  
              <tr> 
                <td colspan="2" class="textoben">Fabrication de plinthes de cran depuis plus de 30 ans!<br>  
				  Distribution mondiale!</td>
              </tr>
              <tr> 
                <td width="199" class="textmitte">Les technologies de fabrication modernes, le personnel qualifiÈ et les produits qualitativement  
				de haute qualitÈ, vous garantissent un produit optimal pour chaque besoin. MÍme les tolÈrances Ètroites sont respectÈes et
				les surfaces spÈcialement travaillÈes des couteaux permettent des tranchants irrÈprochables. Cela amÈliore la qualitÈ du
				bien de coupe et la productivitÈ.</td>
                <td align="center" width="252"><img src="images/sl.jpg" width="200" height="139"></td>  
              </tr>
              <tr> 
                <td valign="top" height="87" colspan="2" class="textmitte">Nous fabriquons  pour toutes le reglettes en qualitÈ rouge pour  
				Lames en acier standard, grise et blanc /jaune por des lames en cabure de tungstËne et lames en ancier rapide.
				</td>
              </tr>
            </table>
			
<?php } ?>
				
<?php
include ("unten.php");  
?>

</body>
</html>

Das ist die index aber die umstellung der Sprache geht nicht.

Ich habe ein Debian server mit Plesk 12.
Fehlt mir da ein modul??
Die seite ist übrigends www.zank-gmbh.de.

Danke

Content-ID: 249992

Url: https://administrator.de/contentid/249992

Ausgedruckt am: 25.11.2024 um 18:11 Uhr

SlainteMhath
SlainteMhath 24.09.2014 um 09:30:50 Uhr
Goto Top
Moin,

mach mal das schliessende code Tag bitte richtig.
Ansonsten sehe ich nicht wo/wie die Variable "$language" gefüllt wird... Get? Post? Cookie?

lg,
Slainte
Phibbo
Phibbo 24.09.2014 aktualisiert um 09:40:08 Uhr
Goto Top
Danke hatte ich garnicht bemerkt.

Ich habe die seite so übernommen von dem anderen server. dort lief es wunderbar.

<?php 
if (empty($language))  {
      //  sprache vorgegeben
     
    
	// Verfügbare Sprachen
	$availablelanguages = "de,en,fr";  
	// falls kein sprache
	$defaultlanguage = "en";  
	// sprache ermitteln und ggf. voreinstellung
	// aktivieren
	function sprachermittlung() {
	global $defaultlanguage, $availablelanguages;
	$sprache = substr(getenv("HTTP_ACCEPT_LANGUAGE"),0,2);  
	$available = explode (",",$availablelanguages);  
	$status = 0;
	foreach ($available as $available)
	if ($sprache == $available) {
	$status = 1;
	}
	if ($status == 0) {
	$sprache = $defaultlanguage;
	}
	return $sprache;
	}
	$sprache = sprachermittlung();
	$language = $sprache;
	}
	
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>
<head>

<title>Zank-GmbH</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
<link href="text.css" rel="stylesheet" type="text/css">  
</head>

<body background="images/z1.jpg"><table cellpadding="0" cellspacing="0" align="center" width="800" border="0" class="rahmenaussen">   
<tr>
    <td class="holderobenlinks" width="10">&nbsp;</td>  
    
  <td width="400" height="70" class="head"><a href="index.php"><img src="images/logo4.gif" width="774" height="69" border="0"></a></td>  
    <td width="10">&nbsp;</td>  
  </tr>
  <tr>
    <td width="10" class="menue">&nbsp;</td>  
    
 <td align="right" class="menue"><?php if ($language == 'de') { ?>  <img src='images/einzigerhersteller.gif' width='280' height='20'> <?php } ?>  
 								 <?php if ($language == 'en') { ?>  <img src='images/einzigerhersteller_en.gif' width='280' height='20'> <?php } ?>  
								 <?php if ($language == 'fr') { ?>  <img src='images/einzigerhersteller_fr.gif' width='280' height='20'> <?php } ?>  
 								<img src="../images/platzhalter.gif" width="400" height="1">  
								<a href="<?php basename($PHP_SELF); ?>?language=de"><img src="images/ger.gif" width="25" height="17" border="0"></a>&nbsp;  
								<a href="<?php basename($PHP_SELF); ?>?language=en"><img src="images/eng.gif" width="25" height="17" border="0"></a>&nbsp;  
								<a href="<?php basename($PHP_SELF); ?>?language=fr"><img src="images/fra.gif" width="25" height="17" border="0"></a></td>  
    <td width="10" class="menue">&nbsp;</td>  
  </tr>
  <tr>
    <td class="main">&nbsp;</td>  
    <td height="480" class="main"><br>  

	
	
	<!--Neue Tabelle-->
      
	  <table align="center" width="780" height="450" border="0" cellpadding="0" cellspacing="0">  
        <tr> 
          <td width="121" valign="top">   
            <!--Menü Tabelle--->
            <table cellpadding="0" cellspacing="5" width="134" border="0">  
              <tr>
                
            <td width="117" height="25" class="menuelinks"><a class="menue_link" href="index.php?language=<?php echo $language; ?>"><?php if ($language == 'de') echo Startseite; if ($language == 'en') echo Home; if ($language == 'fr') echo Maison ?></a></td>  
              </tr>
              <tr>
                
            <td height="25" class="menuelinks"><a class="menue_link" href="produkte.php?language=<?php echo $language; ?>"><?php if ($language == 'de') echo Produkte; if ($language == 'en') echo Products; if ($language == 'fr') echo Produits ?></a></td>  
              </tr>
              <tr>
                
            <td height="25" class="menuelinks"><a class="menue_link" href="kontakt.php?language=<?php echo $language; ?>"><?php if ($language == 'de') echo Kontakt; if ($language == 'en') echo Contact; if ($language == 'fr') echo Contact ?></a></td>  
              </tr>
              <tr>
                
            <td height="25" class="menuelinks"><a class="menue_link" href="impressum.php?language=<?php echo $language; ?>"><?php if ($language == 'de') echo Impressum; if ($language == 'en') echo Impressum; if ($language == 'fr') echo Impressum ?></a></td>  
              </tr>
              <tr>
                
            <td height="25" class="menuelinks">&nbsp;</td>  
              </tr>
            </table>
            
			
            </td>
          <td valign="top" width="500" class="title" align="left">  
		  

das ist in der oben.php
SlainteMhath
SlainteMhath 24.09.2014 aktualisiert um 10:05:37 Uhr
Goto Top
Hui, der Code ist ja wild :P

Zeile 2 bis 29 lassen sich ersetzen durch:
if (empty($language))  { 
	$availablelanguages = array("de","en","fr");  
	$defaultlanguage = "en";   

	function sprachermittlung($default, $available) { 
		$sprache = substr(getenv("HTTP_ACCEPT_LANGUAGE"),0,2);   
		
		if(in_array($sprache, $available)) {
			return $sprache;
		} else {
			return $default; 
		} 
	}
$language = sprachermittlung($defaultlanguage, $availablelanguages); 
} 

Ungeklärt ist immer noch wo $language initial gefüllt wird (oder warum fragst du mit "if empty..." ab?)

/EDIT: Bugfix face-smile
Phibbo
Phibbo 24.09.2014 um 10:29:36 Uhr
Goto Top
Ich habe diesen code nicht geschrieben. ich habe die seite nur übernommen.
Phibbo
Phibbo 24.09.2014 um 10:48:51 Uhr
Goto Top
Wo könnte ich denn diese anweisung finden??
Gibt es eine Lösung mein problem in der oben php schnell zu lösen?
110135
Lösung 110135 24.09.2014 aktualisiert um 11:08:57 Uhr
Goto Top
Hallo,

ich habe mir deine Seite einmal eben angeschaut. Die Variable $language wird an als Query-String (sprich per GET) an die URL angehängt:
--> index.php?language=de

setze doch einmal
$language = $_GET['language'];   

in deinen Code ein.
Bitte vor dem
if (empty($language))  { 

Geht es dann?

LG,
Florian
SlainteMhath
SlainteMhath 24.09.2014 um 10:59:12 Uhr
Goto Top
Wo könnte ich denn diese anweisung finden??
In dem du in allen beteiligten PHP Files nach "$language" suchst.

Was genau bedeutet denn eigentlich "Jetzt geht die umstellung der Sprachen nicht mehr."? Wird gar nichts mehr angezeigt, oder immer nur die default Sprache? Oder gibt's Fehlermeldungen? Werden der Seite beim Aufruf Get/Post Parameter mit übergeben?
drobskind
drobskind 24.09.2014 um 11:08:17 Uhr
Goto Top
Noch ein kleiner Hinweis, der jetzt nichts mit der Lösungsfindung zu tun hat...

"Deutschland einziger Hersteller" ist grammatikalisch nicht wirklich korrekt face-wink

Gruß
drobskind
Phibbo
Phibbo 24.09.2014 um 11:09:50 Uhr
Goto Top
Juhu jetzt geht es wieder.
Es wurde immer nur deutsch angezeigt.
Danke flow.ryan das war die Lösung.