tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
371
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    rohland70 Tutorials.de Gastzugang
    Hallo Leute,

    seit einiger Zeit schlage ich mich nun schon mit folgendem Problem herum:

    Es wird ein Eintrag mittels INSERT in eine Datenbanktabelle geschrieben.

    mysql_query("INSERT INTO tvn_termine (changed,date,header,details,location) VALUES (".mktime().",".$date.",'$header','$details','$location')");

    Der gesamte String inkl. Variablen sieht so aus:
    INSERT INTO tvn_termine (changed,date,header,details,location) VALUES (1113157751,1113084000,'hugo','balder','egon')


    Wenn jetzt versucht wird, den Eintrag zu ändern, wird das Feld date auf -1 gesetzt und alle anderen Felder sind leer.

    mysql_query("UPDATE tvn_termine SET changed=".mktime().",date=".$date.",header='$header',details='$details',location='$location' WHERE ID=$ID");

    Der gesamte String inkl. Variablen sieht so aus:
    UPDATE tvn_termine SET changed=1113158011,date=1113084000,header='hugo',details='balder',location='egon' WHERE ID=436

    Komischerweise funktioniert das Update beim wiederholten Versuch korrekt. Auch weitere Updates funktionieren dann tadellos.

    Wichtig: Eben hab' ich festgestellt, dass dies nur beim Firefox-Browser geschieht, nicht beim Internet Explorer. Könnte es sein, dass dies am FORM-Tag liegt?

    -> <form name="edit" action="termine.php?action=save&ID='.$ID.'" method="post">

    Danke für die Hilfe!

    Roland
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    GET-Parameter als action einer POST-Form würde ich vermeiden!
    Es kann sein, dass auch einige Browser damit Probleme haben, aber ich habe auch schon Webserver gesehen, die damit nicht klar kommen. Baue die Parameter lieber als hidden-inputs ein.

    Gruß hpvw
     

  3. #3
    rohland70 Tutorials.de Gastzugang
    Hallo hpvw,

    nicht zu fassen aber mit der Änderung auf POST, wie Du sie vorgeschlagen hast, funktioniert die Sache problemlos.

    Offensichtlich haben einige Browser (u.a. Firefox) tatsächlich damit Probleme. Ist das ein Bug oder liegt/lag der Fehler bei mir?

    Vielen Dank für die Hilfe und einen schönen Tag noch...

    Gruß

    Roland
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    action muss eine URI sein. Da ein Query (die Parameter hinter dem Fragezeichen) Teil einer URI ist, sollte dies eigentlich zulässig sein, ebenso, wie mailto, ftp, gopher oder telnet. Allerdings wird der Sinn eines HTML-Formulars immer fragwürdiger und vor allem, was die Browser mit dieser Angabe machen unvorhersehbarer.

    Ich hatte bisher noch nicht explizit mit dem Firefox Probleme, sondern mit dem Webserver Xitami, während Apache immer anstandslos solche Strukturen akzeptiert hat.
    Du solltest jedoch darauf achten, dass Du auf die URI-Parameter mit dem superglobalen Array $_GET zugreifst und auf die Formulardaten mit $_POST. Vielleicht testest Du das nochmal, um Gewissheit zu haben.

    Gruß hpvw
     

Ähnliche Themen

  1. Datenbank wird beim Aufrufen geleert
    Von Grorkef im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 22.02.10, 23:08
  2. Antworten: 6
    Letzter Beitrag: 07.02.08, 10:39
  3. update Datensatz funktioniert nicht...
    Von mad2092 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 02.11.07, 17:01
  4. INSERT OR UPDATE - Wie Datensatz überschrieben?
    Von isowit im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 23.06.06, 23:21
  5. Datensatz update - Newbie
    Von Tekworian im Forum PHP
    Antworten: 1
    Letzter Beitrag: 14.10.04, 08:55