Willkommen im PC-Welt-Forum
Liebe Leser,
Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Sie müssen sich vermutlich registrieren, bevor Sie Beiträge verfassen können. Klicken Sie rechts auf 'Jetzt registrieren.', um den Registrierungsprozess zu starten.
Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Sie müssen sich vermutlich registrieren, bevor Sie Beiträge verfassen können. Klicken Sie rechts auf 'Jetzt registrieren.', um den Registrierungsprozess zu starten.
Ergebnis 1 bis 9 von 9
Thema: Login-Fehler - PHP
-
04.01.2010, 20:43 #1
Byte
- Registriert seit
- 11.2009
- Beiträge
- 21
Login-Fehler - PHP
Hallo,
ich habe folgendes Registrierungs-Script:
und folgendes Login-Script:PHP-Code:<?php
include 'header.php';
?>
<?php
$verbindung = mysql_connect("xxxxxxxxxxxx")
or die ("Keine Verbindung zur Datenbank möglich. Bitte informiere den Webmaster.");
mysql_select_db("xxxxxxxxx") or die ("Keine Verbindung zur Datenbank möglich. Bitte informiere den Webmaster.");
$username = $_POST["name"];
$passwort = $_POST["pass"];
$email = $_POST["email"];
$passwort = md5($passwort);
$result = mysql_query("SELECT id FROM user WHERE name LIKE '$username'");
$menge = mysql_num_rows($result);
if($menge == 0) {
$eintrag = "INSERT INTO user (name, passwort, email) VALUES ('$username', '$passwort', '$email')";
$eintragen = mysql_query($eintrag);
if($eintragen == true) {
echo "Vielen Dank, dein Account wurde erfolgreich erstellt. Du kannst dich nun einloggen. Viel Spaß!";
} else {
echo "Fehler beim Speichern des Benutzernamens.";
}
}
else {
echo "Der Benutzername ist bereits vergeben. Bitte versuche es erneut und wähle einen anderen Namen.";
}
?>
<?php
include 'footer.php';
?>
Die Registrierung funktioniert super. Wenn ich mich dann einloggen will, bekomme ich die Meldung "Der Benutzername und/oder das Passwort waren falsch.", allerdings habe ich alles richtig eingegeben. Woran könnte das liegen?PHP-Code:<?php
session_start();
include 'header.php';
?>
<?php
$verbindung = mysql_connect("xxxxxxxxxxxxx")
or die ("Keine Verbindung zur Datenbank möglich. Bitte informiere den Webmaster.");
mysql_select_db("xxxxxxxxxxxx") or die ("Keine Verbindung zur Datenbank möglich. Bitte informiere den Webmaster.");
$username = $_POST["name"];
$passwort = md5($_POST["pass"]);
$abfrage = "SELECT name, passwort FROM user WHERE name LIKE '$username'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if($row->pass == $passwort) {
$_SESSION["name"] = $username;
echo "Danke, du hast dich erfolgreich eingeloggt. <a href=area/start.php>Zum Login-Bereich</a>";
}
else
{
echo "Der Benutzername und/oder das Passwort waren falsch.";
}
?>
<?php
include 'footer.php';
?>
-
05.01.2010, 13:46 #2
Schau mal in folgende Zeile:
Müsste es hier statt "pass" nicht "passwort" heißen, da ja die Spalte in der Datenbank auch "passwort" heißt?Code:if($row->pass == $passwort) {
Noch etwas, was nichts mit deinem Problem zu tun hat:
Sehe ich das richtig, dass du in jeder php Datei die Zugangsdaten für die Datenbank stehen hast? Wenn ja, überlege mal, ob du das nicht in eine zentrale Datei auslagern möchtest und per include() einbinden. Wenn sich die Daten mal ändern, brauchst du das dann nur an einer Stelle korrigieren.
-
05.01.2010, 16:12 #3
Byte
- Registriert seit
- 11.2009
- Beiträge
- 21
Danke für deine Hilfe, es funktioniert aber leider nicht. Hat jemand eine andere Idee, woran es liegen könnte?
-
05.01.2010, 22:37 #4
Laut http://php-wiki.de/index.php/Functio...l-fetch-object unterschiedet die Funktion mysql_fetch_object zwischen Groß- und Kleinschreibung. Wie heißt denn die Spalte genau? Hast du Sie in der DB vielleicht "Passwort" genannt?
-
06.01.2010, 15:05 #5
Byte
- Registriert seit
- 11.2009
- Beiträge
- 21
Die Spalte heißt "passwort", also klein geschrieben.
-
06.01.2010, 16:10 #6
Ich habe das Skript jetzt mal auf meinen Rechner kopiert und dort laufen lassen. Wie du geschrieben hast, hat es nicht funktioniert.
Wenn ich dann aber, wie schon in meinem ersten Post geschrieben habe, die Zeile
durchif($row->pass == $passwort) {
ersetzt habe, hat es funktioniert.if($row->passwort == $passwort) {
D.h. das Skript arbeitet selbst korrekt. Was jetzt noch falsch sein kann ist die Datei, die das Skript aufruft. Also dort, wo das Formular drin ist. Poste mal den Quellcode dieser Datei.
-
06.01.2010, 16:16 #7
Byte
- Registriert seit
- 11.2009
- Beiträge
- 21
Das Formular, mit dem man sich einloggt:
HTML-Code:<?php include 'header.php'; ?> <h2>Login</h2><p> <form method="post" action="login2.php"> <table border="0"> <tr> <td>Benutzername</td> <td><input type="text" name="name"></td> </tr> <tr> <td>Passwort</td> <td><input type="password" name="pass"></td> </tr> </table> <p> <input type="submit" value="Login"> </form> <?php include 'footer.php'; ?>
-
06.01.2010, 16:19 #8
OK, auch das habe ich getestet und es funktioniert korrekt.
Hast du denn auch die eine Zeile korrigiert, die ich dir geschrieben habe?
-
06.01.2010, 16:52 #9
Byte
- Registriert seit
- 11.2009
- Beiträge
- 21
Ich habe es geändert, es funktioniert aber immer noch nicht ...
Stichworte
12

Zitieren

Lesezeichen