Einträge updaten klappt nicht!?(PHP+MySQL)

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

  • Einträge updaten klappt nicht!?(PHP+MySQL)

    Hi,

    also ich bin jetzt schon fast fertig mit meinem ersten Gästebuch mit adminfunktion nur leider häng ich jetzt bei der letzten Hürde fest :-(.
    Und zwar das Updaten des Beitrags klappt nicht, ich kann aber kein Fehler endtecken:

    das Gästebuch (Adminbereich) ist folgendermaßen aufgebaut:

    gaestebuch2.php = lässt die Beiträge mit ID anzeigen und versendet die ID über Form ($id) um den zu editierenden Beitrag dann herauszufiltern.
    http://members.tripod.de/thomasreichelt/gaestebuch2.php

    wenn man den submit Button auf gaestebuch2.php drückt schickt er den Wert(id)=($id) an eintrag2.php bei der mein Fehler liegt...hier der Quellcode:

    Fehlerbeschreibung:
    Er ignoriert den Header also die Weiterleitung einfach und wechselt dann auf eine seite(ERROR 404 super...) ist also mit der Überprüfung der Daten was nicht ok oder?!

    Danke schon mal für die Hilfe

    Grüße Thomas

    <?php
    $DBHost = "localhost";
    $DBName = "";
    $DBUser = "";
    $DBPasswd = "";


    // Verbindug zu DB-Server herstellen
    mysql_connect($DBHost, $DBUser, $DBPasswd)
    OR die("Konnte DB-Server nicht erreichen");
    mysql_select_db($DBName);

    // Hier soll er mal den datensatz, sprich den eintrag + Name jeweil in eine Varibale hauen
    // damit ich sie später unten in das Formluarfeld als Value übergebn kann...

    if ($submit){
    // Der Submit - Button wurde gedrückt
    // -> die Werte müssen überprüft
    // und bei Gültigkeit in die DB eingefügt werden

    // wir gehen von der Gültigkeit der Daten aus
    $DatenOK = 1;

    // es gab noch keine Fehlermeldung
    $error = "";

    if ($eintrag == ""){
    // es wurde kein Komementar eingegeben
    $DatenOK = 0;
    $error .= "Text vergessen?";
    $error .= " Sinn, oder?<br>\n";
    }

    if ($DatenOK){
    // Daten waren OK -> also in DB eintragen
    mysql_query("update meldung set eintrag = '$update' where id = '$id'");
    echo mysql_error();

    // Alles eingetragen -> zurück zur Übersicht
    header('http://members.tripod.de/thomasreichelt/gaestebuch2.php');
    // und fertig...
    die();
    }

    }
    ?>

    <html>
    <head>
    <title>Neuer Eintrag in unser GB</title>
    </head>
    <body bgcolor="#E8E8FF">
    <?php

    $res = mysql_query("select datum, name, eintrag
    from meldung where id = '$id'
    order by datum desc");
    echo mysql_error();

    $id = htmlentities(addslashes(chop($id)));


    printf("<h2>Beitrag Nummer: $id</h2>");


    while ($row = mysql_fetch_array($res)){

    echo "<table align=\"center\" border=\"0\" width=\"90%\">\n";

    printf("<form action=\"<?php echo $PHP_SELF; ?>\" method=\"GET\"><h4>Name:</h4>
    <br><p align=\"center\"><input type=text name=name value=\"%s\"></p>\n",
    htmlentities($row["name"]));

    printf("<h5 align=\"center\">News vom %s</h5>\n",
    $row["datum"]);

    printf("<h4>Text:</h4><p align=\"center\"><textarea rows=\"10\" cols=\"50\"
    wrap=\"virtual\" name=\"eintrag\">%s</textarea>\n",
    nl2br(htmlentities($row["eintrag"])));

    $update = nl2br(htmlentities($row["eintrag"]));
    printf("$update");
    echo "</table>\n";

    }

    ?>
    <br>
    <p align="Center"><input type="submit" name="submit" value="edit"></p></form>
    <br>


    <br>
    <p align="Center"><a href="../gaestebuch2.php"><img src="../back_post_f2.gif" border="0"></a></p>
    </body>
    </html>

  • #2
    klar ....

    schau dir mal den quellcode an wenn du ein beitrag editierst....
    <form action="<?php echo /thomasreichelt/newsposter/eintrag2.php; ?>" method="GET">
    da sollte doch schon eher heissen:
    <form action="/thomasreichelt/newsposter/eintrag2.php" method="GET">


    PS ich würde ein formular wann immer möglich mit "post" senden.
    Nicht Tatsachen,
    sondern Meinungen über Tatsachen
    bestimmen das Handeln der Menschen.
    (Epiktet (50-138 n.Chr.)

    Kommentar


    • #3
      ach du Schei**se....da is was dran sorry das ich das übersehen...sorry.

      Das mit dem GET und Post ist mir auch schon aufgefallen, denke werd das Script noch überarbeiten und alles mit Post machen...

      Danke werds jetzt gleich mal ausprobieren ;-)!

      Kommentar


      • #4
        und gewöhn dir vielleicht gleich an, die Variablen richtig zu übernehmen:

        $HTTP_POST_VARS["Variable"] bis 4.10 oder 4.12 ??
        $_POST["Variable"] ab (siehe oben)

        gruss

        Kommentar


        • #5
          irgendwie funzt das nicht so richtig jetzt wechselt er zwar wieder zu den Beiträgen aber geupdated hat er leider nix...hab jetzt ein ziemliches "KuddelMuddel" irgendwie drin...hoffe mal das das noch einigermaßen richtig ist?!

          <?php
          $DBHost = "localhost";
          $DBName = "";
          $DBUser = "";
          $DBPasswd = "";


          // Verbindug zu DB-Server herstellen
          mysql_connect($DBHost, $DBUser, $DBPasswd)
          OR die("Konnte DB-Server nicht erreichen");
          mysql_select_db($DBName);

          // Hier soll er mal den datensatz, sprich den eintrag + Name jeweil in eine Varibale hauen
          // damit ich sie später unten in das Formluarfeld als Value übergebn kann...

          if ($submit){
          // Der Submit - Button wurde gedrückt
          // -> die Werte müssen überprüft
          // und bei Gültigkeit in die DB eingefügt werden

          // wir gehen von der Gültigkeit der Daten aus
          $DatenOK = 1;

          // es gab noch keine Fehlermeldung
          $error = "";

          if ($eintrag == ""){
          // es wurde kein Komementar eingegeben
          $DatenOK = 0;
          $error .= "Text vergessen?";
          $error .= " Sinn, oder?<br>\n";
          }

          if ($DatenOK){
          // Daten waren OK -> also in DB eintragen
          mysql_query("update meldung set eintrag = '$update' where id = '$id'");
          echo mysql_error();

          // Alles eingetragen -> zurück zur Übersicht
          header('http://members.tripod.de/thomasreichelt/gaestebuch.php');
          // und fertig...
          die();
          }

          }
          ?>

          <html>
          <head>
          <title>Neuer Eintrag in unser GB</title>
          </head>
          <body bgcolor="#E8E8FF">
          <?php

          $res = mysql_query("select datum, name, eintrag
          from meldung where id = '$id'
          order by datum desc");
          echo mysql_error();

          $id = htmlentities(addslashes(chop($id)));


          printf("<h2>Beitrag Nummer: $id</h2>");


          while ($row = mysql_fetch_array($res)){

          echo "<table align=\"center\" border=\"0\" width=\"90%\">\n";

          printf("<form action=\"/thomasreichelt/gaestebuch2.php\" method=\"GET\">
          <h4>Name:</h4>
          <br><p align=\"center\"><input type=text name=name value=\"%s\"></p>\n",
          htmlentities($row["name"]));

          printf("<h5 align=\"center\">News vom %s</h5>\n",
          $row["datum"]);

          printf("<h4>Text:</h4><p align=\"center\"><textarea rows=\"10\" cols=\"50\"
          wrap=\"virtual\" name=\"eintrag\">%s</textarea>\n",
          nl2br(htmlentities($row["eintrag"])));

          $update = nl2br(htmlentities($row["eintrag"]));
          echo "</table>\n";

          }

          ?>
          <br>
          <p align="Center"><input type="submit" name="submit" value="edit"></p></form>
          <br>


          <br>
          <p align="Center"><a href="../gaestebuch2.php"><img src="../back_post_f2.gif" border="0"></a></p>
          </body>
          </html>
          Zuletzt geändert von tomtherock; 10.06.2002, 13:15.

          Kommentar


          • #6
            Weis das script den nach dem senden der änderungen die $id noch?

            <input type="hidden" name="id" value="<?php echo $id; ?>">
            Nicht Tatsachen,
            sondern Meinungen über Tatsachen
            bestimmen das Handeln der Menschen.
            (Epiktet (50-138 n.Chr.)

            Kommentar


            • #7
              mhhh da is was dran, aber wie könnte ich das sonst anders lösen?! Bzw. die ID auslesen lassen?!

              Kommentar


              • #8
                du kannst die id in ein kookie speichern....
                oder mit sessions....

                aber in diesem falle, denke ich, wäre dies zu aufwendig....
                Nicht Tatsachen,
                sondern Meinungen über Tatsachen
                bestimmen das Handeln der Menschen.
                (Epiktet (50-138 n.Chr.)

                Kommentar


                • #9
                  und wenn ich einfach die momentane angezeigte ID des Beitrags nochmal auslesen lasse, drüfte er sie beim "senden" noch wissen oder?! Ist an sich zwar dann doppelt gemoppelt aber so holt er sich den Wert wieder aus der Datenbank und nicht aus der Variable ($id)...

                  Kommentar

                  Lädt...
                  X