Daten gelöscht mit Linux/Netscape

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

  • Daten gelöscht mit Linux/Netscape

    Hallo alle zusammen!
    Folgendes Problem bringt mich neben dem heißen Wetter zur Zeit zum schwitzen:
    Ich habe eine MySql Datenbank zur Verwaltung von Kundendaten über unser Intranet aufgebaut. Die Verarbeitung der Daten geschieht über 2 Formulare auf einer php-Seite, wobei das 1. Formular der Änderung bzw. Kenntnisname des jeweiligen Datensatzes dient. Das 2., nahezu identische, Formular ist bist auf den submit button unsichtbar und gibt den Datensatz bis auf eine Nutzerkennung unverändert zurück.

    So weit so gut. Funktioniert wunderbar.

    Jedenfalls solange bis eine Kollegin auf ihrem Linux-Rechner (Browser:Netscape) auf den submit button des 2. Formulares klickt. Der Datensatz wird dann schlicht und ergreifend gelöscht. Dieses Phänomen tritt nur unter Linux auf.
    Weiß jemand Rat oder hat ähnlich merkwürdige Erfahrungen gemacht?
    Kennt jemand einen Schuldigen: Linux? Netscape? Ich?

  • #2
    Wenn über ein Webformular (in einem Browser (auf einem Betriebssystem (bedient von einem Benutzer))) ein Datensatz in einer DB gelöscht werden kann, ist der Programmierer schuld!

    Wenn du den Code des Formulars mal posten könntest ...

    Kommentar


    • #3
      wenn du ein UPDATE in SQL absetzst, ohne die eingegangenen Daten prüfst, könnte u.U. dass alle leer sind und somit der DS quasi weg ist, aber gelöscht, glaube ich nicht, solange du nirgends ein DELETE abgesetzt hast. Wie sieht denn der Code aus? (bitte nur relevanten Teile posten, d.h. z.B. nur SQL-Queries, ...)

      Kommentar


      • #4
        Hier ein Auschnitt aus dem Quellcode:

        PHP-Code:
        if ($submit) {
        $sql "UPDATE inhalt SET gueteklasse='$gueteklasse'.....WHERE id=$edit";
        $result mysql_query($sql,$db);
        echo 
        "<center><h3><br>Daten für die ID ".$edit." wurden bearbeitet/gelesen<br><h2></center>";
        }
        else {
        $sql "SELECT * FROM inhalt WHERE id=$edit";
        $result mysql_query($sql,$db);
        $data mysql_fetch_array($result); 
        Es folgt Formular 1 sichtbar mit action="<? echo $PHP_SELF ?>"
        und Formular 2 unsichtbar ebenso mit action="<? echo $PHP_SELF ?>"

        Kommentar


        • #5
          Auch wenns vielleicht nicht direkt mit dem Fehler zu tun hat, erkläre mir doch bitte nochmal genauer, warum du zwei Formulare brauchst. Zumal das zweite gar nicht sichtbar ist ...?

          Zum Fehler: Der Datensatz wird nicht gelöscht sondern maximal mit leeren Werten überschrieben. Kannst du das in der DB nachvollziehen/prüfen?

          Kommentar


          • #6
            Kurz zu den 2 Formularen:

            Das 1. Formular dient der Berabeitung und Ergänzung des Datensatzes und übergibt u.a. den User gebundenen Bearbeitungsstatus "erledigt". Das 2. Formular läßt den Datensatz (z.B. Bearbeitungsstaus: "noch zu erledigen") unverändert und übergibt nur eine Nutzerkennung (Letzter Benutzer).
            Vielleicht noch etwas umständlich, aber naja, bin halt noch kein php-Profi.

            Der Datensatz ist tatsächlich nicht gelöscht sondern "nur" von allen Inhalten befreit.
            Merkwürdig bleibt, dass dies nur unter Linux/Netscape passiert, was eigentlich völliger Unsinn ist. Entweder sollte es immer funktionieren oder eben nicht.

            Kommentar


            • #7
              Getestet habe ichs noch nicht aber eine mögliche Lösung gefunden.

              Das unsichtbare Formular ist bis auf den submit button und zwei Feldern u.a.
              PHP-Code:
              <input type="hidden" name="nutzerkennung" value="<? echo $_SESSION['user'] ?>">
              mit <style="display:none" > definiert.
              Die hidden Felder werden übergeben. Die mit CSS unsichtbar gemachten Felder nicht.
              Ich werde also alle Felder als hidden definieren und den CSS Style löschen.

              Kommentar


              • #8
                Wenn Du auf Clientseitiger Ebene Zeuch änderst wird das Fehler in der Serverseitigen Programmierung NICHT ausmerzen, maximal übertünchen.

                Du solltest wahrscheibnlich eher serverseitig (PHP) prüfen ob

                1) die übergebenen Daten korrekt sind bevor sich gespeichert werden
                2) ob der Nutzer dazu überhaupt berechtigt ist
                3) (wenn es denn schon 2 Forms gibt) aus welchem die Daten kommen

                und
                4.) mal grundsätzlich überlegen ob Daten, die nicht bearbeitet werden sollen, überhaupt in ein Formular gehören

                nur son Gedanke
                chansel0049
                ----------------------------------------------------
                if you've reached the bottomline - dig further!
                Übersetzer gesucht? http://www.babelport.com

                Kommentar

                Lädt...
                X