~ GELÖST ~ | PHP Passwort

Schonmal an eine Variante mit einer MQSQL-DB gedacht?

z.B. tut.php-q.net/de/login.html

Darin speicherst du die Leute, die in deinen gesicherten Bereich dürfen.

Das Grundprinzip wäre dann folgendes:
Du gibst einen Benutzernamen und ein Passwort ein,
machst eine SQL-Abfrage, in der du den eingegebenen Benutzernamen
mit den ganzen in der DB vergleichst (analog das Passwort).

Findet er eine Übereinstimmung, machst du zum Beispiel:
header(“Location: bin_drin.php”);

Wenn er keine Übereinstimmung findet:
header(“Location: login.php”);

Beispiel-Abfrage:
$username_ein = $_POST[“username”];
$passwort_ein = md5($_POST[“passwort”]);

$abfrage = “SELECT username, passwort FROM DeineLoginTabelle WHERE username LIKE ‘$username’ LIMIT 1”;
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

$benutzername = $row->username;
$passwort = $row->passwort;

Nun hast du EINEN Eintrag, wo Benutzername und Passwort mit deinem übereinstimmen.

nun fehlt nur noch der Vergleich:

If($benutzername == $username_ein and $passwort == $passwort_ein)
{
header(“Location: bin_drin.php”);
}
{
header(“Location: login.php”);
}

evtl. registrierst du auch noch eine Session mittels
$_SESSION[‘eingeloggter_user’] = $benutzername;

wenn er sich erfolgreich angemeldet hat.

Vergiss aber nicht, die Passwörter alleine wegen des Sicherheitsaspektes nur verschlüsselt (wie ich geschrieben habe mit md5) zu speichern.

Freundliche Grüße

Mit Arrays oder Textdateien auch möglich - aber ich benutze auch immer DBs. Dann noch ein bisschen Sessions studieren - und du hast ein 1. Klasse Login-System.
Allerdings - was u da machst, headhunter, ist zwar richtig, aber unnötig. Aber wieso verwendest du LIKE? Einfacher:

$sql = "SELECT * FROM `tabelle` WHERE `username` = '" . mysql_real_escape_string($_POST['username']) . "' && `password` = '" . md5(mysql_real_escape_string($_POST['password'])) . "'";
if(!mysql_num_rows(mysql_query($sql))){
//Falsche Angaben
} else {
//Richtige Angaben
}

server-01, ich muss positiv vermerken, dass du es selbst probiert hast :ps: Leider ist das aber ziemlicher Humbug. Deine Lösungsrichtung geht aber in Richtung Arrays. Mit Datenbanken ist das zwar schwerer zu verstehen, geht aber umso einfacher. Da kannst du später auch mal etwas basteln, dass man sich selbstständig registrieren kann, und so weiter.

Warum wollt ihr auf Spatzen mit Kanonen schießen???

Das ganze ist ganz einfach: Du speicherst die Logins in einem Array:

$users = array(
   'admin' => "1234",
   'Markus' => "123",
   );

Die Überprüfung ist auch kein Problem:

$user = $_POST['name'];
$pass = $_POST['pass'];

if( isset($users[$user]) && $users[$user] == $pass) {
    include "passwortkorrekt.html" ;
} else {
    include "falschespasswort.html" ;
}

Um einen Login dauerhaft zu speichern eignen sich Sessions gut:

session_start(); //session starten

$user = $_POST['name'];
$pass = $_POST['pass'];

if( isset($users[$user]) && $users[$user] == $pass) {
    $_SESSION['logged_in'] = true;
    include "passwortkorrekt.html" ;
} else {
    include "falschespasswort.html" ;
}

Dann kannst du jederzeit überprüfen, ob der User noch eingeloggt ist:

if($_SESSION['logged_in']) {
   //ja, noch eingeloogt
}

Vor allem sollte man das Passwort da wohl nicht im Klartext
drinstehen haben, sondern wenigstens einmal md5 oder sowas
drüberlaufen lassen, nur für den Fall, daß es mal jemandem
gelingt, irgendwie in den Quelltext zu schauen …