Schwer zu beschreibenes Problem also 1. Bedingung wird erfüllt 2. nicht angezeigt
Ich schon wieder <.<
Mal wieder eins von diesen nOOB Problemen also ich wollte jetzt nen Script machen wo man die Profile bearbeiten kann
Das heisst zuerst will ich prüfen lassen welcher User überhaupt bearbeitet werden soll dies erfolgt durch erneute Eingabe des Namens und Passworts dannach soll man auf eine Seite weitergeleitet werden wo man die Sachen halt ändern kann
Auf jeden Fall wenn man das Script aufruft (das 1. mal) steht form Abschnitt 1 und form Abschnitt 2 da , wobei da ja nur Form Abschnitt stehen soll.
Wenn ich dann im Abschnitt 1 den Usernamen und das PW eingebe dann steht aber auf einmal Abschnitt 2 nicht mehr da obwohl da so sein soll. Und wenn man Abschnitt 1 erfüllt hat soll Abschnitt 1 ja verschwinden und dafür nur 2 stehen <.<
Aber irgendwie schaff ich das nicht wirklich bin jetzt schon 3 Stunden am rumprobieren
Kann mir vielleicht einer helfen?
Wäre sehr dankbar
Hier der Code (das was ich bis jetzt geschafft hab):
Ich verstehe nicht so ganz, was dieser Teil hier soll:
Imo müsste das so aussehen:
Überhaupt wirkt dein Code total chaotisch und nicht so, als würde er überhaupt funktionieren... Da weiß ich schon garnicht mehr, womit ich anfangen soll...
Ich nehme mal an, das du mit dem ersten Teil einen Login bezweckst. Dann müsste es aber imo so aussehen:
Mit dem zweiten Teil soll man seine Daten ändern können? Wenn ja würde ich das so machen:
Den Code oben kannst du einfach an der Stelle mit dem Kommentar im ersten einfügen. Der Code ist ungetestet, also könnten da noch Fehler drin sein. Noch ein paar Tips für dich:
1. gewöhn dir an, bei Formularen statt $username $_POST['username'] oder $_GET['username'] zu schreiben. Wenn auf dem Server register_globals nämlich ausgeschaltet (off) ist, funktioniert dein Script nicht mehr! Mehr...
2. Gewöhn dir einen vernünftigen und lesbaren MySQL-Syntax an. Schreibe jeden Tabellennamen und Feldnamen in diese `` Anführungszeichen und alle variablen Werte in diese ''. Schreibe alle MySQL-Befehle in Großbuchstaben (Beispiele findest du in dem von mir geposteten Code) Das hat den Vorteil, dass es keine Verwechslungen und Probleme bei Feldnamen wie zB "text" gibt (text ist ein MySQL Schlüsselwort)
3. Wenn du eigentlich nur eine Zeile bei MySQL auslesen willst, schreibe ans Ende des MySQL Befehls "LIMIT 1" Dann wird auch wirklich nur eine Zeile ausgelesen. Auch brauchst du dann keine Schleife, um die Werte auszulesen, ein einfaches $row = mysql_fetch_assoc() reicht eigentlich schon.
4. Lies dir irgendwelche MySQL und PHP Tutorials oder ähnliches nochh einmal durch. Du hast eine Menge seltsamer Fehler gemacht (zB das mit dem $row2->$username)
Ich verstehe nicht so ganz, was dieser Teil hier soll:
Imo müsste das so aussehen:
...
Aber es funktioniert auch meine Version problemlos zumindestens auf Servern mit PHP4
Also aber am Anfang wird ja der Loginbereich angezeigt, soll ja das Formular einegeblendet werden wo man seine Einstellungen edittieren kann. Aber nach dem einloggen zeigt er auch bei deinem Script nichts
ich hab das jetzt nochmal so versucht:
Damit wird endlich der 2te Teil angezeigt, aber geändert wird nachher auch nix an der DB wenn man dann auf Absenden drückt, es kommt nur die Fehlermeldung (die selbst definiert ist)
Zitat
Die Daten waren falsch!
...
Was ist das denn jetzt schon wieder für nen ********?
Du hast zwei mal
und arbeitest ohne Actions in Deinen Formularen. Wenn Du Dein zweites Formular abschickst, springt er wieder in die erste IF-Schleife und meckert dann natürlich, dass die Daten falsch sind.
Versuch es z.B. mal so für Dein Loginformular:
Und für Dein Updateformular
Oder nenn' Deine Submit-Buttons "submit1" und "submit2".
Die Idee mit dem PHP Tutorial wäre nicht mal so schlecht.
Also ich hab das Script nochmal komplett neu gestaltet
Aber mehr oder weniger mit euren Codes
Auf jeden Fall wenn man dann auf Absenden drückt
wird alles per SET auch eingeben nur das where macht Probleme
denn der will trotz Angabe im Script den usernamen dort nicht eintragen
das gibt der mir aus
wenn ich das per echo ausgeben lassen will
Nur ich hab Null Plan warum...
Du hast in der Query an einer Stelle " und ' vertauscht.
... WHERE (username = '".$_POST['username']."') LIMIT 1";
Das kann man sogar an der ausgegebenen Query sehen
Wenn ich mir deinen Code anschaue, sehe ich nur, das beim falschen Usernamen eine Meldung ausgegeben wird. Das weitere Ausführen des Scriptes wird dadurch nicht beieinträchtigt. Dh das auch wenn man ausgeloggt ist, eigentlich der Teil zum ändern der Daten angezeigt werden müsste. Hast du eigentlich mein Script mal ausprobiert?
Ausserdem kannst du an der ausgegebenen Query sehen, dass kein Username gesetzt ist. Das liegt daran, dass beim Abschicken des zweiten Formulars die Benutzerdaten nicht mehr mitgeschikt werden. (Da oben nur überprüft wird, ob das erste Formular abgeschickt wurde, wird dass Passwort nicht überprüft. Deswegen gibt es keine Fehlermeldung obwol kein Nutzername eingegeben wurde.)
Hier nochmal der Code von oben, schau ihn dir nochmal genau an:
Der Code ist zwar ungetestet, sollte aber zumindest von der logischen Struktur stimmen. Das ist vielleicht nicht die eleganteste Lösung, aber ich glaube das wäre jetzt ein wenig aufwändig, das zu erklären