Cookies FÜr Spracheinstellung

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

  • Cookies FÜr Spracheinstellung

    Hi @ all

    Ich habe eine dreisprachige Website (Italienisch, Englisch und Deutsch).
    Mittels eines Parameter, welches mit dem GET-Verfahren der URL angehänkt wird, kann ich die Sprache einstellen.

    Nun habe ich ein Problem:

    Die momentane Default-Sprache wenn man auf der Site kommt ist Italienisch.
    Ich möchte, dass wenn eine Person die Site auf Deutsch besucht hat, diese beim nächsten Aufruf wieder auf Deutsch angezeigt wird, um ihr ein mühsames umschalten der Sprache zu ersparen.

    Ich könnte mir vorstellen, dass mein Problem mit Hilfe eines Cookies lösbar ist, aber ich habe null Ahnung von Cookies... Wer kann mir dabei helfen???

    Besten Dank im Voraus!

  • #2
    Wenn du dich doch nicht mit Cookies auskennst, schau dir doch am besten mal das Manual an.

    Gruß,
    Flo.

    Kommentar


    • #3
      Ich hatte diese Page bereits besichtigt, habe aber grundsätzlich das Problem, das der Cookie zwar anfabgs gesetzt wird, jedoch nur nach ca 3x Betätigung des Sprachenänderungs-Buttons auch aktualisiert wird

      Kommentar


      • #4
        Zeig mal etwas Code!

        Kommentar


        • #5
          Zuerst wird in lang3.php abgefragt ob schon ne Sprache festgelegt wurde. Wenn nicht dann "de" als Defaultwert.

          Dann wird das Formular abgefragt, ob geändert wurde.

          Jetzt wird das Cookie gesetzt.

          Oben hab ich ne Ausgabe gemacht für den Inhalt des Cookies und unten ne Ausgabe für den Inhalt von $lang.

          Da der Header aber schon gesendet wurde, wird als Cookieinhalt immer noch der alte Wert in der Ausgabe angezeigt.

          Tatsächlich ist das aber schnurz, da bei einem neuen Aufruf der gleichen Seite oder einer anderen Seite der korrekte Cookieinhalt vorhanden ist und auch korrekt angezeigt wird.

          ------------

          hier die lang3.php:


          <?php
          session_start();
          error_reporting(E_ALL); // alle Fehler anzeigen
          // session_register("lang"); // Variable die anzeigt welche Sprache verwendet wird
          session_register("first"); // Variable die nur beim ersten Aufruf gebraucht wird

          if(!$first) //Variable ist beim ersten Aufruf nicht gesetzt
          {
          $lang = "de";
          $first = "OK";
          }


          if (isset($_REQUEST['formaction'])) // Formular prüfen
          {
          if(isset($_REQUEST['checkbox_en']))
          {
          $lang = "en"; // einbinden der englischen Version
          }
          if(isset($_REQUEST['checkbox_de']))
          {
          $lang = "de"; // einbinden der deutschen Version
          }
          unset($_REQUEST['formaction']);
          }



          setcookie ( "language",$lang,time()+ 360000);

          ?>

          <html>
          <head>
          <title>Spracheingabe</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>
          <body bgcolor="#FFFFFF">

          <?php



          if(isset($_COOKIE['language']))
          {
          echo "Wert im Cookie 'language' : ".$_COOKIE['language'];
          }

          ?>


          <form name="form" method="POST" action="lang3.php">
          <p>Deutsch:
          <input type="checkbox" name="checkbox_de" value="checkbox">
          </p>
          <p>Englisch:
          <input type="checkbox" name="checkbox_en" value="checkbox">
          </p>
          <p>
          <input type="submit" value="Ändern" name="formaction">
          </p>
          </form>

          <p>Die aktuelle Sprache ist: <?php echo $lang; ?></p>
          <p><a href="lang4.php">N&auml;chste Seite</a></p>
          <p>&nbsp; </p>
          </body>

          </html>


          und die lang4.php:

          <?php
          session_start();
          error_reporting(E_ALL); // alle Fehler anzeigen
          ?>

          <html>
          <head>
          <title>Spracheingabe2</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>
          <body bgcolor="#FFFFFF">

          <?php
          echo "Im Cookie ist: ".$_COOKIE['language'];
          ?>

          <p>&nbsp;</p>
          <p><a href="lang3.php">zur ersten Seite</a></p>
          </body>

          </html>


          Ein kurzes Feedback obs klappt, wär nett.

          Bernd

          Kommentar


          • #6
            hi, es scheint teilweise zu funktionieren, folgendes ist mir aufgefallen:

            wenn ich das skript laufen lasse, ist der wert im cookie zwar korrekt, doch anfangs wird die sprache immer auf "de" eingestellt. ist das normal, oder mache ich etwas falsch?

            Kommentar


            • #7
              Wir müssen ja nicht immer alles doppelt posten - schau mal ins andere phpforum.

              Gruß

              Bernd

              Kommentar

              Lädt...
              X