Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Registrierung funktioniert nicht.

Hallo,

Ich habe ein kleines Problem mit einem LogIn-Formular, welches ich erstellt habe. Ich habe eine Datenbank angelegt, einen Admin-Account gleich mit. Dieser Account funktioniert auch beim LogIn.
Wenn ich aber nun einen neuen Benutzer über ein Registrierungsformular anlegen will, kommt ein Fehler bei der Registrierung.

Anfolgend die php-Datei:

Code:                   In Zwischenablage kopieren (nur IE)
1">

Wäre für eure Hilfe sehr dankbar.
Hier gehts zum Orginal Eintrag "Registrierung funktioniert nicht." im Forum

Antworten

Zitat:
kommt ein Fehler bei der Registrierung.
Ja? Och..... soll ich raten.......

--------
Grundsätzlich, wärend der Fehlersuche:
Gehört an den Anfang aller betreffenden Scripte, noch vor
session_start() oder irgendwelchen header() Aufrufen:
Code:                   In Zwischenablage kopieren (nur IE)
2">

vielleicht schreit PHP um Hilfe und keiner hört zu :)

Alle @ vor Funktionsaufrufen und Variablenzuweisungen,
sind zu entfernen. Alle, auftretenden Meldungen, sind
zu beseitigen und bitte nicht durch Abschalten sondern
durch Korrekturen im Quellcode.

Hinter jedem
[doc]mysql_connect,mysql_select_db,mysql_query[/doc]
wollen wir eine Fehlerprüfung mit
[doc]mysql_error[/doc]
sehen. Wenn du das nicht machst, können wir dir nicht helfen und
du wirst meist ein genervtes Aufstöhnen als Antwort erhalten :)
-----------

Zusätzlich:
Dein Script ist für SQL-Injections empfindlich und basiert teilweise auf register_globals=On und das ist nicht gut..!!


2.

Diese Meldung sollte eigentlich nach der Registrierung angezeigt werden.
Code:                   In Zwischenablage kopieren (nur IE)
3">

Stattdessen geht der Server direkt auf diesen Bereich hier zu:
Code:                   In Zwischenablage kopieren (nur IE)
4">

Weshalb er die vorigen Zeilen überspringt, sagt er nicht.


3.

Sag' mal, hast du die Antwort von combie überhaupt gelesen und diese Infos umgesetzt?

Standard-Antwort:
Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An den Anfang des Scriptes schreibt man die Zeile: error_reporting(E_ALL);
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt.

*** Nobody ***


4.

Wahrscheinlich, weil die Bedingung vorher halt so formuliert ist, wie sie formuliert ist. Solche if-else-Kaskaden sind nicht unbedingt guter Stil und man soltle versuchen, so etwas (z.B. durch Funktionen) aufzulösen.Hilft ungemein bei der Fehlersuche.


5.

mysql-error hättest du ruhig mal auswerten können..
Aber ich kann dir schon sagen was rauskommt:
#1146 - Table 'xxx.USERS' doesn't exist

Da Deine Selects _vielleicht_ funktionieren wird USERS wohl eigentlich users heißen..
Da du wahrscheinlich ein Linux-System hast wird bei Tabellennamen Groß- und Kleinschreibung unterschieden.

Dein Script ist aber ziemlich schrottig, jedes @ ist eins zuviel, keine mysql_error, keine Verhinderung von SQL-Injection.
http://de.wikipedia.org/wiki/SQL-Injektion


6.

Zitat:
BenniG. postete
mysql-error hättest du ruhig mal auswerten können..
Aber ich kann dir schon sagen was rauskommt:
#1146 - Table 'xxx.USERS' doesn't exist

Da Deine Selects _vielleicht_ funktionieren wird USERS wohl eigentlich users heißen..
Da du wahrscheinlich ein Linux-System hast wird bei Tabellennamen Groß- und Kleinschreibung unterschieden.

Dein Script ist aber ziemlich schrottig, jedes @ ist eins zuviel, keine mysql_error, keine Verhinderung von SQL-Injection.
http://de.wikipedia.org/wiki/SQL-Injektion
Vielen Dank, darin lag tatsächlich der Fehler.

Den Anderen auch ein Danke schön für die Mühe, und entschuldigt mich, wenn ich euch auf die Nerven mit meiner Duseligkeit gefallen sein sollte.

MfG


Hier gehts zum Orginal Eintrag "Registrierung funktioniert nicht." im Forum
 
phpforum.de | Impressum