dennis94m: mehrsprachig mit HOST

parallel zu meinem anderen threat möchte ich jetzt mal auf Malcolm Beck´s eingehen:

  
<?php  
if (HOST == 'de.')  
{  
  require_once 'de-DE.php';  
}  
else  
{  
  require_once 'en-GB.php';  
}  
?>  

funktioniert bei mir leider nicht.
hab das ganze mal in die seite eingebaut. bekomme immer nur die englische sprache angezeigt. woran könnte das liegen. hab die subdomains angelegt!

  1. 2 Dinge:
    Du hast vermutlich keine Konstant die HOST heisst sondern höchstens HTTP_HOST als Eintrag im Superglobalen Array $_SERVER[];

    Da drinnen wird vermutlich de.example.com stehen und nicht de.

    Also wird deine Bedingung in beiden Fällen nicht zutreffen und du erhältst erwartungsgemäß immer die en-Variante.

    Prüfe also, ob "de." am Anfang des HTTP-Host zu finden ist.

    btw: warum erhalte ich bei en.example.com automatisch en-GB vorgesetzt und nicht en-US oder ein generisches en-File? Und warum bekomm ich bei de.example.com de-DE?

    1. also das ganze geändert in:

        
      <?php  
      $host =  $_SERVER['HTTP_HOST'];  
        
      if ($host == 'de.')  
      {  
        require_once 'de.php';  
      }  
      else  
      {  
        require_once 'en.php';  
      }  
      ?>  
      
      

      funktioniert nach wie vor leider nicht.
      bitte um hilfe,lg dennis

      1. Moin!

        also das ganze geändert in:

        <?php
        $host =  $_SERVER['HTTP_HOST'];

          
        Jetzt hast du suit's Hinweis berücksichtigt, dass $host nicht aus dem Nichts entsteht - aber den weiteren Hinweis, dass nicht "de." drinsteht, weiterhin ignoriert.  
          
        
        > ~~~php
        
        if ($host == 'de.')  
        
        > {  
        >   require_once 'de.php';  
        > }  
        > else  
        > {  
        >   require_once 'en.php';  
        > }  
        > ?>  
        > 
        
        

        Logische Konsequenz:

        funktioniert nach wie vor leider nicht.
        bitte um hilfe,lg dennis

        Dir ist vollständig geholfen worden. Wende alle Hinweise an - wenn dann noch was nicht geht, wäre eine Nachfrage gerechtfertigt, derzeit noch nicht.

        - Sven Rautenberg

        1. das mit dem de. verstehe ich nicht.
          ich habe die URL selbstverständlich mit de.meineradresse.com getestet und auch mit en.meineadresse.com und auch mit meineadresse.com alles zeigt englisch an.
          könntest du das etwas genauer erläuter ich steh grad etwas auf dem schlauch
          vielen dank im vorraus,
          lg, dennis

          1. Mahlzeit dennis94m,

            das mit dem de. verstehe ich nicht.

            Hast Du schonmal Wunsch ("In $host soll 'de.' drinstehen!") und Wirklichkeit ("Was steht denn eigentlich in $host drin?") miteinander verglichen? Hast Du Dir mal ausgeben lassen, was wirklich in der Variablen enthalten ist?

            könntest du das etwas genauer erläuter ich steh grad etwas auf dem schlauch

            Wieso sollte irgendjemand irgendetwas genauer erklären? Debugging wirkt oft Wunder ...

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. egal es funktioniert
              ein kurzer kleiner satzt wie das muss so aussehen
              if ($host == 'de.meineseite.com')
              hätts auch getan.
              in diesem fall hat das nichtmal was mit nem lernprozess zu tun sonst hätt ich das noch verstanden. danke ;-)

              1. egal es funktioniert
                ein kurzer kleiner satzt wie das muss so aussehen
                if ($host == 'de.meineseite.com')
                hätts auch getan.

                Dann hättest du aber nicht selbst denken müssen - jetzt bist du zu einer Lösung gekommen (allein, ohne vorkaufen). Deine Lösung ist nicht perfekt, aber du hast es allein gemacht.

                in diesem fall hat das nichtmal was mit nem lernprozess zu tun sonst hätt ich das noch verstanden. danke ;-)

                Doch doch, du hast dein Problem "irgendwie" gelöst - wenn du dir diese Herangehensweise zukünftig zunutze machst, war dein Lernprozess erfolgreich.

                Zum Thema "Lösung nicht perfekt":

                Ich hatte nicht gemeint, dass du den Host mit einem vollständigen Wert/String vergleichen sollst, sondern dass du prüfst, ob im HTTP-Host die Zeichenkette de. am Anfang steht.

                Das hat den Vorteil, dass du auch unterschiedliche Domains verwenden kannst - deinem Script ist es dann egal, ob du mit de.example.com oder de.example.net daherkommst.

              2. Hi,

                ein kurzer kleiner satzt wie das muss so aussehen
                if ($host == 'de.meineseite.com')
                hätts auch getan.

                Nein, denn das "muss" es ja nicht mal.

                in diesem fall hat das nichtmal was mit nem lernprozess zu tun sonst hätt ich das noch verstanden.

                Wenn du nur derart aufbereitete Häppchen verstehst - dann hat dein "Verstehen" nichts mit einem Lernprozess zu tun.

                Du solltest langsam wirklich mal anfangen, die Antworten, die du hier bekommst, *aufmerksam* zu lesen und nicht nur zu überfliegen; und ein bisschen mehr Mitdenken deinerseits könnte auch nicht schaden.

                MfG ChrisB

                --
                Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. hi,

    parallel zu meinem anderen threat möchte ich jetzt mal auf Malcolm Beck´s eingehen:

    Es wäre aber besser gewesen, in deinem besethenden Thread zu bleiben, statt jetzt ein neues für das gleiche Thema zu eröffnen, nun wirft man mir auch noch beihilfe zu einem Doppelposting vor.

    <?php
    if (HOST == 'de.')

    
    >   
    > funktioniert bei mir leider nicht.  
    > hab das ganze mal in die seite eingebaut. bekomme immer nur die englische sprache angezeigt. woran könnte das liegen. hab die subdomains angelegt!  
      
    Ich hatte ja dazu geschrieben, dass du die abfrage, ob „de.“ oder nicht selbst austüfteln musst, eventuell hilft dir ja [diese Seite](http://phpperformance.de/pruefen-ob-ein-string-eine-bestimmte-zeichenkette-enthaelt/) auf die sprünge.  
      
    Deine [jetzige Lösung](https://forum.selfhtml.org/?t=186398&m=1237936) jedenfalls ist in jeder Hinsicht eine falsche, wenn sie auch auf dem ersten Blick richtig erscheint.  
      
    mfg
    
    -- 
    echo '<pre>'; var\_dump($Malcolm\_Beck`s); echo '</pre>';  
      
    array(2) {  
      ["SELFCODE"]=>  
      string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("  
      ["Meaningful"]=>  
      string(?) "[Der Sinn des Lebens ist deinem Leben einen Sinn zu geben](http://www.youtube.com/watch?v=VS9ecfD0K9c)"  
    }