Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] update ... where id=$id wird nicht korrekt ausgelesen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] update ... where id=$id wird nicht korrekt ausgelesen

    hallo zusammen

    das folgende skript hat bis jetzt funktioniert. nun musste ich es auf einen neuen server transferieren und dort läuft das update nicht mehr korrekt.

    und zwar liest es nicht mehr die ausgewählte id aus, sondern nimmt immer die id 0.

    kann mir jemand weiterhelfen?
    vielen dank und liebe grüsse

    PHP-Code:
    <?
        $id=$_POST['id'];
        $aktiv=$_POST['aktiv'];
        $startseite=$_POST['startseite'];
        $bild=$_FILES['bild']['name'];
        $bild_typ = $_FILES['bild']['type'];
        $bild_groesse = $_FILES['bild']['size'];
        $alternativtext=$_POST['alternativtext'];
        $bildtitel=$_POST['bildtitel'];
        $titel=$_POST['titel'];
        $text=$_POST['text'];
        $userfile=$_FILES['userfile']['name'];
        $userfile2=$_FILES['userfile2']['name'];
        $userfile3=$_FILES['userfile3']['name'];
        $userfile4=$_FILES['userfile4']['name'];
        
        
    //************ Eintrag ändern ***************
    if ($operation == "aendern")  {
      $sql = "SELECT * FROM fachartikel WHERE id = '$id'";
      $result = mysqli_query($link, $sql) or die(mysqli_error());
      $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
      }
      

    //*********** Eintrag aktualisieren **************
    if ($operation == "aktualisieren")  {
      $sql = "UPDATE fachartikel SET titel='$titel',text='$text',geaendert=NOW() WHERE id = '$id'";
      if (mysqli_query($link, $sql)) {
       echo '<p class="fehler">Das Ändern hat funktioniert.</p>';}
       else {
              echo '<p class="fehler">Das Ändern hat nicht funktioniert.</p>';
               }
            }


    if ($operation == "aendern")  { ?>

    <table width="800px">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']. "?operation=aktualisieren&id="$row['id']; ?>">

        <tr><td colspan="2" width="100%" valign="middle"><h3>Fachartikel-Eintrag ändern:</h3></td></tr>
        <tr><td width="20%"><label for="titel">Titel:</label></td>
            <td width="80%"><input type="text" id="titel" name="titel" size="100" value="<? echo $row['titel']; ?>"/></td></tr>
        <tr><td width="20%" valign="top"><label for="textarea">Text:</label>
              <td width="80%"><textarea class="ckeditor" id="config" name="text"  cols="100" rows="10"/><? echo $row['text']; ?></textarea><script>CKEDITOR.replace( 'config');</script></td></tr>
         <tr><td colspan="2" width="100%"><input type="submit" name="Abschicken" value="&Auml;ndern"></td></tr>
    </form>
    <form name="abbrechen" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
         <tr><td colspan="2" width="100%"><input type="submit" name="Submit" value="Abbrechen"></td></tr>
    </form>
    </table>
    <?


    ?>

    <!-- Tabelle mit allen Einträgen -->
    <h3>Alle Fachartikel-Einträge</h3>
    <table width="100%" border="0" cellspacing="0">
      <tr> 
        <td valign="top">    
          <table cellpadding="5" width="100%" border="0" cellspacing="1">
            <tr class="tr"> 
              <td valign="top">&nbsp;</td>
              <td valign="top">ID</td>
              <td valign="top">Bild</td>
              <td valign="top">Alternativtext</td>
              <td valign="top">Bildtitel</td>
              <td valign="top">Titel</td>
              <td valign="top">Text</td>
              <td valign="top">PDF 1</td>
              <td valign="top">PDF 2</td>
              <td valign="top">PDF 3</td>
              <td valign="top">PDF 4</td>
              <td valign="top">Erstellt</td>
              <td valign="top">Ge&auml;ndert</td>
            </tr>
    <?
    //Die einzelnen Fachartikel werden je als Tabellenzeile dargestellt 
    $row_fachartikel = mysqli_num_rows($result);
    for ($i = 0; $i < $row_fachartikel; $i++){
        $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
        
      //Aktiv-Status ermitteln
      if ($row['aktiv'] == 0)  {$status_aktiv = "aktiv-aktivieren";}  else  {$status_aktiv = "aktiv-deaktivieren";}
      
      //Startseiten-Status ermitteln
      if ($row['startseite'] == 0)  {$status_startseite = "startseite-aktivieren";}  else  {$status_startseite = "startseite-deaktivieren";}

    ?>     
          <tr bgcolor="#FFFFFF"> 
              <td valign="top" class="tr"> 
                <p><a href="<? echo $_SERVER['PHP_SELF']?>?operation=<? echo $status_aktiv; ?>&id=<? echo $row['id']; ?>"><? echo $status_aktiv; ?></a><br><br />
                  <a href="<? echo $_SERVER['PHP_SELF']?>?operation=<? echo $status_startseite; ?>&id=<? echo $row['id']; ?>"><? echo $status_startseite; ?></a><br><br />
                  <a href="<? echo $_SERVER['PHP_SELF']?>?operation=aendern&id=<? echo $row['id']; ?>">&auml;ndern</a><br><br />
                  <a href="<? echo $_SERVER['PHP_SELF']?>?operation=aendernbild&id=<? echo $row['id']; ?>">&auml;ndern Bild Startseite</a><br><br>
                   <a href="<? echo $_SERVER['PHP_SELF']?>?operation=aendernuserfile&id=<? echo $row['id']; ?>">&auml;ndern PDF 1</a><br><br>
                   <a href="<? echo $_SERVER['PHP_SELF']?>?operation=aendernuserfile2&id=<? echo $row['id']; ?>">&auml;ndern PDF 2</a><br><br>
                   <a href="<? echo $_SERVER['PHP_SELF']?>?operation=aendernuserfile3&id=<? echo $row['id']; ?>">&auml;ndern PDF 3</a><br><br>
                   <a href="<? echo $_SERVER['PHP_SELF']?>?operation=aendernuserfile4&id=<? echo $row['id']; ?>">&auml;ndern PDF 4</a><br><br>
                  <a href="<? echo $_SERVER['PHP_SELF']?>?operation=evloeschen&id=<? echo $row['id']; ?>">l&ouml;schen</a> 
                </p>
              </td>
              <td valign="top" class="td"><p><? echo $row['id']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['bild']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['alternativtext']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['bildtitel']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['titel']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['text']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['userfile']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['userfile2']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['userfile3']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['userfile4']; ?></p></td>
              <td valign="top" class="td"><p><? echo $row['erstellt']; ?></p></td>
              <td valign="top" class="td"><p align="left"><? echo $row['geaendert']; ?></p></td>
            </tr>
            <?
      next($row);
    }

    ?>
          </table>
        </td>
      </tr>
    </table>


    <?
    //datenbankverbindung schliessen
     mysqli_close($link);
    ?>

  • #2
    Hi,

    wo kommt $operation her (sehe die Übergabe des GET Parameters an die Variable nicht)? Einfach mal $id so ausgeben lassen? Warum schreibst du nicht eher so:

    PHP-Code:
    $sql "SELECT * FROM fachartikel WHERE id = '".$id."'"
    SQL Injection solltest du dir mal anschauen!

    Das ist überflüssig und kannst du weglassen: <? echo $_SERVER['PHP_SELF']?>

    mfg Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      $id=$_POST['id'];
      Tja, wo nichts ist, kann man auch nichts abgreifen.

      <form method="post" action="<?php echo $_SERVER['PHP_SELF']. "?operation=aktualisieren&id=". $row['id']; ?>">
      Vor allem nicht, wenn du die ID als GET Parameter übergibst und aus POST einlesen willst.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Hi, danke dir. die $operation wird übergeben - habs nicht in das mitgeschickte skript kopiert - sorry!
        PHP-Code:
        $sql "SELECT * FROM fachartikel WHERE id = '".$id."'"
        - hat leider nicht funktioniert.
        und merci für den hinweis <? echo $_SERVER ['PHP_SELF']?> - diese werde ich rauslöschen.
        mfg berna

        Kommentar


        • #5
          Zitat von lstegelitz Beitrag anzeigen
          Tja, wo nichts ist, kann man auch nichts abgreifen.


          Vor allem nicht, wenn du die ID als GET Parameter übergibst und aus POST einlesen willst.
          danke, aber ich verstehe nicht, wieso hier nichts sein soll???
          ich habe alle meine variablen so gesetzt! habe das auch überall so gesehen. und es funktioniert ja auch - ausser bei der id nicht.

          und du hast natürlich recht, GET ist wohl korrekt - aber auch das funktioniert nicht...
          gruss!

          Kommentar


          • #6
            Zitat von berna8 Beitrag anzeigen
            danke, aber ich verstehe nicht, wieso hier nichts sein soll???
            ich habe alle meine variablen so gesetzt! habe das auch überall so gesehen. und es funktioniert ja auch - ausser bei der id nicht.

            und du hast natürlich recht, GET ist wohl korrekt - aber auch das funktioniert nicht...
            gruss!
            hi, entschuldige! hab was falsch gemacht - es funktioniert jetzt mit GET!!
            danke dir bestens. gruss berna

            Kommentar


            • #7
              Du greifst gleich am Anfang deines Script auf einen Haufen POST Variablen zu, ohne zu überprüfen ob es überhaupt einen Form-Submit gegeben hat.
              Ruft man das Script zum ersten mal auf, hagelt es Notices...
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Zitat von lstegelitz Beitrag anzeigen
                Du greifst gleich am Anfang deines Script auf einen Haufen POST Variablen zu, ohne zu überprüfen ob es überhaupt einen Form-Submit gegeben hat.
                Ruft man das Script zum ersten mal auf, hagelt es Notices...
                Ach, dafür schaltet man doch extra display_errors auf 0
                Zitat von derwunner
                "Ein FISI ist auf gut-deutsch der Netzwerker. Das heißt Du gehst rauß zum Kunden oder auf die Straße und verlegst Leitungen" - derwunner 2015

                Kommentar

                Lädt...
                X