Seite mit Login aufrufen

lintschi

Grünschnabel
Hallo,

ich bin ja wohl wirklich ein ganz dummer Neuling, aber ich würde es brauchen, dass auf meiner Homepage eine Seite nur nach Login aufgerufen werden kann.
Nun suche ich schon den ganzen Tag herum, wie ich das anstellen könnte und bin nicht gescheiter als am Morgen.
Kann mir jemand weiterhelfen, bitte?
Eventuell auch nur mit Verweisen, WO ich da nachschauen könnte.

Das Formular selber macht mir kein Problem, aber wie krieg ich das dann so hin, dass ich ein Passwort vergeben oder akzeptieren, bzw. der Besucher sich dann auch damit einloggen kann und auf der richtigen Seite landet.

Bitte so deppensicher wie möglich antworten.
Danke im voraus!
 
Kannst mal mit meinem alten testen.
Musst nur eine Text-Datei namens datenbank.txt anlegen
Die Sachen, die nur registrierte lesen dürfen, müssen zwischen folgende Zeilen:
PHP:
<?php
session_start();
if (session_is_registered("user")) {
// Hier kommt der Inhalt rein
} else {
// z.B. Link zum anmelden
}
anmelden.php
PHP:
<?php
session_start();
if ( session_is_registered("user") ) {
	echo "Sie sind bereits angemeldet!";
} else {
?>
<form method="post" action="registrieren.php">
Name: <input type="text" name="name">
<p>
Passwort: <input type="password" name="passwort1">
<p>
Passwort Wdh.<input type="password" name="passwort2">
<p>
<input type="submit" value="Eintragen">
</form>
<?php
}
?>
registrieren.php
PHP:
<?php
session_start();
if (session_is_registered("user")) {
	echo "Sie sind bereits registriert!";
} else {

$datei = "datenbank.txt";
$lesen = file($datei);
$array = array();
for($y=0;$y<count($lesen);$y++) {
$zeile = $lesen[$y];
$ez = explode("|-----|",$zeile);
if ( strcasecmp($ez[0], $_POST['name']) == 0 ) {
array_push($array,$ez[0]);
} else {
}

}

if ( !empty($array) ) {
	echo "Username existiert schon!";

} else {

if (strlen($_POST['name']) < 3 Or strlen($_POST['passwort1']) < 5 Or strlen($_POST['passwort2']) < 5 Or $_POST['passwort1'] != $_POST['passwort2'] ) {
	echo "In der Registrierung ist ein Fehler aufgetreten! Bitte f&uuml;llen Sie alle Felder aus";
} else {

if ( preg_match('/[^0-9a-z_-]/i', $_POST['name']) ) {
	echo "Der Username darf nur Buchstaben von a - Z beinhalten, sowie folgende Zeichen: \"_\" und \"-\" Umlaute sind NICHT erlaubt!";
} else {

$user = $_POST['name'];
$passwort = $_POST['passwort1'];
$eintragen = $user."|-----|".$passwort."|-----|\r\n";

$datei = "datenbank.txt";
$fp = fopen($datei,"a+");
fwrite($fp,$eintragen);
fclose($fp);
$_SESSION['user'] = $user;

echo "Erfolgreich registriert!";

}
}
}
}
?>
einloggen.php
PHP:
<?php
session_start();
?>

<form method="post" action="einloggen2.php">
Name: <input type="text" name="name">
<p>
Passwort: <input type="password" name="passwort">
<p>
<input type="submit" value="Einloggen">
</form>
einloggen2.php
PHP:
<?php
session_start();
if ( session_is_registered("user") ) {
	echo "Sie sind bereits angemeldet!";
} else {

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

$daten = file("datenbank.txt");

$array = array();
for ($y=0;$y<count($daten);$y++) {
$zeile = $daten[$y];
$ez = explode("|-----|",$zeile);
if ( $ez[0] == $user && $ez[1] == $passwort ) {
$_SESSION['user'] = $user;
echo "Sie haben sich erfolgreich eingeloggt!";
array_push($array,$user);
break;
}
}
if(empty($array)) {
echo "Bitte Eingaben &uuml;berpr&uuml;fen!";
}
}
?>
ausloggen.php
PHP:
<?php
session_start();
session_destroy();

echo "Erfolgreich ausgeloggt!";
?>

Vorteil: funktioniert ohne Datenbank.
[edit]
Für ein größeres Vorhaben sollte man eine Datenbank benutzen!
[/edit]
schiese
 
Zurück