Login Tutoria (ich verstehs net)

badi

Mitglied
Hi,

habe folgendes Tutorial gefunden was ich für meine Zwecke verwenden wollte. Bekomme es aber irgendwie nicht zum laufen.
PHP:
<html> 
<head> 
<title> 
Login 
</title> 
</head> 
<body> 
<form method='POST' action='benutzer.php'> 
<table width='200'> 
<tr> 
<td width='30'> 
Nick:</td> 
<td width='70'><input type='text' name='user1'></td> 
</tr> 
<tr> 
<td width='30'>Passwort:</td> 
<td width='70'><input type='text' name='pw1'></td> 
</tr> 
<tr> 
<td width='30'></td> 
<td width='70'><input type='submit' value='Login' name='login'></td> 
</tr> 
</table> 
</form> 
</body> 
</html>
Das bekomme ich ohne Probleme hin. So dumm bin ich auch wieder nicht

So und nun Kommt Benutzer.php:
PHP:
<?php session_start(); ?> 
<html> 
<head> 
<title> 
Memberbereich 
</title> 
</head> 
<body> 

<?php 
$date = date("d.m.Y"); 
//die Jetzige Zeit 
$userdir = "$user1"; 
//Wird gleich Benötigt 
include ("members/$userdir/$user1.php"); 
//So jetzt Includen wir die Datei des Members 

if($user == "$user1" && $pw == "$pw1") { 
//jetzt wird geprüft ob es den Benutzer gibt und ob das PW stimmt 

session_register("user1"); 
session_register("pw1"); 
//Jetzt speichern wir die Variablen $user, $pw und $email in der zuanfang geöffneten Session 

echo "<table width="500"> 
<tr> 
<td width="50%">Eingelogt als $user</TD> 
<td eidth="50%" align="right">$date</TD> 
</tr> 
<tr> 
<td width="100%"> 
<?PHP
include("http://www.dpl-clan.de");
?>
</td> 
</tr> 
</table>"; 
} 
else { 
echo "Sorry. Login Fehlgeschlagen!!!<br><br>" 
echo "<a href='javascript:history.back(1);'>Zurück</a>" 
} 
?> 
</body> 
</html>
Und nun kommt die Memberdatei:
ACHTUNG: Sie muss im Verzeichnis members/username/ liegen !!!!
In diesem Beispiel heisst der Member bo also muss seine Datei im Verzeichnis members/bo/bo.php liegen/sein.
PHP:
<?php 
$user = "bo"; 
//Diese Variable wird zum Benutzer vergleich benötigt 
$pw = "bo"; 
//Diese Variable wird zum Passwort vergleich benötigt 
?>
So also ich habe folgende Dateien angelegt:

login.php
benutzer.php
bo.php (im verzeichniss: members/bo/bo.php )

Es funzt aber irgendwie nicht. Was muss ich noch ändern?
Testen könnt Ihr alles unter: http://www.dpl-clan.de/login.php

Loginname: bo
Passwort: bo

Ich weiß das es für Euchvielleicht nur ne Kleinigkeit ist, aber ich bin auf diesem Gebiet absoluter Neuling.
 
Zuletzt bearbeitet:
Oh man, das sieht ja echt schlimm aus!
Entweder das Tutorial ist so richtig ******e,
oder du hast schon zu viel drin rumgebastelt obwohl
du von PHP keine Ahnung hast... :-)

Nimm als Grundlage für deine 'benutzer.php' mal folgendes:

PHP:
<?php 

session_start(); 

$date = date("d.m.Y"); 

include ("members/".$user1."/".$user1.".php"); 

if($user == $user1 && $pw == $pw1) { 

  session_register("user1"); 
  session_register("pw1"); 

  echo "Eingelogt als ".$user."<br>"; 
  echo $date; 
 
  include("index.php"); 
  //hier deine Startseite auf dem Server rein, KEINE URL!

} 

else { 
    echo "Sorry. Login Fehlgeschlagen!!!<br><br>";
    echo "<a href='java script:history.back(1);'>Zurück</a>"; 
     } 
?>

Aber am besten du versuchst erstmal so halbwegs zu verstehen, was da überhaupt passiert.
Denn sonst macht das ganze nicht viel Sinn wie ich finde.

Gruß, Dick Starbuck
 
Also umgeschrieben habe ich oben eigentlich sogut wie gar nix. Der Originallink ist hier:
http://www.webmasterpro.de/tip_content-337.php

Ich versuchs jetzt nochmal mit Deiner Hilfestellung. Bissel verstehe ich es ja.

edit: He cool es funzt dank Deiner kurzen Hilfe. Jetzt hab ich nur noch eine kurze letzte Frage: Ich muss für jeden User eine eigene php Datei anlegen, oder?
 
Zuletzt bearbeitet:
Am besten schreibst du dir noch ein kurzes Anmeldescript,
dass die Sache dann automatisiert. Das sähe dann in groben
Ansätzen so aus:

Eine 'register.php'

PHP:
<html>
<head>
<title>Register</title>
</head>
<body>

<form method='POST' action='verify.php'>
<table width='300' height="124" class="formular">
<tr>
<td class="formular" width='80'>Username:</td>
<td class="formular" width='80'><input type='text' name='user'></td>
</tr>
<tr>
<td class="formular" width='80'>Passwort:</td>
<td class="formular" width='80'><input type='password' name='pw1'></td>
</tr>
<tr>
<td class="formular" width='80'>Wiederholen:</td>
<td class="formular" width='80'><input TYPE="password" name='pw2'></td>
</tr>
<tr>
<td class="formular" width='80'></td>
<td class="formular" width='80'><input type='submit' value='Register' name='Register'></td>
</tr>
</table>
</form>

</body>
</html>

Und eine 'verify.php'

PHP:
<?php 

if ($pw1 == $pw2){ 

     $userfile="members/".$user.".php"; 
     $edit=fopen($userfile,"w"); 
     
     fwrite($edit,"<?php\n"); 
     fwrite($edit,"\$user = \"$user\";\n"); 
     fwrite($edit,"\$pw = \"$pw1\";\n"); 
     fwrite($edit,"?>\n"); 

     fclose($edit); 

     echo "User wurde erfolgreich registriert.";

}

else { 

     echo "Bitte die Eingaben überprüfen.";

}
 
?>

Aber ich würde dir generell vorschlagen, dich etwas mehr in die ganze
Geschichte einzuarbeiten. Denn das Tutorial, welches du als Grundlage
nutzt, ist wirklich ziemlich mies...
 
Zuletzt bearbeitet:
Dick Starbuck hat gesagt.:
Aber ich würde dir generell vorschlagen, dich etwas mehr in die ganze
Geschichte einzuarbeiten. Denn das Tutorial, welches du als Grundlage
nutzt, ist wirklich ziemlich mies...

Thx for help. Bin ja grade dabei mich einzuarbeiten. Habe noch paar Weiterleitungsfehler. Wenn ich Nick und PW richtig eingebe, werde ich auch in den internen Membersbereich weitergeleitet. Aber wenn ich nun gar nichts eingebe, oder falsche Daten, wird zwar eine Fehlermeldung ausgegeben aber darunter steht der geschützte Memberbereich. Doch das werde ich hoffentlich noch alleine hinbekommen. Ich werds auf jeden Fall jetzt erstmal probieren.

PS: Ich hab kein besseres Tutorial gefunden. Aber wie Du an den Kommentaren sehen kanst bin ich nicht der einzige der da Probleme hat.
 
Diese Fehler bekommst du mit einfachen If-Abfragen weg. Wenn du mit Dateien arbeitest, deren Existenz nicht sicher ist, bzw. deren Namen durch Variablen gesetzt werden, die unter umständen nicht richtig gesetzt sind, musst du die Dateien vorher immer auf Existenz prüfen, da dir Fehlermeldungen sonst sicher sind.

Das könnte in deinem Falle z.B. so aussehen:

PHP:
<?php

session_start();
// Die Session wird gestartet.

$memberfile = "members/".$user1.".php"; 
// Die Userdatei mit Pfad wird als Variable gesetzt...

if(file_exists($memberfile )){
// ...und hier auf Existenz geprüft.

include ($memberfile);
// Wenn sie existiert, wird sie includet.

if($user == $user1 && $pw == $pw1){
// Nächste Abfrage: Stimmen Username und Password der Eingabe mit denen in der Userdatei überein?

session_register("user1");
session_register("pw1");
// Wenn ja, werden hier die Sessionvariablen registriert...

echo "<meta http-equiv='refresh' content='0; URL=index.php'>";
// ...und du wirst auf deine Haupseite weitergeleitet.

}

else{
echo "Das Passwort war leider falsch!";
// Eingegebener Username und Passwort stimmen nicht mit denen in der Datei überein? Dann passiert das hier.
}

}
else {
echo "Der angegebene User existiert nicht.";
// Wenn die Userdatei nicht existiert, wird das hier ausgeführt.
}

?>

Entsprechend musst du dann auch deine Dateien mit Abfragen versehen, die nur von eingeloggten Membern betreten werden dürfen. D.h. z.B. deine index.php sollte abfragen, ob du eingeloggt bist, und wenn das nicht der Fall ist, sollte sie dich wieder zum Login leiten... Aber da lasse ich dich jetzt mal selber machen.. ;)
 
Zuletzt bearbeitet:
Zurück