Problem mit cookies

  • Hallo zusammen, ich habe php my forum und habe einen php proxy.
    ich möchte jetzt das man den proxy nur nutzten kann wenn man sich im forum eingeloggt hat.
    wie mach ich das mit der session?!
    MfG Handi

    Einmal editiert, zuletzt von handi (27. Mai 2009 um 14:02)

  • echo $_COOKIE['name'] gibt lediglich den Inhalt eines Cookies aus. Wenn du mal auf php.net/echo nachschaust, wirst du sehen, dass echo nichts mit einer Abfrage zu tun hat. Eine Abfrage des Cookies sähe eher so aus:

    PHP
    if ($_COOKIE['namedescookies'] != 'zu erwartender cookie wert')
      exit;

    So bricht er ab beim laden der Seite wenn das Cookie nicht den richtigen Wert hat.
    Du müsstest uns aber mehr Infos geben damit das richtig funktioniert. Wo wird denn z.B. das Cookie gesetzt?
    Wie genau willst du das Cookie im Zusammenhang mit dem proxy verwenden? Willst du, wenn man auf die index.php kommt und nicht eingeloggt ist, dass die Seite nicht geladen wird? Wenn ja - dann müsstest du die Abfrage des Cookies in eine Datei legen, die auf jeder Seite des Forums eingebunden wird. Ansonsten wird nur die Startseite blockiert sein.

  • Hier mal ein Beispiel:

    PHP
    <?php
    // wenn eingeloggt
    setcookie("proxy_access", md5("abc_" . $user_id . "_abc")); // Key ausdenken, den man nicht so einfach fälschen kann...
    ?>
    PHP
    <?php
    // Prüfung
    if ($_COOKIE['proxy_access'] == md5("abc_" . $user_id . "_abc"))
    {
        // proxy anzeigen
    }
    ?>

    Gruß crAzywuLf :D

  • Ok denke ich habs jetzt.
    hab in dei index des proxy noch phore's code genommen und halt die richtigen weerte
    @crazz wolfe danke für die hilfe aber ich weis nicht wo ich den ersten code einfügen soll...
    LG handi

  • ok es funtz doch nicht...
    habe erfahren, dass die seite mit session arbeite, d.h. das nur einmalig ein cookie kommt...wie mach das jetzt...?

  • Nimm den Code von crazywulf. Den ersten Teil baust du beim Login des Benutzers ein. "abc_ _abc" ersetzt du mit einem Schlüssel, der nur dir bekannt ist (was kompliziertes), $user_id mit der Id des Benutzers.

    Den zweiten Teil baust du dann auf der index.php des Proxys ein und ersetzst wieder "abc" mit deinem Schlüssel. $user_id ist die session des Users. Um herauszufinden wie sie heisst, kannst du ein print_r($_SESSION) machen. Die mit der user_id nimmst du dann statt $user_id (wird wohl sowas sein $_SESSION['user_id']).

  • Nimm den Code von crazywulf. Den ersten Teil baust du beim Login des Benutzers ein. "abc_ _abc" ersetzt du mit einem Schlüssel, der nur dir bekannt ist (was kompliziertes), $user_id mit der Id des Benutzers.

    Den zweiten Teil baust du dann auf der index.php des Proxys ein und ersetzst wieder "abc" mit deinem Schlüssel. $user_id ist die session des Users. Um herauszufinden wie sie heisst, kannst du ein print_r($_SESSION) machen. Die mit der user_id nimmst du dann statt $user_id (wird wohl sowas sein $_SESSION['user_id']).


    wo genau bitte..?
    bei der login.php steht viel drin

  • Genau, oder du versuchst es einfach mal selber einzubauen. Probier die Stelle zu finden, wo die user_id session geschrieben wird, und füge den Code, den crazywulf gepostet hat direkt danach ein.

  • Schreib einfach ganz oben in deinen Proxy Script folgendes rein:

    PHP
    <?php
    if (empty($_SESSION['USER']) && empty($_COOKIE['pmfUserId'])) die();
    ?>

    Gruß crAzywuLf :D

    2 Mal editiert, zuletzt von crAzywuLf (27. Mai 2009 um 15:04)

  • Stimmt, wäre einfacher. Um herauszufinden wie die User session heisst, machst du wie gesagt mal ein print_r($_SESSION);

    @wulf - seit wann werden Passwörter in sessions gespeichert? :)

  • Stimmt, wäre einfacher. Um herauszufinden wie die User session heisst, machst du wie gesagt mal ein print_r($_SESSION);

    ?wie soll ich das denn machen...?

  • Stimmt, wäre einfacher. Um herauszufinden wie die User session heisst, machst du wie gesagt mal ein print_r($_SESSION);

    @wulf - seit wann werden Passwörter in sessions gespeichert? :)

    Öh? Siehe login.php... merkwürdige Forensoftware

    etz geht die proxy site gar nicht mehr

    Joa, dass ist doch schonmal ein Anfang, zweiter Versuch:

    PHP
    <?php
    if (empty($_SESSION['USER']) && empty($_COOKIE['pmfUserId']) && empty($_COOKIE['pmfSess'])) die();
    ?>

    Gruß crAzywuLf :D

    Einmal editiert, zuletzt von crAzywuLf (27. Mai 2009 um 15:09)