ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
360
360
EMPFEHLEN
-
Hallo zusammen,
auf der Suche nach einem einfachen Login-Skript bin ich auf diese Seite gestoßen:
http://www.administrator.de/php_-_ei..._sessions.html
Klappt auch alles ganz gut, ABER:
Laut diesem Skript ist eine Fehlermeldung ("Bitte fülle beide Felder aus") nur vorgesehen, wenn eines der beiden Felder nicht ausgefüllt wurde. Wenn nun aber ein Feld (oder beide) FALSCH ausgefüllt wurden, kommt keine Fehlermeldung (der Inhalt der richtigen Zielseite wird aber auch nicht angezeigt - der Inhaltsbereich ist einfach leer).
Wie muss das Skript erweitert werden, um bei falschen Nutzer-/Passwortdaten eine Fehlermeldung auszugeben?
Danke und viele Grüße,
Kerstin
-
29.08.08 14:03 #2
- Registriert seit
- Sep 2007
- Beiträge
- 22
PHP-Code:<?php
$user = '';
$pw = '';
//nun kommen die if abfragen die das ganze relativ sicher machen
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
//post variablen einfach speichern
$user = trim($_POST['user']);
$pw = trim($_POST['pw']);
if(empty($user) || empty($pw))
{
echo "<b>Bitte fülle ";
if (empty($user)) echo 'das Feld User ';
if (empty($user) && empty($pw)) echo 'und ';
if (empty($pw)) echo 'das Feld Passwort ';
echo "aus!</b>";
}
elseif ($user == $user_name AND $pw == $user_pass)
{
$_SESSION['user'] = $user;
$_SESSION['pw'] = $pw;
header('Location: index2.php');
exit();
}
else
{
echo '<b>Falscher User oder falsches Passwort!</b>';
}
}
echo '<form name="login" method="post" action="'.$_SERVER['PHP_SELF'].'">
User Name: <input type="text" name="user" value="'.$user.'"> User Passwort: <input type="password" name="pw" value="'.$pw.'">
<input type="submit" name="Submit" value="einloggen">
</form>';
?>
Da header() so nicht mehr funktioniert, solltest du das Script ganz am Anfang vor dem HTM-Code stellen und die Ausgaben in einer Variable speichern...
Habs leider nicht getestet!Geändert von crazy_root (29.08.08 um 16:10 Uhr)
-
Danke erstmal.
Im alten Skript standen der korrekte Username und das Passwort drin (ist immer gleich). Bei dir finde ich das jetzt nicht.
-
29.08.08 16:00 #4
- Registriert seit
- Aug 2007
- Ort
- Pfalz
- Beiträge
- 219
Nutzername und Passwort kannst du einfach durch
selbst bestimmen. das ganze fügst du einfach zwischenPHP-Code:$user_name = "<hier benutzername einfügen>";
$user_pass = "<hier passwrot einfügen>";
undPHP-Code:$user = trim($_POST['user']);
$pw = trim($_POST['pw']);
ein.PHP-Code:if(empty($user) || empty($pw))
Gruß
-
29.08.08 16:19 #5
- Registriert seit
- Sep 2007
- Beiträge
- 22
@Kaeschdin
Sieht jetzt besser aus
//edit:PHP-Code:<?php
//login script
//session beginnen, immer ganze oben vor html Ausgabe!
session_start();
//Passwort und Benutzername wird hier Manuell eingestellt
//diese Daten musst du anpassen
$user_name = "test";
$user_pass = "123456";
$login_msg = '';
/*
Hier kommt mein Script rein
anstatt 'echo benutze'' '$login_msg .= '
*/
//html ausgabe
// Hier brauchst du kein PHP mehr!
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
...
...
<?php
// $login_msg
if (!empty($login_msg)) echo $login_msg;
?>
<!-- Formular -->
<form name="login" method="post" action="<?=$_SERVER['PHP_SELF']?>">
User Name: <input type="text" name="user" value="<?=$user?>"> User Passwort: <input type="password" name="pw" value="<?=$pw?>">
<input type="submit" name="Submit" value="einloggen">
</form>
<!-- Formular Ende -->
...
Es fehlte eine geschlossene Klammer!
Mein Editor meckert ja sofort, aber in einer Textbox nicht
Geändert von crazy_root (29.08.08 um 17:11 Uhr)
-
Irgendwas passt nicht.
Er meckert darüber:
if (!empty($login_msg) echo $login_msg;
Und zwar: Parse error: syntax error, unexpected T_ECHO ...
Vielleicht liegt es aber auch an mir. PHP ist nicht mein Ding.
Im Prinzip brauche ich die index2.php aus dem von mir geposteten Link nicht. Ich möchte ein Formular, wo ich User und PW eingebe und bei richtiger Eingabe auf der Seite login.html lande.
Ich habe jetzt vor <!DOCTYP... in meiner php-Datei den Teil deines zuletzt geposteten Skripts eingefügt, der auch dort vor <!DOCTYP ... steht. Muss ich an dem Teil was ändern? Weil da ja drin steht: /*
Hier kommt mein Script rein
anstatt 'echo benutze'' '$login_msg .= '
*/
Den Rest habe ich 1:1 im Inhalts-DIV eingefügt.
-
29.08.08 17:19 #7
- Registriert seit
- Aug 2007
- Ort
- Pfalz
- Beiträge
- 219
Naja, in der Fehlermeldung steckt doch schon alles drin

unexpected T_ECHO bedeuted, dass du irgendwo eine Ausgabe machen willst, die vorherige Anweisung aber nicht abgeschlossen ist. Da fehlt mit hoher Wahrscheinlichkeit nur ein Semikolon.
Nach unexpected T_ECHO steht "in yyy.php on line xx", also tritt der Fehler in der Datei yyy.php in Zeile xx auf.
-
Es hat eine Klammer gefehlt

Bei richtiger Eingabe komme ich auf die Seite, bei falschen Daten erscheint die Fehlermeldung an der falschen Position, bei gar keiner Eingabe erscheinen wieder die Login-Felder.
Es geht um diese Seite: http://www.schmellenkamp.de/onlinere...cher/login.php
test
123456
Zielseite: login.htmlGeändert von Kaeschdin (29.08.08 um 19:00 Uhr)
-
30.08.08 14:35 #9
- Registriert seit
- Sep 2007
- Beiträge
- 22
-
Ich habe es jetzt nach dieser Anleitung gelöst:
http://www.html.de/tutorials/11487-p...-sessions.html
Danke an alle
Geändert von Kaeschdin (03.09.08 um 21:54 Uhr)
Ähnliche Themen
-
Problem mit Login-Skript
Von userjules im Forum PHPAntworten: 25Letzter Beitrag: 19.01.10, 17:26 -
Login-Bereich erweitern
Von compoundbow83 im Forum PHPAntworten: 1Letzter Beitrag: 07.05.07, 19:05 -
Login-Bereich erweitern
Von compoundbow83 im Forum Stellenangebote (unentgeltlich)Antworten: 2Letzter Beitrag: 05.05.07, 11:47 -
Passwort skript erweitern mit Benutzer
Von supser im Forum PHPAntworten: 45Letzter Beitrag: 07.04.07, 10:16 -
[Suche] Login-Skript
Von Miraculixx im Forum PHPAntworten: 3Letzter Beitrag: 11.08.06, 12:57





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren