DB aktualisieren mit if(isset)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • DB aktualisieren mit if(isset)

    tag allerseits

    ich habe ein formular um daten zu verändern...möchte ich sie jedoch aktualisieren bzw. drücke ich den aktualisieren-button werden die daten nicht geändert und eine leere seite erscheint.
    der button hat die value=aktualisieren. nachdem das update durchgeführt wurde sollte der soeben geänderte datensatz wieder im selben formular angezeigt werden.

    Quellcode

    1. if (isset ($aktualisieren)) {
    2. $sql = "UPDATE server SET server_name = '$server_name', server_prozessor = '$server_prozessor', server_ram = '$server_ram', server_hdd = '$server_hdd', server_lieferung = '$server_lieferung', server_garantie = '$server_garantie', server_zweck = '$server_zweck', server_bemerkung = '$server_bemerkung', server_ip = '$server_ip', server_sn = '$server_sn'
    3. WHERE server_id = '$id'";
    4. $result = mysql_query($sql);
    5. echo "<form name=server_form method=post action=$PHP_SELF?id=$id>";
    6. }


    habe jeweils vor und nach dem befehl noch eine select anweisung
    --&gt;Alles wird gut&lt;--
  • du solltest dringend an deinem "style" arbeiten
    lange wirst du so kein php mehr scripten können

    in php4.3 wurde irgendwann register_globals auf off gesetzt
    auf post variablen kannst du seitdem nur noch mit $_POST['name'] zugreifen

    hier mal ein sauberer code

    Quellcode

    1. if (isset ($_POST['aktualisieren'])) {
    2. $sql = "UPDATE server SET
    3. server_name = '$_POST[server_name]',
    4. server_prozessor = '$_POST[server_prozessor]',
    5. server_ram = '$_POST[server_ram]',
    6. server_hdd = '$_POST[server_hdd]',
    7. server_lieferung = '$_POST[server_lieferung]',
    8. server_garantie = '$_POST[server_garantie]',
    9. server_zweck = '$_POST[server_zweck]',
    10. server_bemerkung = '$_POST[server_bemerkung]',
    11. server_ip = '$_POST[server_ip]',
    12. server_sn = '$_POST[server_sn]'
    13. WHERE server_id = '$_POST[id]' ";
    14. $result = mysql_query($sql);
    15. echo '<form name="server_form" method="post" action="'. $_SERVER['PHP_SELF']. '?id=' .$id. '">';
    16. }
    Alles anzeigen


    Syntaxfehler sind zumindest keine drinne
    der fehler muss woanders liegen
  • "d0nUt" schrieb:

    du solltest dringend an deinem "style" arbeiten
    lange wirst du so kein php mehr scripten können

    in php4.3 wurde irgendwann register_globals auf off gesetzt
    auf post variablen kannst du seitdem nur noch mit $_POST['name'] zugreifen

    hier mal ein sauberer code

    Quellcode

    1. if (isset ($_POST['aktualisieren'])) {
    2. $sql = "UPDATE server SET
    3. server_name = '$_POST[server_name]',
    4. server_prozessor = '$_POST[server_prozessor]',
    5. server_ram = '$_POST[server_ram]',
    6. server_hdd = '$_POST[server_hdd]',
    7. server_lieferung = '$_POST[server_lieferung]',
    8. server_garantie = '$_POST[server_garantie]',
    9. server_zweck = '$_POST[server_zweck]',
    10. server_bemerkung = '$_POST[server_bemerkung]',
    11. server_ip = '$_POST[server_ip]',
    12. server_sn = '$_POST[server_sn]'
    13. WHERE server_id = '$_POST[id]' ";
    14. $result = mysql_query($sql);
    15. echo '<form name="server_form" method="post" action="'. $_SERVER['PHP_SELF']. '?id=' .$id. '">';
    16. }
    Alles anzeigen


    Syntaxfehler sind zumindest keine drinne
    der fehler muss woanders liegen


    Nix für Ungut d0nUt, aber so sauber ist Dein Code auch nicht!

    Wenn wir schon eine Lektion in sauberen PHP Code geben, dann sollte da auf jeden Fall jede POST-Variable im SQL-Statement mit 'mysql_escape_string' escaped werden, sonst sind SQL-Injections möglich!

    Ist zwar innerhalb des UPDATE-Statements nicht ganz so wild, aber wenn ich die Variable $_POST[id] manipuliere kann ich weitere SQL Befehle ausführen!

    70abc