PHP Login,. wie ...

rexee

Grünschnabel
Also ich habe mich mal etwas hingesetzt und auch etwas definiert. Aber ich habe da nen Problem. Ich habe soweit fast alles außer die MYSQL Daten in einer Datei. Jedoch weiß ich nicht woran der fehler eigentlich liegt. Immer wenn ich auf Abmelden gehe löscht der den Benutzer aus der Datenbank.

So sieht der code aus

PHP:
<?
function abmelden($fertig, $user, $password)
{

include ("config.php");

if($fertig) {
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
$delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
}
else {
echo "Falsches Passwort!";
}
}
}

}
else {
	 echo "<p><h2>Abmelden</h2></p>";
	echo "<form method=\"POST\" action=\"$PHP_SELF?abmelden=yes&fertig=yes\">";
	?>
	<table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Abmelden></td>
  </tr>
</table>
</form>
<?
}

}
?>

Wo liegt der eigentliche fehler ?
 
Liegt vllt. daran, dass du DELETE ausführst, wenn das Passwort stimmt?
Wenn das Passwort stimm machst du nämlich folgendes:

PHP:
if ($row->password==$password) {
$delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
}
Da würde bei einem normalen Loginscript jetzt die Session-zuweisung kommen ;)

Edit: Warum nennst du die Funktion abmelden?
 
Zuletzt bearbeitet:
Ich nehme an, dass Dein Login ueber Sessions laeuft.
Du musst also lediglich die Session leeren, bzw. "zerstoeren".
Das wird mit session_destroy() gemacht.
 
Den Scriptschnipsel, den du geschrieben hast, willst du ja anscheinend beim Abmelden ausführen.
Da stellt 1. die Frage, wieso du überhaupt versuchst nochmals rauszufinden, ob es den User überhaupt gibt? Das macht ja eigentlich nur beim Anmelden Sinn.
Und wieso du danach wenn es ihn gibt diesen aus der Usertabelle löscht?

Ich denke du musst beim Logout entweder die Session zerstören (siehe oben), oder falls du ohne Session arbeitest und du Daten in der DB speicherst, die nach dem Abmelden weg sein sollen, müsstest du diese Daten in eine eigene Tabelle speichern.

D.h. du hättest dann zwei Tabellen. z.B. user und login. In der Tabelle user speicherst du so Dinge wie Username, Kennwort, usw. Im login speicherst du z.B. Timestamp, usw.
Dann kannst du die Daten in der Logintabelle einfach so löschen, wie du es machst und der Userstamm bleibt trotzdem erhalten.
 
grml, naja das is eigentlich auch ein toturial gewesen, aber das funzte. Und auh teiweise mit Logik. Aber wenn ich eins und eins zusammen zähle, wie kommt man auf die idee eine Abmelde Bottum, zum löschen zu nutzen?

Naja ich schau mir das ganze noch mal an, und werde das mal überarbeiten. Über Tipps wäre ich weiterhin dankbar
 
Du kannst ja auch mal hier reinschauen, vielleicht findest Du da was interessantes.

Und ich moechte Dich bitten Dich etwas durchgaengiger an Gross- und Kleinschreibung zu halten.
Ist ja schon nicht schlecht, aber zwischendurch vergisst Du mal ein paar Worte.
 
Zurück