Ankündigung

Einklappen
Keine Ankündigung bisher.

Sprache auf Webseite ändern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sprache auf Webseite ändern

    Hi
    Ich will auf einer Index.php per dropdownmenü die Sprache ändern.
    So sieht der Teil der Index.php aus:

    Code:
    echo "<form method=post>";
     echo "<select size=1 name=\"language\">";
    $handle=opendir('/usr/export/www/vhosts/***/.../***/DMStest/language');
      while ($file = readdir ($handle))
      {
        if ($file != "." && $file != "..")
         {
          echo "<option value=\"$file\">$file</option>\n";
         }
       }
      closedir($handle);
      echo "</select>";
      echo "  ";
      echo "<input type=submit name=\"post\" value=\"$array[167]\" >";
      if ($_POST['language']=="german")
      {setcookie ("Language","german", time() + 86400);
     echo "<script language=\"javascript\">document.location.reload('1')</script>";}
      if ($_POST['language']=="english")
      {setcookie ("Language","english", time() + 86400);
       echo "<script language=\"javascript\">document.location.reload('1')</script>";}
    echo "</form>";
    Am Anfang der Datei wird überprüft ob Cookie gesetzt ist und entsprechend wird die Sprache geladen:
    Code:
    if (isset($_COOKIE['Language']))
      {
       $language = $HTTP_COOKIE_VARS[Language];
       $string1 = "/usr/export/www/.../.../../../DMStest/language/".$language;
       copy($string1,"/usr/export/www/.../.../../../DMStest/tmp/language");
       $datei = ,"/usr/export/www/.../.../../../DMStest/tmp/language";
       $array = file($datei);	  
      }
    else
    {
       $language = "german";
       $datei = "/usr/export/www/.../.../../../DMStest/tmp/default";
       $array = file($datei);
    }
    Mit diesem Code sollte die Index.php in die entsprechende Sprache übersetzt werden.
    Das Problem ist das die Seite neu geladen werden muss um die Sprache zu aktualisieren, doch bei meiner Methode wird die Seite bis ins unendliche neu geladen.
    Wer kann mir ne Lösung sagen das die Seite enweder gleich bei der Auswahl im dropdownmenü gewechselt wird oder aber wenn ich auf den Button drück und die Seite dadurch nur einmal neu geladen wird?
    mfg
    ben


  • #2
    Warum gibst Du denn immer das Zeugs da aus?
    Code:
    <script language=\"javascript\">document.location.reload('1')</script>
    Ich kenn mich mit JS nicht besonders aus.
    Sollte das nicht nur unter irgendeiner Bedingung ausgeführt werden. So in einem Event-Handler?

    Wozu soll das überhaupt gut sein?
    Wenn Du mit POST schon einen neuen Wert übergeben hast, warum dann nochmal neu laden? Nach dem POST hast Du doch schon die neue Sprache.

    Irgendwie kommt mir der Aufbau etwas komisch vor.
    **********************************
    Nein, ich bin nicht die Signatur.
    Ich putze hier nur.
    **********************************

    Kommentar


    • #3
      ich gebs aus damit die seite akutalisiert wird um zu sehn ob das mit der sprache klappt...

      dachte ich auch das mit post alles gut wird, wirds aber nicht, frag mich nich wieso.
      immer wenn ich auf post gedrückt hab hat er zwar den cookie gesetzt aber nich die sprache aktualisiert. wenn ich aber n manuellen reload gemacht hab dann war die sprache geändert...

      zum aufbau: bin halt noch n anfänger, daher Anfängerforum :wink:

      Kommentar


      • #4
        Noch ein paar Anmerkungen:

        - Jede Zeile ein echo muss nich sein.
        - ' würde dir einiges an escapen ersparen.
        - $_COOKIE['Language'] und $HTTP_COOKIE_VARS[Language] ?
        Diese Erweiterung ist EXPERIMENTELL.
        [...]
        Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

        Kommentar

        Lädt...
        X