kostenloser Webspace werbefrei: lima-city


Session... Und was nun?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    direx

    direx hat kostenlosen Webspace.

    Tach auch!

    Ich will ein Loginsystem schreiben. Das mit der Anmeldung und Formkular und mit der Datenbank geht schon alles. Ich bleibe aber bei der SessionID stecken. Ich habe 2 Dateien. Die eine erzeugt eine SessionID und gibt sie an die andere per URL weiter. Das funktioniert auch so gut.
    Nun weiss ich aber nicht, was die 2. Datei mit der Session-ID machen soll. Ich kann sie zwar abfragen und ueber echo ausgeben, aber das ist ja nicht der eigentliche Sinn der sid. Ich habe schon versucht, den Benutzernamen in der sid zu speichern ($_SESSION["username"] = "test";), aber wenn ich versuche, an diesen in der 2. Datei heranzukommen, sagt er mir, dass _SESSION keine gueltige Variable ist.

    Was mache ich falsch?

    mfg direx
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. derturbohummel

    derturbohummel hat kostenlosen Webspace.

    Einfachste L?sung:

    Machst du vorher session_start()? Wenn nicht, ruf vorher diese Funktion auf (in beiden dateien).

    Sollte es das nicht sein, mach mal
    echo session_id();
    und poste hier, was dabei raus kommt. Oder mach einen Vardump ?ber die Sessions
  4. Autor dieses Themas

    direx

    direx hat kostenlosen Webspace.

    Datei #1 sieht so aus:

    <?php
    session_start();
    $_SESSION["username"] = "kunz";
    session_name('session');
    echo "<a href=\"sql2.php?".session_name()."=".session_id()."\">test</a>\n";
    ?>


    Und das ist die 2. Datei (sql2.php):

    <?php
    session_start();
    echo $session["username"];
    ?>


    Als Usnernamen zeigt es mir hier nur den 1. Buchstaben/zahl der SessionID an!
    Wenn ich nun aber die 2. Datei nur so aussehen lasse:

    <?php
    $_GET['session'];
    echo $session;
    ?>


    zeigt es mir zwar die Sesionid an, die in der URL mitgegeben wurde, aber das bringt mich nicht wirklich weiter, weil ich nicht weiss, wie man prueft, ob diese SessionID auch gueltig is. Wenn man in der URL naemlich per Hand etwas umaendert, dann aendert sich auch die SessionID, die angezeigt wird!
  5. blub? :biggrin:

    wieso machst du das ?".session_name()."=".session_id()."
    php is nett, php macht das automatisch mit allen links, bzw. verlinkungen ;)

    also einfach
    datei #1

    <?php
    session_start();
    $_SESSION["username"] = "kunz";
    session_name('session');
    echo "<a href=\"sql2.php\">test</a>\n";
    ?>

    sql2.php

    <?php
    session_start();
    echo $_SESSION["username"]; // nich session sondern $_SESSION !!
    ?>

    datei #2

    <?php
    $_GET['session'];
    echo $session;
    ?>

    lol?
    die session is keine get sache
    die session wird ggf. auch in einem cookie gespeichert, da der php parser dann nich alle links umwandeln muss
    also gehts nur so
    datei #2

    <?php
    $session = $_SESSION['username'];
    echo $session;
    ?>

  6. Autor dieses Themas

    direx

    direx hat kostenlosen Webspace.

    Danke, lucas9991! Das hat mir sehr weiter geholfen. Das mit dem benutzernamen aus der SessionID auslesen geht jetzt perfekt.

    Aber jetzt bleibe ich schon wieder stecken: Was nun mit dem Benutzernamen? Momentan habe ich so geloesst, dass jedesmal eine Verbindung zur Datenbank aufgebaut wird, um zu pruefen, ob es den user gibt und das Passwort gibt. Das ist doch aber scheisse, oder? Ich wollte ja eine Photoslideshow machen (die gibt es auch schon und es funzt auch alles). Und in der index.php von der Photoslideshow sind nun die ganzen Bilderlinks mit Kommentaren gespeichert.
    Wenn man da nun auf "naechstes Bild" klickt, dann wird eben "index.php?picid=2&session=56437fgh34758bfgyob789ghwe" aufgerufen. Also wird dann wieder eine verbindung zur DB aufgebaut.
    Geht das nur so, oder kann man es auch eleganter loesen (zu Hause auf meinen lokalen Apache ist das zwar ganz schnell, aber ich kann mir vorstellen, dass es mit mysql.lima-city.de etwas langsamer geht)?"

    mfg
    direx
  7. Hi, ich wollte keinen neuen Thread aufmachen. Da frage ich mich: Wie macht man dann dort eine Abfrage ob diese Sessions existieren?
  8. Autor dieses Themas

    direx

    direx hat kostenlosen Webspace.


    Hi, ich wollte keinen neuen Thread aufmachen. Da frage ich mich: Wie macht man dann dort eine Abfrage ob diese Sessions existieren?

    Das ist nicht sehr schwer:

    if (isset($_SESSION["was auch immer"]))
    {
    Session Existiert
    }

    Du musst nun nur noch pruefen, ob diese Session auch gueltig ist..
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!