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

Login mit PHP

stwe1

Neues Mitglied
Hallo,
ich möchte eine Website programmieren, wo man die Fähigkeit hat sich einzuloggen.
Da habe ich mehrere Fragen:
1. Wie speichere ich die User-Daten am besten? Ich habe schon mehrere Möglichkeiten gesehen. Mit einer .txt Datei habe ich es schon probiert, aber das klappt nicht. Hochladen will ich das ganze auf meinen bplaced.net Account, da kann ich auch mySQL Datenbanken anlegen. Damit geht das ja auch, aber ich weiß nicht wie... Was ist denn davon am besten?
2. Ich muss ja im Prinzip eine komplette Kopie der Website erstellen und mit einmal den Inhalten für die nicht-User und für die, die schon einen Account haben, oder? Und wie mache ich das am besten?
3. Man sollte sich auch wieder ausloggen können und es soll dann die "alte Seite" wieder angezeigt werden, wie mache ich das am besten?
 
Mit einer .txt Datei habe ich es schon probiert, aber das klappt nicht.
Natürlich geht das auch mit einer Textdatei, man muss es nur richtig machen. Ich würde allerdings MySQL vorziehen.

Nach erfolgreichem Login setzt du eine Session-Variable. Dann prüfst du auf der neuen Seite, ob diese gesetzt ist und wenn nicht, leitest du auf die alte Seite weiter.

Das Thema "Login" ist in jedem PHP-Forum schon endlos oft durchgekaut worden, einfach mal etwas suchen.
 
Also wie mein Vorredner schon sagte geht es auch mit *.txt Dateien, dieses sollte man aber wirklich vermeiden. Die Datenbank ist gerade dafür geschaffen. Es ist auch viel leichter an die Daten bei der Abfrage des Nutzers heranzukommen.

Bei einer text Datei war das in meiner Anfangszeit jedenfalls immer ein graus, aber ich hatte die Textdateien auch falsch strukturiert. Aber wieder zurück zum Thema, ich empfehle da auch eindeutig die MySQL Datenbank, wenn man schon die Möglichkeit hat, warum denn nicht nutzen? ^^

Zu deiner zweiten Frage, eine komplette Kopie deiner Webseite brauchst du nicht, es sind eigentlich immer nur einzelne Bereiche die du anzeigst wenn der Nutzer eingeloggt ist.

Und mit dem ausloggen ist das so wie bdt600 es geschrieben hat, du setzt bei dem einloggen eine Session variable und beim ausloggen zerstörst du diese wieder sozusagen.

Ich mag da sehr folgendes Tutorial, lohnt sich jedenfalls ein Blick rein zuwerfen (Obwohl ich gerade doch sehe, dass es etwas schwer werden könnte für nen Neuling).
Aber bei google gibt es auch Unmengen an Anleitung, einfach mal nach "php login tutorial" suchen.

Wenn es dir aber hauptsächlich um eine Webseite geht dann kann ich dir auch eines der Millionen Content Management Systemen ans Herz legen wie Joomla oder Wordpress (mit entsprechenden Plugins). Wenn es dir um die Programmierung geht kann ich dir das Tutorial ans Herz legen
 
Danke für die Antworten.
Ich hätte vielleicht noch erwähnen sollen, dass ich es erst mir diesem
HTML:
<a href="http://www.php-einfach.de/tuts_php_login.php">Tutorial</a>
versucht habe, aber das nicht geklappt hat. Ich habe alles so kopiert, aber beim Klick auf Registrieren hat Chrome einfach den PHP angezeigt, anstatt ihn auszuführen.
Zudem hätte ich gerne auch einen kleinen Admin-Bereich, wo nur ich neue Benutzer anlegen kann und deren Daten ändern kann.
Joomla o.Ä. möchte ich nicht benutzen, weil das zu langweilig ist, es geht mir eher um's Programmieren. ;)
Ich werde mir mal das Tutorial ansehen und ich hoffe dann funktioniert alles, falls nicht, melde ich mich nochmal hier.
 
Hab mir das jetzt mal angesehen, aber ich komme da überhaupt nicht mit klar. Mein weiß teilweise gar nicht, was jetzt wo rein muss und eine strukturierte Übersicht gibt es auch nicht.
Das ist auch nur für private Zwecke und es wird auch nur so 5-15 User geben, also ist eine Datenbank nicht unbedingt nötig. Ich möchte es also lieber mit einer .txt Datei machen.
Also hier erstmal ein bisschen Code:

index.html:
HTML:
<html>
<head><title>Meine Homepage</title>
</head>
<frameset rows="100,*" border=0>
<frame src="top.html" name="top">
<frameset cols="200,*" border=0>
<frameset rows="*,5%" border=0>
<frame src="left.html" name="left">
<frame src="admin.html" name="admin">
</frameset>
<frame src="home.html" name="main">
</frameset>
</frameset>
</html>

left.html: (Da ist die "form" zum Einloggen)
HTML:
<html>
<head>
<style type="text/css">
#login {
border:5px solid;
padding-left:6px;
padding-top:3px;
padding-bottom:3px;
background-color:#C4C4C4;
}
#menue {
border:5px solid C00;
padding:6px;
}
a.button {
font-family:Comic Sans MS,sans-serif;
font-size:18px; font-weight:bold;
color: #000000; background-Color: C4C4C4;
border: 4px solid #0000CC;
text-decoration: none; padding: 4px;
text-align: center;
}
a.button:hover {
Color: #FFFFFF;
background-Color: #616161;
border: 4px solid #990000; text-decoration: none;
}
</style>
</head>
<body bgcolor="#D6D6D6">
<div id="login">
<form action="login.php" method="post">
<b>Login-Bereich</b><br>
Name: <input type="text" name="username"><br>
Passwort: <input type="password" name="password"><br>
<input type="submit" value="Login">
</form></div><br><br>
<div id="menue"><span style="font-size:25px; font-family:Verdana"><font color="#CC0000">
<b>Men&uuml;</b><br><br>
<a href="home.html" class="button" target="main">Home</a><br><br>
<a href="error1.html" class="button" target="main">Übersicht</a><br><br>
<a href="error1.html" class="button" target="main">Neuer Eintrag</a><br><br>
<a href="error1.html" class="button" target="main">Anleitung</a><br><br>
</span></div>
</body></html>

admin.html:
HTML:
<html>
<head>
<style type="text/css">
#style {
margin-left:10px;
}
a.button {
font-family:Times New Roman;
font-size:16px; font-weight:bold;
color: #000000; background-Color: C4C4C4;
border: 4px solid #0000CC; text-decoration: none;
padding: 3px;
text-align: center;
}
a.button:hover {
Color: #FFFFFF;
background-Color: #616161;
border: 4px solid #990000;
text-decoration: none;
}
</style>
</head>
<body bgcolor="#D6D6D6">
<div id="style">
<a href="admin_bereich.html" class="button" target="main">Admin-Bereich</a><br>
</div>
</body>
</html>
Nach Klick hierauf soll eigentlich so ein Fenster erscheinen (wie ein alert bei Javascript), wo man halt Benutzername und Passwort eingeben muss (Wie mache ich das?), um dann hierhin zu gelangen:

admin_bereich.html
HTML:
Neuregistrierung:<br><br>
<form action="registrieren.php" method="post">
Username:<br><input type="text" size="24" maxlength="50" name="username"><br>
Passwort:<br><input type="password" size="24" maxlength="50" name="passwort"><br>
Passwort wiederholen:<br><input type="password" size="24" maxlength="50" name="passwort2"><br>
<input type="submit" value="Registrieren"></form>

Die user.txt Datei ist leer, hier noch die PHP-Dateien:
registrieren.php
PHP:
<?php
$username = $_POST["username"];
$password = $_POST["passwort"];
$password2 = $_POST["passwort2"];
if ($password == $password2)
{   
$user_vorhanden = array();
$passwort = md5($password);
   $userdatei = fopen("user.txt","r");
while (!feof($userdatei))
{
$zeile = fgets($userdatei,500);
$userdata = explode("|", $zeile);
array_push ($user_vorhanden,$userdata[0]);
}
fclose($userdatei);
if (in_array($username,$user_vorhanden))
{
echo "Username schon vorhanden";
}
else
{
$eintrag =$username + "|" + $passwort;
$userdatei = fopen("user.txt","a");
fwrite($userdatei, $eintrag + "\n");
fclose($userdatei);
echo "Deine Anmeldung war erfolgreich";
}
}
?>

login.php
PHP:
<?php
$username = $_POST["username"];
$passwort = $_POST["password"];
$passwort = md5($passwort);
$log = 0;
$userdatei = fopen ("user.txt","r");
while (!feof($userdatei))
{
$zeile = fgets($userdatei,500);
$userdata = explode("|", $zeile);
if ($userdata[0]==$username and   $passwort==trim($userdata[1]))
{
echo "Hallo $username";
$log = 1;
}
}
fclose($userdatei);
if ($log==0)
{
echo "Login fehlgeschlagen";
}
?>

edit: Keine Ahnung, warum der Code so komisch dargestellt wird, hab ihn eigentlich normal hierein kopiert...

edit: Ich hoffe, ich habe es jetzt etwas übersichtlicher gemacht...
 
Zuletzt bearbeitet:
eine strukturierte Übersicht gibt es auch nicht.
Bitte was??? Du willst uns allen Ernstes erzählen, dass nicht eins der millionen Tutorials vernünftig ist? Nee, ne?

Und wenn ich schon die index.html sehe, dann graut es mir schon. Wieso um alles in der Welt benutzt du Frames? Das ist eine völlig veraltete Technik und ist nicht zu empfehlen.

Keine Ahnung, warum der Code so komisch dargestellt wird, hab ihn eigentlich normal hierein kopiert...
Gute Frage, aber so haben wir hier eine Buchstabenwüste, die sich wohl kaum jemand ernsthaft ansieht.
 
Mit strukturierte Übersicht meinte ich das Tutorial, was B3nnoX mir vorgeschlagen hat...
Und wenn ich Frames benutzen möchte, lass mich doch...
Ist finde ich einfach als mit noch mehr div's und span's und a's und p's. ;)
Und ich hoffe, ich habe die Buchstabenwüste zu deiner Zufriedenheit bereinigt..
 
Mit strukturierte Übersicht meinte ich das Tutorial, was B3nnoX mir vorgeschlagen hat...
Und wenn ich Frames benutzen möchte, lass mich doch...
Ist finde ich einfach als mit noch mehr div's und span's und a's und p's. ;)
Und ich hoffe, ich habe die Buchstabenwüste zu deiner Zufriedenheit bereinigt..

Eines zum anschauen mit Text datein findest hier:
Command Board - PHP & MySQL - Registrierung + Login

als Download unter simple login.

Also das ganze ist nicht schwer und wirklich sehr einfach gehalten.

Mfg Splasch
 
Ich hätte vielleicht noch erwähnen sollen, dass ich es erst mir diesem
HTML:
<a rel="nofollow" href="http://www.php-einfach.de/tuts_php_login.php">Tutorial</a>
versucht habe, aber das nicht geklappt hat. Ich habe alles so kopiert, aber beim Klick auf Registrieren hat Chrome einfach den PHP angezeigt, anstatt ihn auszuführen.
Das Tutorial bzw. der Code darin klappt. Hast du es auf deinen eigenen Rechner probiert? Wenn ja, dann brauchst du Xampp oder ein anderes Programm. Denn PHP ist eine serverseitige Scriptsprache, also du brauchst dafür einen Server, und Xampp simuliert dir das auf deinen PC. Es gibt auch Mysql und weiteres dazu.

Wie ich aber sehe hast du keine Ahnung von PHP, deswegen würde ich dir den Rat geben dich erstmal mit den Grundfunktionen vertraut zu machen.

Zudem hätte ich gerne auch einen kleinen Admin-Bereich, wo nur ich neue Benutzer anlegen kann und deren Daten ändern kann.
Das du kannst du nur selber programmieren. ;)

Alex55
 
Zurück
Oben