Update mit Variable funktioniert nicht????

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    es tut mir leid, aber ich bekomms einfach nicht hin. Ist schon möglich, dass die Zeichensetzung von '$_POST[mail]' falsch ist. Oder wollt ihr mir was anderes anmerken. Sorry. Aber ich hab auch folgende Varianten ausprobiert:

    '$_POST["mail"]'
    '$_POST['mail']'
    $_POST[mail]
    $_POST['mail']
    "'.$_POST['mail'].'"

    Ich hab alle Varianten geprüft, aber es funktioniert nichts von alledem. Ich glaub, dass es nicht an dem $_POST['mail'] liegt.

    Kommentar


    • #32
      Schreibe mal
      PHP-Code:
      print_r($_POST); 
      an den Anfang deines Scriptes, an welches du das Formular sendest.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #33
        und das kommt dabei raus:

        Array ( [mail] => tg )

        (Wenn ich tg eingebe...)

        Kommentar


        • #34
          OK, dann zeig jetzt noch mal die Stelle, wo du das in deine Query einbaust, die Kontrollausgabe dieser Query, und was mysql_error() nach dem Absetzen dieser Query an die DB ausgibt.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #35
            Original geschrieben von LOLLe
            Ich hab alle Varianten geprüft, aber es funktioniert nichts von alledem.

            Kommentar


            • #36
              Original geschrieben von LOLLe
              Was ich einfach komisch finde und zu dem auch noch keiner was richtiges geschrieben hat, ist das Phänomen, dass ich zwar Zahlen, aber keine Wörter, also Buchstaben, eintragen lassen kann.

              [
              Dann schreib ich dazu, dass Du register_globals=on hast. Deswegen geht $mail. Und zweitens muss es um Buchstaben Apostrophe haben, aber um Zahlen nicht. Drittens braucht es in solchen Konstrukten geschweifte Klammern, z.B.

              mysql_query ("UPDATE zbasar_registrieren SET email1 = '{$_POST['mail']}' WHERE ...")

              oder dann mit Punkten.

              mysql_query ("UPDATE zbasar_registrieren SET email1 = '" . $_POST['mail'] . "' WHERE ...")

              (apostroph, quote, punkt und gegengleich punkt quote apostroph)

              Viertens solltest Du . addslashes($_POST['mail']) . schreiben. (zwei Punkte, zwei runde (, zwei eckige [, zwei Apostrophe). denn ohne addslashes kann man deine Datenbank mit deinem Formular aufbrechen.

              Und fünftens habe ich eine Funktion S($x) für solche Datenbankwerte, welche die slashes und gerade auch die Apostrophe enthält, dann ist's ein gleichgewichtiges überblickbares immer richtiges Zeugs.
              function S($x) { return '\\'' . addslashes($x) . '\\''} // alles einfache Apostrophe

              mysql_query ("UPDATE zbasar_registrieren SET email1 = " . S($_POST['mail']) . " WHERE ...")


              Viel Glück
              Zuletzt geändert von vierteln; 09.05.2006, 00:14.

              Kommentar


              • #37
                so hatte ich es vorher auch schon probiert:

                mysql_query ("UPDATE zbasar_registrieren SET email1 = '{$_POST['mail']}' WHERE ...")


                Wenn jetzt was vorher in der Datenbank steht und ich in das Formular was einfüge, dann wird der Datenbankinhalt an der Stelle einfach gelöscht. Es steht also nichts mehr drin. Das gilt für Zahlen und für Buchstaben.

                Kommentar


                • #38
                  Original geschrieben von LOLLe
                  so hatte ich es vorher auch schon probiert:

                  mysql_query ("UPDATE zbasar_registrieren SET email1 = '{$_POST['mail']}' WHERE ...")
                  Und deine Kontrollausgabe dieses Querystrings ergab ...?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #39
                    ...das kommt dabei raus:

                    (UPDATE zbasar_registrieren SET email1 = 'dfdf' WHERE benutzername='reichelt') or die(mysql_error())

                    Ich habe jetzt wirklich mal nachgesehen und meine register_globals stehen wirklich auf on. Wäre echt mühselig, alles wieder umzuschreiben und die Variablen zu ändern. Aber wahrscheinlich wird dies ja empfohlen.
                    Aber erst mal hab ich ein dickes anderes Problem...

                    Kommentar


                    • #40
                      Wenn ein echo $sql; diese Ausgabe erzeugt:
                      (UPDATE zbasar_registrieren SET email1 = 'dfdf' WHERE benutzername='reichelt') or die(mysql_error())

                      dann must du ja - von den Variablen mal abgesehen - sowas gemacht haben:
                      PHP-Code:
                      $sql "(UPDATE zbasar_registrieren SET 
                      email1 = 'dfdf' WHERE benutzername='reichelt') or die(mysql_error())"

                      Das ist nicht wahr, oder?

                      Kommentar


                      • #41
                        was solln das auch heißen:

                        Und deine Kontrollausgabe dieses Querystrings ergab ...?
                        Sorry, aber kenn eure Sprache nicht so ganz und mach eben das beste draus...

                        Kommentar


                        • #42
                          Kontrollausgabe eines Querstrings heißt, man setzt sich die Query zusammen, speichert den entstandenen String in einer Variable und läßt sich diese zu eigenen Kontrolle ausgeben.

                          In PHP gesprochen:
                          PHP-Code:
                          $sql 'SELECT ... WHERE '.$_POST['foo'].' = ... ';
                          echo 
                          $sql
                          Das macht man gern, weil man anders nicht erfahren kann, wie die Query aussah, die MySQL übergeben wurde. (... weil MySQL in seinen Fehlermeldungen immer nur einen Teil der Query anzeigt.)

                          Kommentar


                          • #43
                            Original geschrieben von LOLLe
                            was solln das auch heißen
                            Es heißt das, was dir im Laufe dieses Threads schon mehrmals erklärt wurde,
                            und wo du beleidigt darauf reagiert hast, als dir unterstellt wurde, etwas so simples nicht zu begreifen - obwohl du jetzt doch wieder beweist, dass du etwas so simples offenbar nach mehrmaliger Erklärung immer noch nicht verstanden hast ...


                            Also, noch mal ganz langsam zum mitmeisseln:

                            Wenn du
                            PHP-Code:
                            mysql_query ("UPDATE zbasar_registrieren SET email1 = '{$_POST['mail']}' WHERE ..."
                            hast, und darum gebeten wirst, eine Kontrollausgabe des dort zusammengesetzten Querystring zu machen, dann machst du daraus
                            PHP-Code:
                            $sql "UPDATE zbasar_registrieren SET email1 = '{$_POST['mail']}' WHERE ...";
                            echo 
                            $sql;
                            mysql_query($sql) or die(mysql_error()); 
                            So schwer ...?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #44
                              UPDATE zbasar_registrieren SET email1 = 'df' WHERE benutzername='reichelt'

                              ich hab df eingegeben.

                              Kommentar


                              • #45
                                Hallo,

                                ich hab meinen Fehler nach etlichen Tagen Fehlersuche gefunden. So unglaublich es auch klingen mag. Ich habe einen falschen HTML-Befehl benutzt. Ich wollte die Hintergrundfarbe meiner Tabelle so angeben:

                                <table background=#6A6A58>

                                dabei müsste es ja richtig nicht background sondern bgcolor heißen. Ich habe das nicht gemerkt, da meine Hintergrundfarbe von der Tabelle auch die Hintergrundfarbe meiner Seite ist. Nur funktioniert dadurch auch meine Update-Funktion nicht mehr. Es ist wirklich so. Wenn ich <table background=#6A6A58> schreibe, dann funktioniert Update nicht. Wenn ich es wegmache, dann funktioniert die Update-Methode. Wie ist sowas möglich? Ich bin unendlich froh den Fehler gefunden zu haben. Da hätte ich ja Jahre lang suchen können! Nochmal vielen Dank! Gruß! Lorenz

                                Kommentar

                                Lädt...
                                X