• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

einen login mit php

selsCT

Neues Mitglied
Hallo ich möchte einen Login mit php haben mit benutzernamen und passwort.Hierzu habe ich ein paar ältere einträge hier im forum gefunden aber nicht ganz verstanden.Könnte mir jemand den ganzen code mal geben oder mir es mal erklären?
 
Werbung:
Hallo! Ich kann dir helfen, ein Login zu erstellen, allerdings nicht mit Datenbank. Das Passwort würde dann direkt im Quellcode stehen(den der Benutzer aber nicht sieht). Ich weiß nicht, ob das deinen Vorstellungen entspricht.
 
Werbung:
login.php:
PHP:
<?php setcookie('test',"1",0,"/");            //Testcookie setzten
header("Location:./");?>

index.php:
PHP:
<?php
     error_reporting(-1);
     ini_set('display_errors', 1);                                    //Fehler ausgeben
     $error="";
     if(isset($_COOKIE['test'])!=true)
        {echo "<script language='javascript'>alert('Bitte lassen sie Cookies auf ihren Computer zu');</script>";}
     if(!empty($_POST['name'])&&!empty($_POST['login']))            //Eingabefelder ausgef&uuml;llt?
        {if($_POST['name']=="dein_name"&&$_POST['login']=="dein_passwort")
            {setcookie('uspw','kD4l2ioFf9EdoC9sy',0,'/');
             setcookie('name',$_POST['name'],0,'/');
                {if(isset($_COOKIE['direct'])==true)                //wenn der Pfad-Cookie gesetzt wurde
                    {header("Location:{$_COOKIE['direct']}");}        //zuvor aufgerufene Seite &ouml;ffnen
                 else
                    {header("Location:../startseite/index.php");}    //auf Startseite umleiten
                }
            }
        else
            {$date=date('j.m.Y-H:i:s');
             $datafile = fopen("./failed.txt", "a+");
             fwrite ($datafile,$date." + ".$_POST['name']." + ".$_SERVER['REMOTE_ADDR']." + ".$_POST['login']."\r\n");
             fclose ($datafile);
             $error="<div class='impressum'><br>Der Benutzername oder das Passwort ist falsch!!!</div>";}    //Passwort/Username war falsch
        }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  "http://www.w3.org/TR/html4/strict.dtd">

<html>
<body>
<form action="<?php $PHP_SELF; ?>" method="post">
    <table>
        <tr>
            <td>Benutzername:</td>
            <td><input type="text" name="name" /></td>
        </tr>
        <tr>
            <td>Passwort:</td>
            <td><input type="password" name="login" /></td>
       </tr>
   </table>
    <input type="submit" value="Login" />
</form>
<?php
    echo $error;
?>
</body>
</html>
Wenn etwas unklar ist, nachfragen.

Grüße
Stromi
*EDIT: Das Ganze ist natürlich von der Verbindung her ziemlich unsicher. Das lässt sich aber über SSl lösen.
 
ach so: Login.php ist die Datei, die aufgrufen wird, bevor auf index.php zugegriffen wird. Diese setzt ein Cookie, einfach nur um zu testen, ob der User Cookies zulässt.
Ob der Cookie dann gesetzt wurde oder nicht, wertet dann die index.php-Datei aus und gibt ggf. eine Fehlermeldung aus.
PHP:
    if(isset($_COOKIE['test'])!=true)
        {echo "<script language='javascript'>alert('Bitte lassen sie Cookies auf ihren Computer zu');</script>";}
</span></span>
 
Werbung:
$PHP_SELF? Was du meinst, ist wohl eher $_SERVER['PHP_SELF']; - aber nur eine Variable in das action Attribut rein setzen nützt nichts, da fehlt auch ein Sprachkonstruktor.


PHP:
<form action="<?php print $_SERVER['SCRIPT_NAME']; ?>" method=""></form>
 
Ich versteh das alles nicht aber ich habe noch was anderes im Internet gefunden das sieht so aus (was ist falsch???)

<html>
<head>
<title>titel</title>
</head>
<body>
<?php
include("pwd.php");
if (($benutzer == "$user") and ($passwort == "$pass"))
{
echo "Login erfolgreich!"
<meta http-equiv='refresh' content='1; URL=http:./ link ?area=includes&do=test'>
</body>
</html>
 
Werbung:
okay, ganz langsam. die login.php liegt einfach im selben ordner wie die index.php-Datei.

Wenn du dir denn Quellcode anschaust, wirst du sehen, wo die Namen einzutragen sind, denn die Stelle ist markiert.

Noch mal in ganz einfacher Form der Code:
PHP:
<?php
     error_reporting(-1);
     ini_set('display_errors', 1);                                    //Fehler ausgeben
     $error="";
     if(isset($_COOKIE['test'])!=true)
        {echo "<script language='javascript'>alert('Bitte lassen sie Cookies auf ihren Computer zu');</script>";}
     if(!empty($_POST['name'])&&!empty($_POST['login']))            //Eingabefelder ausgef&uuml;llt?
        {if($_POST['name']=="dein_name"&&$_POST['login']=="dein_passwort")
            {setcookie('uspw','kD4l2ioFf9EdoC9sy',0,'/');
             setcookie('name',$_POST['name'],0,'/');
             header("Location:../startseite/index.php");    //auf Startseite umleiten
            }
        else
            {$error="Der Benutzername oder das Passwort ist falsch!!!";}    //Passwort/Username war falsch
        }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  "http://www.w3.org/TR/html4/strict.dtd">

<html>
<body>
<form action="<?php $PHP_SELF; ?>" method="post">
    <table>
        <tr>
            <td>Benutzername:</td>
            <td><input type="text" name="name" /></td>
        </tr>
        <tr>
            <td>Passwort:</td>
            <td><input type="password" name="login" /></td>
       </tr>
   </table>
    <input type="submit" value="Login" />
</form>
<?php
    echo $error;
?>
</body>
</html>
Dann musst du nur noch in jeder Datei, die Pw-Geschützt sein soll abfragen ob der Cookie uspw gesetzt ist und den Inhalt kD4l2ioFf9EdoC9sy hat. wenn dem nicht so ist, leitet die Seite einfach wieder auf login.php um.
 
<html>
<head>
<title>titel</title>
</head>
<body>
<?php
include("pwd.php");
if (($benutzer == "$user") and ($passwort == "$pass"))
{
echo "Login erfolgreich!"
<meta http-equiv='refresh' content='1; URL=http:./ link ?area=includes&do=test'>
</body>
</html>
Diese eine Datei wird dir wohl nicht helfen. Es hängt davon ab, wie die anderen Datein aussehn. (pwd.php/link ?area=includes&do=test')
 
Werbung:
Jetzt ist es mir klar aber bei der index.php datei ist im browser oben der gasamte javascript teil zu sehn.
Ich wollte als alternative so ein ahnlichen login wie bei der Seite.Da ich mich gar nicht mit php auskenne bin ich auf deine Hilfe angewiesen!!!!!!
Klassenbereich
 
was hast du für ein Browser?

Zu der Klassenseite:
PHP:
if(!empty($_POST['name'])&&!empty($_POST['login']))            //Eingabefelder ausgefüllt?
    {if($_POST['login']=="DEIN PASSWORT")                          //Ist Das eingegeben Passwort das erwartete?
         {setcookie('uspw','1',0,'/');                                      //Wenn ja: setzte einen Cookie, der speichert, dass das passwort richtig war
          header("Location:./DEINPFAD/DEINESTARTSEITE.PHP");}  //Gehe zu der Startseite der PW geschützten seite (Pfad muss von dir angegeben werden)
     else                                                                        //wenn nicht:
         {echo "Das Passwort war falsch!";}                         //gebe Das Passwort ist falsch aus
<form action="<?php $PHP_SELF; ?>" method="post">
    <input type="password" name="login" />
    <input type="submit" value="Login" />
</form>
Das schreibst du in eine Datei die sich login.php nennt. Alles Was GROß geschrieben ist, sind Angaben die du einsetzten musst.
Und in jede Seite, die du passwortgeschützt haben willst, setzt du einfach noch an den Anfang folgendes:

PHP:
<?php
    $code=$_COOKIE['uspw'];                                     //überschreibe den Wert des Cookies uspw(gesetzt in der Logindatei wenn pw richtig in die variable code
    if($code=='1')                                                     //wenn code gleich  ist, dann bleibe auf der seite
        {}
    else{header("Location:DER_PFAD_ZU_LOGIN.PHP/login.php");}    //sonst leite auf den Login um.
?>
Ich hoffe es läuft und ist verständlich. Ich muss jetzt weg.
*EDIT: wenn noch fragen sind: frag! Ich melde mich dann noch mal!
 
Werbung:
ooh. Okay, ich weiß nicht, warum der Browser den JavaScriptteil nicht ausführen wollte..

Ist der Code verständlich gewesen?
 
Er/Wir reden von dem Code auf Seite 1. Der oben genannte ist eine wesentlich vereinfachte Form von dem aus der 1.Seite.
 
Werbung:
Zurück
Oben