kostenloser Webspace werbefrei: lima-city


Frage zur "verlinkung" im passwortgeschuetztem Bereich

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fokus

    fokus hat kostenlosen Webspace.

    Ich wuerde gerne mehrere PHP Seiten mit einem Passwort schuetzen. Nun bin ich so weit, das ich eine Passworteingabeseite habe und eine Seite die darauf reagiert, sie heisst login.php. nun moechte ich auf login.php einen Hyperlink platzieren, der auf die Seite auswahl.php weiterleitet. Bis hier ist es alles ja kein Problem, aber ich moechte auch, das wenn man oben in der Browserleiste eingibt http://......blablabla/auswahl.php, das dann eine Fehlermaeldung erscheint. D.h.: man soll nur ueber die login.php auf auswahl.php zugreifen koennen. Weiss jemand wie ich das am besten mache?:confused:

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

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

  3. c******n

    Mit Cookies, oder du gibst der Datei einen verr?ckten namen, wie zb. "unddashierderistpasswortbereichgesch?tzt.php" ist zwar ein bisschen lang, aber da kommt niemand drauf! :wink:

    Nee, mal ehrlich. Mach es doch mit Sessions. Wenn die Session nicht vorhanden ist -> Fehlermeldung ausgeben.

    chefchen
  4. also erst ne db erstellen mit zwei spalten
    eine user
    und eine pass
    dann im login form einfach
    <form action="einloggen.php" method="get">
    <input type="hidden" name="action" value="einloggen">
    <input name="user_value" type="text" size="25">
    <input name="pass_value" type="text" size="25">
    </form>



    einloggen.php
    <?
    $db_host = "host";
    $db_user = "user";
    $db_pw = "pw";
    $db_name = "Datenbankname";

    // mit mysql server verbinden
    mysql_connect ("$db_host","$db_user", "$db_pw")or die ("Es konnte keine Verbindung zum MySql Server hergestellt werden!");
    mysql_select_db("$db_name")or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden!");



    // falls eingeloggt
    if(isset($_COOKIE['user']) && isset($_COOKIE['pass']))
    {
    $user = $_COOKIE['user'];
    $pass = $_COOKIE['pass'];

    $login_abfrage = mysql_query("SELECT * FROM login WHERE user='$user'");
    $login_ergebnis = mysql_fetch_object($login_abfrage);
    $db_pass = $login_ergebnis->pass;

    if($db_pass==$pass) $eingeloggt = "true";
    else $eingeloggt = "false";
    }
    else
    {
    $eingeloggt = "false";
    }
    // gibt $eingeloggt==true aus, wenn pass aus cookies==pass aus db
    // andernfalls $eingeloggt==false




    // einloggen
    if($action=='einloggen') //wenn $action==einloggen
    {
    if(isset($user_value) && isset($pass_value) && !empty($user_value) && !empty($pass_value)) //?berpr?fe ob die eingabefelder ausge?llt wurden
    {
    $login_abfrage = mysql_query("SELECT*FROM login WHERE user='$user_value'");
    $login_ergebnis = mysql_fetch_object($login_abfrage);
    $db_pass = $login_ergebnis->pass;

    if($db_pass==$pass_value) // wenn pw==db_pw
    {
    $eingeloggt = "true";
    $erfolgreich = "true";
    setcookie("user", "$user_value", time() + (60*60*24*7*4)); // Cookie user setzen
    setcookie("pass", "$pass_value", time() + (60*60*24*7*4)); // Cookie pass setzen
    }
    else
    {
    echo "Du hast falsche Daten angegeben!"; // pw stimmt nicht ?berein
    $eingeloggt = "false"; // $eingeloggt wird auf false gesetzt
    }

    }
    else
    {
    echo "Du hast falsche Daten angegeben!"; // es wurden keine daten ?bergeben, oder die felder waren leer
    $eingeloggt = "false";
    }
    }




    // ausloggen
    if($action=='ausloggen')
    {
    setcookie("user", "");
    setcookie("pass", "");
    }


    ?>



    das musst du einfach in jede datei schreiben!

    // falls eingeloggt
    if(isset($_COOKIE['user']) && isset($_COOKIE['pass']))
    {
    $user = $_COOKIE['user'];
    $pass = $_COOKIE['pass'];

    $login_abfrage = mysql_query("SELECT * FROM login WHERE user='$user'");
    $login_ergebnis = mysql_fetch_object($login_abfrage);
    $db_pass = $login_ergebnis->pass;

    if($db_pass==$pass) $eingeloggt = "true";
    else $eingeloggt = "false";
    }
    else
    {
    $eingeloggt = "false";
    }

    wenn das der name und das pw richitg sind wird $eingeloggt auf true gesetzt

    if($eingeloggt=='true')
    {
    // wird ausgef?hrt wenn man eingeloggt ist
    }


    if($eingeloggt=='false')
    {
    // wird ausgef?hrt wenn man nicht eingeloggt ist
    }


    Beitrag ge?ndert am 20.11 22:07 von lucas9991
  5. 0******a

    lucas9991 schrieb:
    setcookie("pass", "$pass_value", time() + (60*60*24*7*4)); // Cookie pass setzen

    Aus Sicherheitsgr?nden sollte man $pass vorher verschl?sseln, z.B. mit sha1(). Beim Vergleichen des Passworts im n?chsten Skript dann einfach das in der Passwort gespeicherte Passwort ebenfalls mit sha1() verschl?sseln und erst dann mit dem verschl?sselten Passwort aus dem Cookie vergleichen. Noch sicherer ist es, wenn das Passwort gleich verschl?sselt in der DB abgelegt wird.


    lucas9991 schrieb:
    das musst du einfach in jede datei schreiben!

    Das war auf das 2. Skript bezogen. Leichter ist es, wenn man das auslagert in eine eigene PHP Datei und die dann per include Anweisung einf?gt. Dazu m?sste dann nur ein return im Login ?berpr?fungs Skript mit einem vorher bestimmten Wert gemacht werden, w?hrend in den anderen Skripten dann einfach nur beispielsweise
    -----
    $ret = include "LoginCheck.php";
    if ($ret == FALSE)
    {
    [...]
    -----
    eingef?gt werden m?sste. Hat die beiden Vorteile, einem viel Schreibarbeit zu ersparen und bei einer ?nderung der Loginprozedur oder in der DB nur in einer Datei ?nderungen vornehmen zu m?ssen.


    Ansonsten gute Hilfestellung von lucas9991 und empfehlenswert (falls der PHP Code ohne Fehler ist :biggrin:)
  6. Autor dieses Themas

    fokus

    fokus hat kostenlosen Webspace.

    wow, das ist ja umfangreicher als ich erwartet habe, vielen dank leute. Ich hoffe,das ich das auch wirklich alles hinkriege. Ich bin naemlich eigentlich eher so ein "Freizeit-programierer". Aber trotzdem vielen Dank
  7. 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!