Logout mit Löschung der Userdaten

lordofscotland

Erfahrenes Mitglied
Hi Leute,

ich bin derzeit am erstellen eines Webauftritts mit einem Login- und Logoutbereiches. Das ganze läuft auf einer MySQL Datenbank

Während der Loginbereich das kleinere Problem war, steh ich nun wie die sprichwörtlich "Kuh vorm neuen Tor" und hab das problem das der Logout nicht so richtig klappt.

Beim Logout soll der USer seinen Benutzer und das Passwort angeben und diese beiden Dinge sollen dann auch in der Datenbank gelöscht werden.
Nur leider kommt wenn ich das ganz System teste immer wieder die Mitteilung das ich keine Daten eingetragen habe.

Ich hab das script welches die daten aus der DB löschen soll hier mit angehangen, würde mich freuen wenn ihr mir helfen könntet.

Dank im Voraus

Mike
 

Anhänge

Warum hast du's nicht gepostet? War ja nicht viel...

PHP:
if( isset($auswahl) ) 
 {
 include("db_connect.php");
 $sql = "delete from logindaten WHERE 1=2 ";
 foreach ( $auswahl as $x );
 $sql.= " or pw = $x ";
 mysql_query($sql);
 $n = mysql_affected_rows();
 if ( $n <> -1 )
   print "Ihre Eintragungen wurden gelöscht";
 else
   print "Fehler beim l&ouml;schen";
 }
 else
 {
  print "keine Daten eingetragen die gel&ouml;scht werden k&ouml;nnen";
 }

Wenn du immer "Keine Daten eingetragen etc..." ausgegeben bekommst, dann liegt das daran, dass deine if-Bedingung nicht true ist. Ergo kennt das Script die Variable $auswahl nicht. Wo kommt denn die her?

Den Teil, der nicht ausgeführt wird, verstehe ich nicht;
was soll denn das 1=2 im SQL Statement, und was ist das hier:
PHP:
if ( $n <> -1 )
?
 
Hallo,

nun der Befehl ist noch vom Vorgehen Logoutscript, wo ich den User eine Checkbox angeboten habe und mit dieser hat das ganze auch funktioniert.
Nur der Auftraggeber möchte das der User sich mit Benutzername und Passwort einloggt um sich auszuloggen.

Die Sache mit 1=2 hat mir mein PHPdozent so beigebracht, was das ganze nützt *schulterzucken* keine Ahnung. Nur eins hab ich gemerkt mit dem 1=2 hat das vorhergehende Script geklappt, ohne dem gabs Fehler ohne Ende.

Die variable $auswahl kommt von der einwahlseite her und es soll damit geprüft werden ob Daten eingetragen wurden oder nicht.

Danke für deine Hilfe

Mike
 
Wie wird denn $auswahl übergeben, über ein Formaular? Dann musst du die Variable wahrscheinlich mit $_POST["auswahl"] ansprechen. Was steht denn nun drin? Dem foreach nach muss das ja ein Array sein, aber mit welchen Inhalten? So wie die Query aufgebaut ist, wahrscheinlich u.a. ein Passwort (pw)?

Du verlangst von der Datenbank hier folgendes: "Lösche die Datensätze, wo 1=2 ist (was ja nie der Fall ist) ODER wo pw irgend einem Eintrag aus dem Array $auswahl entspricht". Deswegen wäre es auch gut zu wissen, was da sonst noch so drin steht. Auf jeden Fall löschst du so nicht nur einen Benutzer, sondern alle, die (zufällig - kann ja sein) das selbe Passwort haben. Wenn jetzt in Auswahl noch andere Benutzerangaben stehen (z.B. Name, Wohnort), dann löscht diese Abfrage auch auch alle Benutzer, die den Namen, Wohnort oder sonstiges (zufällig - kann ja sein) als pw angegeben haben...

wenn z.B.
$auswahl['Name'] = 'Max'
$auswahl['pw'] = 'geheim'
$auswahl['Wohnort'] = 'NRW',
dann lautet mit obigen Code deine Query
DELETE FROM logindaten WHERE 1=2 OR pw = Max OR pw = geheim OR pw = NRW
(wobei dann immer noch das SQL falsch ist :-) )

Hast du in der Datenbank keine IDs für die Benutzer, so dass du den richtigen Datensatz darüber kriegen köntest?

Wenn nein, dann frag den Usernamen mit ab;
PHP:
$query = "DELETE * FROM logindaten WHERE feld_mit_username = '$username' AND pw =  '$passwort'";

Dann dieses if - entweder ist <> ein mir unbekannter Operator (was ja sein kann), oder das ist Humbug :-)

Ich hätte es so gemacht
PHP:
if(mysql_affected_rows() > 0) {
  echo "Da ist was passiert";
}
 
Hi,

ich hab eine id die sich abfragen lässt, das selbe ginge auch mit der Kundennummer wenn ich mich nicht irre. Falls doch sag bescheid.

Mike
 
Zurück