Sessionvar wird nicht überschrieben!

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

  • Sessionvar wird nicht überschrieben!

    Hallo Zusammen,
    Ich habe ein kleines Problem mit einer Session. Wenn der User die Seite Betritt, wird automatisch die Sprache des Browsers übernommen. Nun, das funktioniert alles... Nur kann der User aber keine andere Sprache mehr wählen! Irgendwie kann die Session nicht überschrieben werden. (Dieser Teil ist in der Index.php!)

    PHP-Code:
    session_path("./save");
    session_start;

    if (!isset(
    $lang)) {
    include (
    "include/getlang.php"); //Browserspracherkennung
    }
    if (isset(
    $lang)) {
        
    $_SESSION["lang"] = $lang
        }

    echo 
    "
    <b>Bitte wählen Sie eine Sprache</b>
    <a href=\"?lang=de\">Deutsch</a>
    <a href=\"?lang=en\">English</a>"
    ;

    echo 
    $_SESSION["lang"]; 
    Kann mir jemand weiterhelfen?
    THX
    Figugegu

  • #2
    Hi,

    wenn ich das Script bei mir so laufen lasse:

    PHP-Code:
    <?php
    session_start
    ;

    # $lang = $_GET['lang'];

    if (!isset($lang)) {
    $lang="de";
    }
    if (isset(
    $lang)) {
        
    $_SESSION["lang"] = $lang;
        }

    echo 
    "
    <b>Bitte wählen Sie eine Sprache</b>
    <a href=\"?lang=de\">Deutsch</a>
    <a href=\"?lang=en\">English</a>"
    ;

    echo 
    $_SESSION["lang"];
    ?>
    ...funktioniert es tatsächlich nicht - wenn ich das # vor $lang = $_GET['lang'];
    entferne funktioniert es. wahrscheinlich ist register_globals aus, oder ?

    Kommentar


    • #3
      Ich verstehe nichts mehr...
      Ne, register_globels sind nicht off!
      Folgendes:
      PHP-Code:
      session_start;

      if (!isset(
      $lang)) {
      $lang="de";
      }
      if (isset(
      $lang)) {
          
      $_SESSION["lang"] = $_GET['lang'];
          }

      echo 
      "
      <b>Bitte wählen Sie eine Sprache</b>
      <a href=\"?lang=de\">Deutsch</a>
      <a href=\"?lang=en\">English</a>
      <a href=\"?lang=fr\">Französisch</a>"
      ;

      if (
      $_SESSION["lang"]==de){
      echo 
      "deutsche ausgabe <a href='?test.php'>Testlink</a>";
      }
      if (
      $_SESSION["lang"]==en){
      echo 
      "englische ausgabe <a href='?test.php'>Testlink</a>";
      }
      if (
      $_SESSION["lang"]==fr){
      echo 
      "französische ausgabe <a href='?test.php'>Testlink</a>";

      Eigentlich sollte doch jetzt immer der Inhalt der Gewählten Sprache erscheienen, nicht? mach ich was falsch?
      Wenn ich jetzt den Testlink betätige, sollte doch die Sprache in der Session enthalten bleiben, nicht? (geht aber nicht!) Muss ich da noch was zum Link anfügen?
      THX

      Kommentar


      • #4
        PHP-Code:
        if (!isset($lang)) {
        $lang="de";
        }
        if (isset(
        $lang)) {
            
        $_SESSION["lang"] = $_GET['lang'];
            } 
        ^^ bissi verplant, was deine bedingungen angeht?

        - wenn lang nix da lang = de
        - wenn lang da dan session = get-var ... häh?
        ... und wenn get-var leer, dann geht nix mehr.
        Kissolino.com

        Kommentar


        • #5
          OK, mag sein...
          Sieht jetzt so aus, funzt trozdem nicht!
          PHP-Code:

          session_save_path
          ("save"); 
          session_start;

          if (!isset(
          $lang)) {
          $lang="de";
          }
          $_SESSION["lang"] = $lang;

          echo 
          "
          <b>Bitte wählen Sie eine Sprache</b>
          <a href=\"?lang=de\">Deutsch</a>
          <a href=\"?lang=en\">English</a>
          <a href=\"?lang=fr\">Französisch</a>"
          ;

          if (
          $_SESSION["lang"]==de){
          echo 
          "deutsche ausgabe <a href='?test.php'>Testlink</a>";
          }
          if (
          $_SESSION["lang"]==en){
          echo 
          "englische ausgabe <a href='?test.php'>Testlink</a>";
          }
          if (
          $_SESSION["lang"]==fr){
          echo 
          "französische ausgabe <a href='?test.php'>Testlink</a>";

          egal ob ich jetzt deutsch oder was auch immer wähle, die Sprache bleibt bei der ersten, die in die Session geschrieben wurde!! Mit $_SESSION['$bla'] wird doch in die Session geschrieben, oder?

          Kommentar


          • #6
            if (!isset($lang)) {

            $lang="de";

            }

            $_SESSION["lang"] = $lang;
            PHP-Code:
            if (!isset($_SESSION["lang"])) {

            $_SESSION["lang"]="de";


            Offe

            Kommentar


            • #7
              Danke, nur leider ändert das nichts. Es funzt leider nicht...

              Kommentar


              • #8
                PHP-Code:
                if (isset($_GET['lang'])) {
                  
                $_SESSION["lang"]=$_GET['lang'];
                } elseif (!isset(
                $_SESSION["lang"])) {
                    
                $_SESSION["lang"]="de";

                Offe
                Zuletzt geändert von Offe1; 13.01.2004, 20:26.

                Kommentar


                • #9
                  Yes!
                  Vielen Dank, das wars!
                  Hatte da wohl was mit GET&CO verwechselt...

                  THX
                  Figugegu

                  Kommentar

                  Lädt...
                  X