PHP SESSION funktioniert nicht richtig!?

  • Hallo Leute, ich habe grade das Problem, das dich SESSION Anweisung die ich gesetzt habe nicht ausgegeben wird. Es gibt keine Notiz und kein Error. Das vom User geschriebene Wort wird einfach nicht angezeigt, nachdem ich jetzt Stunden damit verbracht habe eine Lösung zu finden, frage ich hier um Rat!?


    Mein Code:


    anmelden.php:


    <?php
    session_start();
    $_SESSION = "benutzername" == "benutzername";
    ?>


    profil.php:


    <?php
    echo $_SESSION = "benutzername";
    ?>


    Fehlt da etwas? ich kenn mich noch nicht so gut mit dem Befehl SESSION aus.


    Vielen Dank im Voraus! Lg! :)



  • Session müssen auf jeder Seite intialisiert/gestartet werden, überall wo du Sessions benutzt willst, muss vorher ein session_start(); stehen.
    Zudem ist die obige Schreibweise für Sessions falsch, Sessions werden normalerweise mit $_SESSION['indexname'] = wert; intialisiert.


    Selbiges gilt unten bei der Ausgabe, mit $_SESSION['benutzername'] kann auf die Session zugegriffen werden :)


    Eine Einführung in Session kann die Schwesternseite von HTML-Seminar geben: Sessions


    mfg Nita


    Edit: Bitte beim nächsten Post den Code in die entsprechenden Code-Tags([code=php]) packen, erhöht die Lesbarkeit.

  • Ok. Das habe ich jetzt verstanden, aber ich glaube mir ist grade noch ein wichtiges Problem aufgefallen. Ich habe gar nicht angegeben, wo man den "benutzernamen" eingeben soll. Ich habe jetzt die Klammern [] dahin gesetzt, ist das jetzt nicht ein Array?

  • Bei $_Session handelt es sich um einen superglobalen Array, der alle Sessions-Werte enthält und mit einem Index aufgerufen werden kann.


    Probiere einfach mal ein var_dump/print_r bei $_Session und du siehst das es sich um ein Array handelt.


    PHP
    print_r($_SESSION);


    Mehr Informationen zu anderen supergloabelen Variablen($_GET,$_POST,$_COOKIE.$_REQUEST etc.) in PHP gibts beispielsweise hier:
    http://www.w3schools.com/php/php_superglobals.asp

  • Ok. Das Problem ist nur das ich mich ehrlich gesagt noch nicht mit Arrays auskenne. Der Link zu der Session Erklärung kann ganz nützlich sein, aber ich habe noch kein if/else in meinem Code eingebracht, da ich erstmal sehen will ob es überhaupt Funktioniert, also macht mich das Beispiel ein bisschen wirr.


    Diese Notiz wird im Moment ausgegeben:


    Notice: Array to string conversion in C:\XAMPP\htdocs\ImNetz.php on line 72
    Array

  • Am Besten wärs wenn du uns die betroffene(n) Zeilen deines Quellcodes zeigst.


    Spontan lässt sich nur sagen, dass du wahrscheinlich eine Stringfunktion auf ein Array anwendest,
    dabei wird der Array zu einem String konvertiert und so behandelt als ob der Inhalt des Strings
    "Array" wäre.

  • Auf der anmelden.php:

    PHP
    <?phpsession_start();$_SESSION = ["benutzername"] == $_benutzername;?>



    auf der ImNetz.php

    PHP
    <?phpsession_start();echo $_SESSION = ["benutzername"];?>



    Das ist der Momentane Quellcode, wenn ich auf Anmelden.php etwas schreibe und abschicke, soll auf imnetz.php das geschreibene Angeszeigt werden!

  • Du hast einen "Verständnisfehler".
    Mit = weist Du etwas zu.
    Du willst ja aber nicht
    $_SESSION
    den Inhalt
    ["benutzername"]
    zuweisen.


    = Zuweisung
    == Vergleichen auf Wert
    === Vergleichen auf Wert und Typ

  • PHP
    <?phpsession_start();$_SESSION = ["benutzername"] == $_benutzername;?>


    Du prüfst hier ob der Array mit dem Inhalt "benutzername" den gleichen Wert(geht nicht), wie die Variable $_benutzername hat, bei einem ja ergibt der Code 1, sonst garnichts.


    PHP
    <?phpsession_start();echo $_SESSION = ["benutzername"];?>


    hier weist du $_SESSION den Array zu, und versuchst das dann auszugeben, was so natürlich nicht geht.
    Diese Zeile verursacht dann auch schlussendlich die Fehlermeldung da der Array zu einem String konvertiert und dann ausgegeben wird.


    Ich analysiere nur was bei deinem Code passiert,wie es richtig gehören würde hat kanu, bereits in #3 geschrieben.

  • Ok. Ganz am Anfang starte ich die Session "session_start();.
    Dann gebe ich die Session an "$_SESSION".
    Dann gebe ich an was ausgegeben werden soll "['name']".
    Dann gebe ich an das der name dasselbe ist wie der eingegebene Wert "['name'] == 'irgentetwas' ".
    Jetzt habe ich alles auf anmelden.php richtig?!

  • Probier mal einfach mit diesem Script hier rum..!


    Raus kommt bei mir das hier: http://jsfiddle.net/p5xt6r74/1/embedded/result/


    Viel Spaß! :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!