Update funktioniert nicht

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

  • Update funktioniert nicht

    Habe Probleme mit einem Update. Finde den Fehler nicht, es wird nix geupdatet. Hoffe auf Hilfe.

    PHP-Code:
    <?php
    session_start
    ();
    ?> 

    <html>
    <head>

      <meta http-equiv="Content-Language" content="de">

      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

      <meta name="GENERATOR" content="Microsoft FrontPage 4.0">

      <meta name="ProgId" content="FrontPage.Editor.Document">
      <title>Neue Seite 1</title>


      <link rel="stylesheet" href="http://calvano.bplaced.de/lmain.css">

    </head>


    <body>

    <p align="center" class="head">Futterpläne</p>
    Du kannst jedem deiner Pferde einen eigenen Futterplan erstellen. Dieser hilft den Stallburschen und Pflegern auf Calvano zu
    wissen wie, wann und womit dein Pferd gefüttert wird. Erstellst du keinen
    Futterplan wird das Standartfutter verwendet.
    <br><br>
    Wähle aus von welchem deiner Pferde du den Plan ändern möchtest.


    <br>
    <form action=futterplanerstellen.php method=post>
    <select name=pname>

    <?php
        
    include("db.php");
           include(
    "functions.inc.php");
    $Ergebnisone mysql_query("SELECT  name FROM mitglieder WHERE id = ".$_SESSION["login"]);
    while(
    $row mysql_fetch_object($Ergebnisone))
        {
        
    $besitzername $row->name;
        }
                

    $Ergebnis mysql_query("SELECT * FROM pferd WHERE besitzer = '".$besitzername."'");

                    if (
    mysql_num_rows($Ergebnis) == 0) {
                        echo 
    'Fehler.';
                                                                }

                    else {
                            while(
    $Data mysql_fetch_array($Ergebnis)) {
            
                         echo 
    "
    <option>
    $Data[name]</option>

    "
    ;
    {
    $pname=$_REQUEST['pname'];
    }
        }
    }

    echo 
    mysql_error();

    ?>

    </select>
    <input type=submit name=send value=Auswählen>
    </form>
    <br>

    <?php
        
    include("db.php");
        if(isset(
    $_SESSION["login"])) { // Wenn eingeloggt..

    {
    $pname=$_REQUEST['pname'];
    }

     echo 
    "
    Du hast 
    $pname ausgewählt.

    "
    ;


     
    $pname=$HTTP_POST_VARS['pname'];

            
    refresh($_SESSION["login"]); // refresht
            
    if(isset($_REQUEST["sentt"])) {

                
                
    $aendern = ("UPDATE pferd Set Futterplan = '".strip_tags($_REQUEST["Futterplan"])."' WHERE name='$pname'");
                
    $update mysql_query($aendern);



            }

            
    $abfrage "SELECT * FROM pferd WHERE name = '".$pname."'";
            
    $ergebnis mysql_query($abfrage);
            while(
    $row mysql_fetch_object($ergebnis))

            { 
    // Formular ->
                    
    echo mysql_error();

        
    ?>

    <center>      
    <table border="0" width="300">
      <tr>
        <td><img border="0" src="http://calvano.bplaced.de/bilder/<?= $row->vorschaupic ?>" align="center"></td>
        <td>
    <form action=futterplanerstellen.php method=post enctype="multipart/form-data">
    <textarea name="Futterplan" cols=38 rows=8>
    <?= $row->Futterplan ?>
    </textarea><br>
    <input type=submit name=sentt value=Neu>
    </form>
    </td>
      </tr>
    </table>
    </center>

    <br>
    <br>
    <br>

                Der Futterplan wird automatisch geändert. Einmal klicken genügt.
        <?php
            
            
    include("footer.php");


    }
    }
    echo 
    mysql_error();
    ?>
    Zuletzt geändert von someone94; 11.02.2010, 15:14.

  • #2
    Boah - mal ganz ehrlich - blickst du selbst bei dem Code-Chaos durch?

    Lass dir deine Variable $aendern mal einfach per echo ausgeben.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Kommt folgendes:

      UPDATE pferd Set Futterplan = 'Morgens: Heu (mittlere Portion) blaaablaaahhhh' WHERE name=''

      Der Name wird also gar nicht erst erkannt !?
      Soetwas hatte ich mir schon gedacht, denn gebe ich bei

      PHP-Code:
      $aendern = ("UPDATE pferd Set Futterplan = '".strip_tags($_REQUEST["Futterplan"])."' WHERE name='$pname'");
      $update mysql_query($aendern); 
      Anstatt $pname manuell etwas ein funktioniert das Update sofort.

      Kommentar


      • #4
        Zitat von someone94 Beitrag anzeigen
        Kommt folgendes:

        UPDATE pferd Set Futterplan = 'Morgens: Heu (mittlere Portion) blaaablaaahhhh' WHERE name=''

        Der Name wird also gar nicht erst erkannt !?
        Soetwas hatte ich mir schon gedacht, denn gebe ich bei

        PHP-Code:
        $aendern = ("UPDATE pferd Set Futterplan = '".strip_tags($_REQUEST["Futterplan"])."' WHERE name='$pname'");
        $update mysql_query($aendern); 
        Anstatt $pname manuell etwas ein funktioniert das Update sofort.
        Dann ist $pname offenbar leer.

        Du solltest die Benutzerwerte übrigens mit mysql_real_escape_string() absichern, weil sonst jeder beliebige Benutzer Befehle in der Datenbank ausführen kann (auslesen, verändern, löschen, usw.).

        Dein HTML-Code ist übrigens total veraltet und fehlerhaft, was vermutlich daher rührt, dass er mit dem Schrottprogramm Frontpage erstellt wurde.

        Kommentar


        • #5
          Hallo,

          strip_tags hat in einer SQL-Abfrage nichts zu suchen. Informier dich mal über Kontextwechsel, SQL-Injection und verfolg mal deine Variablen gedanklich im Code. Wenn deren Initialisierung bedingt ist, sollte auch deren Verwendung bedingt sein.

          Gruß,

          Amica
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Ja - und damit wollt ich dich dezent auf folgendes hinweisen:

            $HTTP_POST_VARS ist veraltet: PHP: $_POST - Manual
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Habs geändert / ersetzt.
              Die $pname wird immernoch nicht erkannt. Warum, ist mir aber ein Rätsel. Denn wenn ich $pname 2 Zeilen vor dem Update mit echo ausgebe wird mir das richtige angezeigt.
              Warum ist $pname denn beim updaten leer ... Ich weiß nicht mehr weiter.

              Zum besseren Verständnis:

              Alle Tiere im eigenen Besitz werden angezeigt man kann eines auswählen.

              Dann erscheint das was bei dem Pferd unter "Futterplan" eingetragen ist in einer Textarea und man kanns nach belieben ändern.

              Klickt man aber anschließend auf Ändern wird $pname plötzlich nicht mehr erkannt (im Screen wird Variable aendern ausgegeben)


              Ich hoffe jemand findet den Fehler
              Der code im Moment:
              PHP-Code:
              <?php
              session_start
              ();
              ?> 

              <html>
              <head>

                <meta http-equiv="Content-Language" content="de">

                <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

                <meta name="GENERATOR" content="Microsoft FrontPage 4.0">

                <meta name="ProgId" content="FrontPage.Editor.Document">
                <title>Neue Seite 1</title>


                <link rel="stylesheet" href="http://calvano.bplaced.de/lmain.css">

              </head>


              <body>

              <p align="center" class="head">Futterpläne</p>
              Du kannst jedem deiner Pferde einen eigenen Futterplan erstellen. Dieser hilft den Stallburschen und Pflegern auf Calvano zu
              wissen wie, wann und womit dein Pferd gefüttert wird. Erstellst du keinen
              Futterplan wird das Standartfutter verwendet.
              <br><br>
              Wähle aus von welchem deiner Pferde du den Plan ändern möchtest.


              <br>
              <form action=futterplanerstellen.php method=post>
              <select name=pname>

              <?php
                  
              include("db.php");
                     include(
              "functions.inc.php");
              $Ergebnisone mysql_query("SELECT  name FROM mitglieder WHERE id = ".$_SESSION["login"]);
              while(
              $row mysql_fetch_object($Ergebnisone))
                  {
                  
              $besitzername $row->name;
                  }
                          

              $Ergebnis mysql_query("SELECT * FROM pferd WHERE besitzer = '".$besitzername."'");

                              if (
              mysql_num_rows($Ergebnis) == 0) {
                                  echo 
              'Fehler.';
                                                                          }

                              else {
                                      while(
              $Data mysql_fetch_array($Ergebnis)) {
                      
                                   echo 
              "
              <option>
              $Data[name]</option>

              "
              ;
              {
              $pname=$_REQUEST['pname'];
              }
                  }
              }

              echo 
              mysql_error();

              ?>

              </select>
              <input type=submit name=send value=Auswählen>
              </form>
              <br>

              <?php
                  
              include("db.php");
                  if(isset(
              $_SESSION["login"])) { // Wenn eingeloggt..

              {
              $pname=$_REQUEST['pname'];
              }

               echo 
              "
              Du hast -
              $pname- ausgewählt.

              "
              ;





                      if(isset(
              $_REQUEST["sentt"])) {



                          
                          
              $aendern = ("UPDATE pferd Set Futterplan = '".mysql_real_escape_string($_REQUEST["Futterplan"])."' WHERE name='$pname'");
                          
              $update mysql_query($aendern);

                      }


               echo 
              "
              $aendern

              "
              ;

                      

                      
              $abfrage "SELECT * FROM pferd WHERE name = '".$pname."'";
                      
              $ergebnis mysql_query($abfrage);
                      while(
              $row mysql_fetch_object($ergebnis))

                      { 
              // Formular ->
                              
              echo mysql_error();

                  
              ?>

              <center>      
              <table border="0" width="300">
                <tr>
                  <td><img border="0" src="http://calvano.bplaced.de/bilder/<?= $row->vorschaupic ?>" align="center"></td>
                  <td>
              <form action=futterplanerstellen.php method=post enctype="multipart/form-data">
              <textarea name="Futterplan" cols=38 rows=8>
              <?= $row->Futterplan ?>
              </textarea><br>
              <input type=submit name=sentt value=Erstellen/Ändern>
              </form>
              </td>
                </tr>
              </table>
              </center>

              <br>
              <br>

                          Der Futterplan wird automatisch geändert. Einmal klicken genügt.
                  <?php
                      
                      
              include("footer.php");


              }
              }
              echo 
              mysql_error();
              ?>

              Kommentar


              • #8
                Ehrlich gesagt hab ich nicht allzuviel Lust mir diese morbide Code-Einrückungsorgie genauer durchzusehen und ich denke, dass sich kaum andere hier finden werden, die dazu Lust haben.

                Lass dir mal auch ein var_dump($_REQUEST); ausgeben.
                Zuletzt geändert von Quetschi; 11.02.2010, 16:23.
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  Zitat von someone94 Beitrag anzeigen
                  Ich hoffe jemand findet den Fehler
                  <spass>
                  Fehler gefunden in Zeile 50.
                  Code:
                  047| $Ergebnis = mysql_query("SELECT * FROM pferd WHERE besitzer = '".$besitzername."'");
                  048|
                  049|                 if (mysql_num_rows($Ergebnis) == 0) {
                  050|                     echo '[COLOR="Red"]Fehler.[/COLOR]';
                  051|                                                             }
                  052|

                  </spass>

                  Quetschi hat recht. Solchen Code sieht man sich wirklich nicht gerne an.

                  Gruß,

                  Amica
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar

                  Lädt...
                  X