kostenloser Webspace werbefrei: lima-city


LogIn Problem + Framesets

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    x*****k

    Hallo Leute!
    Möchte gerne ein Browsergame programmieren.
    Als erstes brauch ich ja da mal ne login.
    Das Problem: Die Spieler müssen auf einen Link klicken, um in den Gamebereich zu kommen. Dieser Bereich besteht aus 4 Frames.
    Das muss ich ja irgendwie absichern.

    Hat jemand eine Idee? (MySQL, MD5, Sessions, Cookies) ?

    Danke für eure Hilfe!

    x-black :cool:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Sry, aber wenn du noch nicht mal weißt, wie man mit php ein sicheres LogIn-Script programmiert, denke ich mal, du solltest dich nicht gleich an ein Browsergame wagen...

    Wenn doch, dann schau mal da:

    http://php-einfach.de/tuts_php_login.php
    http://php-einfach.de/tuts_php_login_sessions.php
    http://php-einfach.de/tuts_php_login_sessions_dateien.php
  4. Autor dieses Themas

    x*****k

    Danke für den tipp -.-'
    habe genug Supports zusammengebastelt, jedoch nicht mit frameset.
    Also bitte lass es!

    Beitrag geaendert: 24.1.2007 17:48:50 von x-black
  5. ich versteh nicht ganz was du meinst ?!
    meinst du das man die login.php nur
    im Hauptframe aufrufen kann oder was ?
    oder das nach dem Login in allen Frames
    auch eindeutig erkennt bar ist das man
    eingeloggt ist ...

    ähm also 1. bin ich grundsätzlich gegen
    Frames... aber gut ... was funktionieren
    müsste sind Sessions ... die kannst
    dann in jedem Frame abrufen oder im
    Frameset selbst ... Wie du wilslt ...

    Trotzdem würde ich dir zu Tabellen (ich
    weiß ist auch nicht mehr das ware, aber
    mit <div>s wird kompliziert und wer will
    das schon) ... Also ja ... stehen für
    weiter Fragen offen..

    gruß
  6. Framsets suxx... und wenn du es mit php arbeitest empfehle ich dir isset
    Im zusammenhang mit Divs sehr gut geeignent

    nen Beispiel von mir:

    <div>
    xxx
    </div>

    <div>

    if (isset($_GET['show']))
    {
    $show= $_GET['show'];
    }
    else
    {
    $show="";
    }
    if ($show== "")
    {
    echo "<a href ='index.php?show=add'>Movie eintragen </a><br />";
    echo "<a href ='index.php?show=delete'>Movie löschen </a><br />";
    }
    if ($show== "add")
    {
    include ('add_movie.php');
    }
    if ($show== "add_in")
    {
    include ('add_movie_in.php');
    }
    if ($show== "delete")
    {
    include ('add_movie_in.php');
    }
    if ($show== "movie_info")
    {
    include ('movie_info.php');
    }

    </div>

    nur der 2. div wird immer geändert.. der head zb bleibt immer gleich
  7. Ich glaub, du hast nicht so ganz verstanden, was x-black will... Nämlich einen zuverlässigen Passwortschutz... Und ausserdem würde ich die ganzen if's durch eine case-Abfrage austauschen :thumb:

    Ich glaub, so müsste das was werden:

    index.php:


    <?php
    include "#config.inc";

    //Eingeloggt?
    $logged = false

    //LogOut? Als LogOut-Link musst du dann einfach "index.php?logout=true" nehmen
    if (isset($_GET['logout']) && ($_GET['logout'] == "true")) {
    setcookie ("user", "");
    setcookie ("pass", "");
    } else {
    //Bereits eingeloggt?
    if (isset($_COOKIE['user']) && (isset($_COOKIE['pass']))) { $user = $_COOKIE['user'];
    $pass = $_COOKIE['pass'];
    if (($pass == $pass_ok) && ($user == $user_ok)) $include = true;
    //LogIn-Formular ausgefüllt?
    } else if (isset($_POST['user']) && isset($_POST['pass'])) { $user = $_POST['user']; $user = md5($user); $pass = $_POST['pass']; $pass = md5($pass); if ($user == $user_ok && $pass == $pass_ok) { $include = true; setcookie ("user", $user); setcookie ("pass", $pass); }
    }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html><head>
    <title></title>
    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
    </head><body>
    <?php
    //Wenn $include == true, das Frameset einbinden, sonst das Formular für die Kennwortabfrage anzeigen
    if ($include == true) { include "#frameset.htm";
    } else echo "<form action=\"index.php\" method=\"post\">\n<table border=0 cellspacing=2 cellpadding=0><tr><td>\n<div>Name:</div></td><td><input name=\"user\"><br></td></tr>\n<tr><td><div>Passwort:</div></td><td><input name=\"pass\" type=\"password\"><br></td></tr>\n<tr><td><input type=\"submit\" name=\"submit\" value=\"OK\"></td></tr></table>\n</form>\n"; ?>
    </body></html>


    #config.inc:


    <?php

    $user_ok = "USERNAME";
    $pass_ok = "PASSWORT";

    ?>


    #frameset.htm:
    Deine Frameset-Seite...

    Du musst jetzt nur noch an den Anfang jeder Seite in deinem Frameset ein kleines Script zum prüfen, ob man eingeloggt ist, notieren:


    <?php
    include "#config.inc"

    //Cookie?
    if (!isset($_COOKIE['user']) || !isset($_COOKIE['pass']) echo "<font>Bitte neu einloggen!</font";
    else {
    //Richtiges Passwort im Cookie gespeichert?
    if ($_COOKIE['user'] != md5($user_ok) || $_COOKIE['pass'] != md5($pass_ok)) echo "<font>Bitte neu einloggen!</font";
    else {
    ?>

    --- Dein ganz normaler Quelltext ---

    <?php
    }
    }
    ?>


    Wenn du mehrere User haben willst, was bei einem Browsergame sehr warscheinlich ist, sollte es kein Problem mehr darstellen, den Code ein bisschen unzuschreiben und das ganze mit MySQL zu verwirklichen ;)

    Ich hab den Code noch nicht ausprobiert, aber er müsste eigentlich funktionieren...

    PS: Verbesserungsvorschläge erwünscht :P

    Beitrag geaendert: 25.1.2007 17:21:31 von timo1
  8. Autor dieses Themas

    x*****k

    Danke Timo.
    Das mit Cookies könnte funktionieren.
    Probiere das ganze am Wochenende aus.

    x-black
  9. NP^^ Wenn du etwas nicht verstehst, schreib mir einfach 'ne PN :blah:
  10. 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!