Hilfe bei Login-Script benötigt

M

MAC4-EVER

Aktives Mitglied
Thread Starter
Dabei seit
02.10.2005
Beiträge
184
Reaktionspunkte
7
Hallo zusammen

Bin seit geraumer Zeit mit einem Login-Script am kämpfen :)
//Script Tutorial //

//Meine Version//

Habe alle Files heruntergelden und dementsprechend angepasst. Wenn ich nun die Seite aufrufe scheint es so, als würde alles klappen.

Jedoch wird glaubs kein Eintrag in die DB gemacht... au wenn es soweit heisst.
Edit: Wenn ich mich regisitriert habe, komme ich mit meinen Login-Daten nicht rein.

Als Admin habe ich volle Lese und Schreibrechte für die Datenbank gegeben.

Was mache ich falsch ?

Danke für Eure Hilfe
MAC4-EVER

P.S: Die Datenbank scheint laut PHPmyAdmin in Ordung zu sein.
 
Zuletzt bearbeitet:
... so, als würde alles klappen.

Jedoch wird glaubs kein Eintrag in die DB gemacht... au wenn es soweit heisst.
Edit: Wenn ich mich regisitriert habe, komme ich mit meinen Login-Daten nicht rein.
Wieso glaubst Du das nur ?
Du hast doch ein phpmyadmin installiert.
Wenn Du in der entsprechenden Tabelle nachschaust, weißt Du ob er einen Eintrag macht, oder nicht.
Da mußt Du nichts glauben.

Was mache ich falsch ?
Das kann man so nicht sagen.
Lass Dir doch Spaßeshalber mal die SQL-Abfragen ausgeben, die er jeweils macht.

Da siehst Du ja dann was passiert.

Eventuell gibt es auch einen PHP-Fehler und Du bekommst den nicht mit, weil das error reporting ausgeschaltet ist.

Schreib mal an einer Zentralen Stelle irgendwo in Dein PHP
error_reporting(E_ALL);
 
Hmm... habe nun die Tabelle im PHPmyAdmin überprüfen lassen. Soweit alles OK.

Trotzdem wird kein Eintrag in die Tabelle gemacht....

Wie kann ich die MYSQL-Abfragen ausgeben ? Ist dass das gleiche wie Tabelle überprüfen ?
>>> Sorry..bin noch am PHP / MYSQL lernen.. :)

MAC4-EVER
 

Anhänge

  • php.zip
    1,6 KB · Aufrufe: 153
Zuletzt bearbeitet:
Hmm; sagen wir mal so:
Wenn man eine neue Programmiersprache lernt, z.B. php, dann sollte man aus meiner eignen Erfahrung mit GANZ EINFACHEN Sachen anfangen bis man es verstanden hat und das dann lange steigern.
Also ein einfaches FORM, einfache INSERT / SELECT / ECHO usw.
Das Zusammentackern von im web gefundenen Code-Fetzen ist in meinen Augen nicht der geeignete Einstieg.

Zur Sache:
Wenn man unsicher ist, ob php etwas macht oder nicht:
An den entscheidenden Stellen AUSGABEN reinschreiben, die man später wieder ausbaut oder per Schalter steuert.

Diese Stelle hier ist Dein Problem:
PHP:
$query = @mysql_query("INSERT INTO $table (userName,userPassword,userMail,userQuestion,userAnswer) VALUES "
   ."('$username','$pass','$email','$question','$answer')");
   if(!$query)
   {
      return "error=" . mysql_error();
   } else {
      return "user=ok";

Hier halt ein paar ECHOS reinmalen:

PHP:
echo 'Vor insert - Username = ' . $username  .'Tabelle ' . $table . '<=Ende';

usw.
Solche Debug-Infos kann man mit IF... klammern und z.B. über eine in einem INCLUDE definierte Variable steuern. Sehr hilfreich beim Lernen und Eingrenzen eines Fehlers.
 
Vielen Dank für deine ausführliche Hilfe.

Ich denke iregendwo habe ich nun doch leider wieder eine (Denk)Fehler gemacht

PHP:
 // all checks ok
   $query = @mysql_query("INSERT INTO $table (userName,userPassword,userMail,userQuestion,userAnswer) VALUES "
  echo 'Vor insert - Username = ' . $username  .'Tabelle ' . $table . '<=Ende';   
  ."('$username','$pass','$email','$question','$answer')");
   if(!$query)
   {
      return "error=" . mysql_error();
   } else {
      return "user=ok";
   }
}

Nun kann mal irgendwas eingeben beim Login und es klappt immer. Das heisst man kommt ohne registiert zu sein rein. Ein Eintrag wird aber nach wie vor nicht gemacht..

Danke für Eure Hilfe
MAC4-EVER
 
Zuletzt bearbeitet:
Ich habe die Skripte aus Deinem ZIP mal bei mir benutzt und das funktioniert bei mir alles.
Allerdings habe ich das user.php Skript nur direkt mit Parametern aufgerufen und nicht
aus diesem swf heraus, weil ich bei mir kein Flash (Die Entwicklungsumgebung) drauf habe.

Was passiert denn, wenn Du die Datei user.php direkt im Browser aufrufst ?
Irgendwelche Fehlermeldungen ?

Wenn Du in der user.php unten in dem switch kleine Änderungen machst:
if(isset($_REQUEST["action"]))
{
switch($_REQUEST["action"])
{
case "register":
$result = register($_REQUEST['username'],$_REQUEST['pass'],$_REQUEST['email'],$_REQUEST['question'],$_REQUEST['answer']);
print $result;
break;
case "login":
$result = login($_REQUEST['username'],$_REQUEST['pass']);
print "user=" . $result;
break;
case "forget":
$result = forget($_REQUEST['email']);
print $result;
break;
case "new_password":
$result = new_password($_REQUEST['username'],$_REQUEST['email'],$_REQUEST['answer']);
print $result;
break;
}
}

Kannst Du über die GET-Parameter testen, wie dein Skript reagiert.

Neuen User Registrieren:

Login:

Da bekommst Du dann ja jeweils ausgegeben, was für ein Wert zurückkommt.
 
Zuletzt bearbeitet:
WUNDERBAR !!!

Ich danke Euch allen ganz herzlich für Eure Hilfe.
Nun klapp alles wie es sein sollte.

Liebe Grüsse
MAC4-EVER
 
Sehr schön.
Woran lag es denn, das es nicht funktioniert hatte ?
 
Es lag an der keinen Änderung nach dem Switch.
So wie du das beschrieben hast.

Danke nochmals für deine Hilfe
MAC4-EVER
 
Ah, ok.
Das Skript erwartete im Orginal Daten aus einem POST-Request und Du hast die Daten wahrscheinlich per GET gesendet, weswegen das nicht funktioniert hatte.

Meine Änderung auf $_REQUEST hat bewirkt, das dem Skript egal ist, ob die Daten per POST, oder GET gesendet werden. :)

Eigentlich hatte ich das nur zum debuggen geändert, aber wenn's funktioniert... :)
 
Zurück
Oben Unten