Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Session Cookie wird anscheinend nicht gespeichert

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Session Cookie wird anscheinend nicht gespeichert

    Guten Tag,

    ich habe eine Website mit Multilanguage Support. Jeweils Deutsch und Englisch sind in Arrays ausgelagert. Mit einem klick auf einem Link, soll die Variable de oder en mitgegeben werden. Klicke ich aber auf eine andere Seite in z.b der Navigation. Springt die Sprache wieder auf die Standard Sprache, im meinem Fall de.

    Grober Aufbau meiner Files:

    index.php
    PHP-Code:
    <?php
        session_start
    ();
        include 
    './includes/core.lang.php';
        include_once 
    './includes/language/'.$lang_file;

    ?>
    <ul class="menu">
    <li><a href="index.php?page=home"><?php echo $lang['MENU_HOME']; ?></a></li>
    <li><a href="index.php?page=games"><?php echo $lang['MENU_GAMES']; ?></a></li>
    </ul>

    <a href="index.php?lang=de">DEUTSCH</a> - <a href="index.php?lang=en">ENGLISH</a>

    core.lang.php:

    PHP-Code:
    <?php    
        
    if(isset($_GET['lang']))
            {
                
    $lang $_GET['lang'];

                
    $_SESSION['lang'] = $lang;
                
    setcookie("lang"$langtime() + (3600 24 30), "/");
            }
        else if(isset(
    $_SESSION['lang']))
            {
                
    $lang $_SESSION['lang'];
            }
        else if(isset(
    $_COOKIE['lang']))
            {
                
    $lang $_COOKIE['lang'];
            }
        else
            {
                
    $lang 'de';
            }
        switch (
    $lang
            {
                case 
    'en':
                
    $lang_file 'lang.en.php';
                break;

                case 
    'de':
                
    $lang_file 'lang.de.php';
                break;
            }
    ?>
    Mein Problem ( anscheinend ) ist, das die Session bzw der Cookie nicht gespeichert wird.
    In Chrome ist unter meinem Domainnamen nichst zufinden


    Mit Freundlichem Gruß
    thetruestarr
    PHP Anfänger..

  • #2
    Du greifst auf die Session zu bevor du sie startest? Ich würd ja auf nen Notice und nen anschließendes Headers-Already-Sent tippen. Wie sieht denn der Response-Header vom "index.php?lang=en" aus?
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Wusste nicht genau, was du meinst. Hoffe das ist "Richtig"


      PHP Anfänger..

      Kommentar


      • #4
        Also kein Cookie. Error-Log?
        [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

        Kommentar


        • #5
          PHP-Code:
          error_reporting ( -); 
          ini_set 'display_errors'true ); 
          GIbt nichts aus :/
          PHP Anfänger..

          Kommentar


          • #6
            Ich habe eine neue Datei angelegt mit diesem Inhalt:

            PHP-Code:
            <?php
            setcookie
            ("cookie_name""cookie_value"time() + 10 60"/"); //10 Minuten
            echo $_COOKIE["cookie_name"];
            ?>
            Da gibt er nach neuladen der Seite auch etwas aus. Also muss es 100% an meinem Code liegen
            PHP Anfänger..

            Kommentar


            • #7
              Klicke ich aber auf eine andere Seite in z.b der Navigation. Springt die Sprache wieder auf die Standard Sprache, im meinem Fall de.
              Ich würd das mit dem Cookie mal alles auskommentieren und schauen das du es mit der Session hinbekommst. Wenn das dann läuft, kannst du immer noch ein Cookie schreiben/lesen. Du stellst dir da vermutlich selbst wo ein Bein, irgendwie wirkt der Code oben auch bisschen wirr.
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Ich habe alles was mit Cookies zutun hatte, auskommentiert.
                Nun es wird keine Session erstellt. Warum weiß ich nicht bzw. ich kann nicht sehen warum nicht
                PHP Anfänger..

                Kommentar


                • #9
                  Dann untersuch die Stelle wo die Session gesetzt werden sollte und prüfe warum PHP dort nicht hinkommt, warscheinlich eine Bedinung falsch oder so..

                  Wie sieht denn der aktuelle Code aus?
                  The string "()()" is not palindrom but the String "())(" is.

                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    Grobaufbau der Dateien:

                    index.php

                    PHP-Code:
                    <?php
                        session_start
                    ();
                        include 
                    './includes/core.lang.php';
                    ?>

                    Link mit Variable ( Entweder Deutsch oder Englisch )
                    <a href="index.php?page=home"><?php echo $lang['MENU_HOME']; ?></a>

                    Links zum Sprache ändern
                    <a href="index.php?lang=de">DEUTSCH</a> - <a href="index.php?lang=en">ENGLISH</a>
                    core.lang.php

                    PHP-Code:
                    <?php
                        
                    if (isset($_GET['lang'])) 
                        {
                            
                    $lang $_GET['lang'];
                            
                    $_SESSION['lang'] = $lang;
                            
                    // setcookie("lang", $lang, time() + (3600 * 24 * 30), "/");
                        
                    }elseif (isset($_SESSION['lang'])){
                            
                    $lang $_SESSION['lang'];
                        }
                    //    else if(isset($_COOKIE['lang']))
                    //    {
                    //        $lang = $_COOKIE['lang'];
                    //    }
                        
                    else{
                            
                    $lang 'de';
                        }
                        switch (
                    $lang
                            {
                                case 
                    'en':
                                
                    $lang_file 'lang.en.php';
                                break;

                                case 
                    'de':
                                
                    $lang_file 'lang.de.php';
                                break;
                            }
                        include_once 
                    './includes/language/'.$lang_file;
                    ?>
                    So sieht eine von den Sprachdateien aus
                    DE
                    PHP-Code:
                    <?php
                    $lang 
                    = array();
                    $lang['MENU_HOME'] = 'Startseite';
                    ?>
                    EN
                    PHP-Code:
                    <?php
                    $lang 
                    = array();
                    $lang['MENU_HOME'] = 'Home';
                    ?>
                    PHP Anfänger..

                    Kommentar


                    • #11
                      Deine core.lang.php wirft einen Parse Error ... Bringe die Syntax zuerst in Ordnung und dann:

                      Dann untersuch die Stelle wo die Session gesetzt werden sollte und prüfe warum PHP dort nicht hinkommt,
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Zitat von hausl Beitrag anzeigen
                        Deine core.lang.php wirft einen Parse Error ... Bringe die Syntax zuerst in Ordnung und dann:
                        Ich habe meine Codeteile in neue Dateien gepackt. So das es originalgetreu ist.

                        Und es hat funktioniert. Keine Fehler und Cookies wurden gesetzt.

                        Und wo sind da Parse Errors? Bekomme keine Fehler angezeigt

                        Jedenfalls: Warum funktioniert das "nachgebaute" aber das Original nicht?
                        PHP Anfänger..

                        Kommentar


                        • #13
                          Danke für die ganzen Hilfsversuche. Hab es hinbekommen...

                          Meine index.php war in UTF-8.. habs sie auf UTF-8 ohne BOM gestellt.. und nun geht es

                          Ich könnte Haare ausreißen
                          PHP Anfänger..

                          Kommentar

                          Lädt...
                          X