Metalphreek: UPDATE überPHP liefert leeren Wert trotz Eingabe

Servus Leute,
erstmal der HTML-Code:

<form action="edit_persoenliches.php" method="post">  
    <table>  
        <tr>  
            <td>  
                <input name="vorname">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                <input name="nachname">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                <input name="straße">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                <input name="plz">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                <input name="ort">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                <input name="geb">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                <input name="sternzeichen">  
            </td>  
        </tr>  
        <tr>  
            <td>  
                <input name="geschlecht">  
            </td>  
        </tr>  
    </table>  
</form>  

Hier der PHP-Code:

$sql = "UPDATE user  
    SET user_vorname = '".$_POST['vorname']."',  
        user_nachname = '".$_POST['nachname']."',  
        user_straße = '".$_POST['straße']."',  
        user_plz = '".$_POST['plz']."',  
        user_ort = '".$_POST['ort']."',  
        user_geb='".$_POST['geb']."',         user_sternzeichen = '".$_POST['sternzeichen']."',  
        user_geschlecht = '".$_POST['geschlecht']."'  
    WHERE user_id = ".$_GET['id']."";  
mysql_query($sql);

Wenn ich aber nun etwas eintrage, werden alle zu NULL, sprich nichts. Lasse ich mir aber die $sql oder die einzelnen Variablen ($_POST['vorname'], $_POST['nachname'], usw.) anzeigen, stimmt alles.
Trage ich jedoch in die PHP-Datei die Daten selber ein (z.B. ... SET user_vorname = 'Test' ...) trägt er Test in die Spalte ein.

Kann mir jemand sagen, wieso er die eingetragenen Sachen nicht einfügt?

Mit freundlichen Grüßen,

Metalphreek

  1. Kann mir jemand sagen, wieso er die eingetragenen Sachen nicht einfügt?

    bist du sicher, dass das post-array befüllt ist?
    var_dump($_POST);

    im übrigen ist das von dir gepostete script potentiell gefährlich

    1. Kann mir jemand sagen, wieso er die eingetragenen Sachen nicht einfügt?

      bist du sicher, dass das post-array befüllt ist?
      var_dump($_POST);

      im übrigen ist das von dir gepostete script potentiell gefährlich

      über var_dump($_POST); wird mir alles korrekt ausgegeben. Und wieso ist es potentiell gefährlich?

      1. wie siehts aus, wenn du dir $sql ausgeben lässt?

        über var_dump($_POST); wird mir alles korrekt ausgegeben. Und wieso ist es potentiell gefährlich?

        wie fox mulder immer sagt: trust no one

        1. wie siehts aus, wenn du dir $sql ausgeben lässt?

          über var_dump($_POST); wird mir alles korrekt ausgegeben. Und wieso ist es potentiell gefährlich?

          wie fox mulder immer sagt: trust no one

          Das mit der Sicherheit kommt noch, aber erstmal will ich, dass es funktioniert.

          echo $sql; liefert:

          UPDATE user SET user_vorname = 'test', user_nachname = 'test', user_straße = 'test', user_plz = '1234', user_ort = 'test', user_geb = 'test', user_sternzeichen = 'test', user_geschlecht = 'test' WHERE user_id = 1

          soweit ja in ordnung. kopiere ich diese SQL-Anweisung in PHPMyAdmin funktionierts einwandfrei. Jedoch wirds nicht über die PHP-Datei eingefügt.

          PS: es steht überall test aus Sicherheitszwecken, normalerweise stehen da meine Daten.

          1. Hi,

            echo $sql; liefert:

            [...]

            soweit ja in ordnung.

            hm, das sehe ich nur bedingt so.

            kopiere ich diese SQL-Anweisung in PHPMyAdmin funktionierts einwandfrei. Jedoch wirds nicht über die PHP-Datei eingefügt.

            Funktioniert es, wenn Du die Straße mal testweise weglässt?

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi,

              echo $sql; liefert:
              [...]
              soweit ja in ordnung.

              hm, das sehe ich nur bedingt so.

              kopiere ich diese SQL-Anweisung in PHPMyAdmin funktionierts einwandfrei. Jedoch wirds nicht über die PHP-Datei eingefügt.

              Funktioniert es, wenn Du die Straße mal testweise weglässt?

              Cheatah

              Wenn ich Straße weglasse passiert genau dasselbe =/

              1. Hi!

                Wenn ich Straße weglasse passiert genau dasselbe =/

                Wenn Du die Fullquotes lassen könntest, ersparte es mir auch den unnötigen Abrieb meines Mousewheels - auf ein Jahr gesehen kommen da schon ein paar km zusammen..

                off:PP

                --
                "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
          2. Hallo,

            Das mit der Sicherheit kommt noch, aber erstmal will ich, dass es funktioniert.

            es funktioniert nicht, wenn ein user zum Beispiel O'Brien heißt.
            Korrigiere es gleich.

            echo $sql; liefert:

            UPDATE user SET user_vorname = 'test', user_nachname = 'test', user_straße = 'test', user_plz = '1234', user_ort = 'test', user_geb = 'test', user_sternzeichen = 'test', user_geschlecht = 'test' WHERE user_id = 1

            soweit ja in ordnung. kopiere ich diese SQL-Anweisung in PHPMyAdmin funktionierts einwandfrei. Jedoch wirds nicht über die PHP-Datei eingefügt.

            PS: es steht überall test aus Sicherheitszwecken, normalerweise stehen da meine Daten.

            Sorry, erzeugen genau diese Daten die NULL-Einträge?
            Wenn es andere Daten sind, die Du eingegeben hast, dann hilft uns das hier herzlich wenig. Poste genau das, was

            echo $sql;

            liefert und keine editierte Version davon.

            Freundliche Grüße

            Vinzenz

            1. Hallo,

              Das mit der Sicherheit kommt noch, aber erstmal will ich, dass es funktioniert.

              es funktioniert nicht, wenn ein user zum Beispiel O'Brien heißt.
              Korrigiere es gleich.

              echo $sql; liefert:

              UPDATE user SET user_vorname = 'test', user_nachname = 'test', user_straße = 'test', user_plz = '1234', user_ort = 'test', user_geb = 'test', user_sternzeichen = 'test', user_geschlecht = 'test' WHERE user_id = 1

              soweit ja in ordnung. kopiere ich diese SQL-Anweisung in PHPMyAdmin funktionierts einwandfrei. Jedoch wirds nicht über die PHP-Datei eingefügt.

              PS: es steht überall test aus Sicherheitszwecken, normalerweise stehen da meine Daten.

              Sorry, erzeugen genau diese Daten die NULL-Einträge?
              Wenn es andere Daten sind, die Du eingegeben hast, dann hilft uns das hier herzlich wenig. Poste genau das, was

              echo $sql;

              liefert und keine editierte Version davon.

              Freundliche Grüße

              Vinzenz

              UPDATE user SET user_vorname = 'Sören', user_nachname = 'Seidack', user_straße = 'Wilhelm-Volkmer-Weg 7', user_plz = '27476', user_ort = 'Cuxhaven', user_geb = '1987-08-26', user_sternzeichen = 'Jungfrau', user_geschlecht = 'Männlich' WHERE user_id = 1

  2. Hi,

    Lasse ich mir aber die $sql oder die einzelnen Variablen ($_POST['vorname'], $_POST['nachname'], usw.) anzeigen, stimmt alles.

    und wie sieht es aus, wenn Du Dir das Statement ausgeben lässt?

    Kann mir jemand sagen, wieso er die eingetragenen Sachen nicht einfügt?

    Vielleicht weil jemand als Vornamen "foo'; DROP TABLE user;" o.ä. eingegeben hat.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. echo $begrüßung;

      Kann mir jemand sagen, wieso er die eingetragenen Sachen nicht einfügt?
      Vielleicht weil jemand als Vornamen "foo'; DROP TABLE user;" o.ä. eingegeben hat.

      Wenn du schon mit Beispielen kommst, dann mit solchen, ...</otto> die funktionieren. Multi-Statements werden von MySQL nicht ausgeführt, wenn sie nicht explizit beauftragt wurden.

      echo "$verabschiedung $name";

  3. Hello,

    dann versuche ich mich auch nochmal, die Anmerkungen bzgl. Sicherheit solltest du in jedem Fall ernst nehmen.

    WHERE user_id = ".$_GET['id']."";

    Warum kommt eigentlich über GET eine ID, wenn die Daten über POST kommen? Gibt es die ID wirklich in der Datenbank?

    mysql_query($sql);

    Ist das alles? Sicher, dass die Verbindung zur Datenbank steht? Mal mysql_error konsultiert?

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    I will never understand why Germans feel the need to kill trees  --  Arbeitskollege aus UK zum Thema ob eine Dokumentation elektronisch oder auf Papier ausgeliefert wird
    1. Hello,

      dann versuche ich mich auch nochmal, die Anmerkungen bzgl. Sicherheit solltest du in jedem Fall ernst nehmen.

      WHERE user_id = ".$_GET['id']."";
      Warum kommt eigentlich über GET eine ID, wenn die Daten über POST kommen? Gibt es die ID wirklich in der Datenbank?

      mysql_query($sql);
      Ist das alles? Sicher, dass die Verbindung zur Datenbank steht? Mal mysql_error konsultiert?

      MfG
      Rouven

      Die hier is ja nur das grundgerüst, normalerweise wird noch eine ID übermittelt. Und ja, die verbindung zur mysql-datenbank steht. deswegen bin ich ja auch so am verzweifeln.

      1. Die hier is ja nur das grundgerüst, normalerweise wird noch eine ID übermittelt.

        Und woher hat die jetzt im Moment dein Script? Angeblich steht da "1" drin, was aber, nach deinem gespoteten Code unmöglich ist.
        Also irgendwas erzählst du uns nicht, was aber zur Lösung nötig ist.