Ankündigung

Einklappen
Keine Ankündigung bisher.

Bilder löschen

Einklappen

Neue Werbung 2019

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

  • Bilder löschen

    Hallo zusammen!

    Eins gleich vorweg: Ich hab die Frage schon mal woanders gestellt, aber dort konnte mir keiner weiterhelfen, ich hoffe hier ist das anders.

    Hallo zusammen!

    Ich hab ein Script, mit dem man Bilder hochladen kann.

    Das Scriptermöglicht Folgendes:

    1. Der User kann bis zu 3 Bilder hochladen.
    2. Der User kann die Bilder wieder löschen.
    3. Der User kann bei einem bestehendem Bild ein anderes hochladen.

    Punkt 1 und 2 funktionieren sehr gut.

    Punkt 3 hat einen Haken:
    Es wird zwar ein neues Bild hochgeladen, aber das alte dabei nicht gelöscht!

    --> wenn also ein User ein neues Bild hochlädt, aber schon zuvor eines hochgeladen hat, dann wird der Dateiname des Bildes (wird in MySQL gespeichert) geändert --> somit ist dann auch nicht mehr nachvollziehbar, welchem User das Bild mal gehört hat --> nach einer Weile liegen dann viele nutzlose Bilder rum, die man aussortieren muss, dazu muss man aber erst mal die Daten der User von MySQL auslesen, dann überprüfen, welche Bilder noch in Verwendung sind und die anderen dann löschen --> sehr viel (unsinnige) Arbeit

    --> natürlich könnte ich lauter brave User haben, die alle zuerst auf Bild löschen klicken, und dann erst auf Bild laden, damit keine nutzlosen Bilder bei mir rumliegen, aber das ist wohl doch ein Wunschtraum...

    Was ich brauche ist sowas wie eine Verknüpfung zwischen dem Löschen und dem Hochladen, damit zuerst überprüft wird, ob schon ein Bild existiert, und falls ja, dieses dann gelöscht wird bevor ein neues Hochgeladen wird.

    Kann mir jemad dabei helfen das zu realisieren?

    Mein Code ist folgender:
    PHP-Code:
    <?
        if(isset($_POST['submit_01']))
        {
            $bild = "BILD1";
            $feld = "BILD_ID";
        }
        
        picture($_FILES, $tb_name_03, $id, $bild, $feld);

        $mysql = "SELECT BILD_ID, BILD_ID2, BILD_ID3, NAME2A FROM ".$tb_name_03." WHERE IDENT = ".$id;
        $result = mysql_query($mysql);

        while($row = mysql_fetch_assoc($result))
        {
            if($row['BILD_ID'] == "")
            {
            $bild_01 = "dummy.jpg";
            }
            else $bild_01 = $row['BILD_ID'];

    // Bild 1 löschen
            if(isset($_POST['delete_01']))
            {
                if(!($bild_01 == "dummy.jpg"))
                {
                    unlink("images/user/".$bild_01);

                    $mysql = "UPDATE ".$tb_name_03." SET BILD_ID = '' WHERE IDENT = ".$id;
                    $result = mysql_query($mysql);
                    if($result)
                    {
    ?><script type="text/javascript">
        window.setTimeout('document.getElementById("box_01").style.display="none";', 7000);
    </script><?
                    echo $box_bild_01;
                    }
                    else
                    {
    ?><script type="text/javascript">
        window.setTimeout('document.getElementById("box_01").style.display="none";', 7000);
    </script><?
                    echo $box_bild_02;
                    }
                }
            }
    ?>

    .
    .
    .

                    <tr>
                                    <td colspan="4"><hr />
                                    </td>
                    </tr>
                    <tr>
                                    <td>Bild 1
                                    </td>
                                    <td>Bild 2
                                    </td>
                                    <td>Bild 3
                                    </td>
                    </tr>
                    <tr>
                                    <td><input type="file" name="BILD1" size="20" />
                                    </td>
                                    <td><input type="file" name="BILD2" size="20" />
                                    </td>
                                    <td><input type="file" name="BILD3" size="20" />
                                    </td>
                    </tr>
                    <tr>
                                    <td align="center"><input type="submit" name="submit_01" value="<?= HIGH_LOAD ?>" />
                                    </td>
                                    <td align="center"><input type="submit" name="submit_02" value="<?= HIGH_LOAD ?>" />
                                    </td>
                                    <td align="center"><input type="submit" name="submit_03" value="<?= HIGH_LOAD ?>" />
                                    </td>
                    </tr>
                    <tr>
                                    <td align="center">
                                        <? $aBilddaten = getimagesize("images/user/$bild_01"); ?>
                                        <a href="javascript:large_img('images/user/<?=$bild_01?>','<?= ORIGINAL ?>',<?=$aBilddaten[0]?>,<?=$aBilddaten[1]?>)" target="_self">
                                        [img]images/user/<?=$bild_01?>[/img]" />
                                        </a>
                                    </td>
                                    <td align="center">
                                        <? $aBilddaten = getimagesize("images/user/$bild_02"); ?>
                                        <a href="javascript:large_img('images/user/<?=$bild_02?>','<?= ORIGINAL ?>',<?=$aBilddaten[0]?>,<?=$aBilddaten[1]?>)" target="_self">
                                        [img]images/user/<?=$bild_02?>[/img]" />
                                        </a>
                                    </td>
                                    <td align="center">
                                        <? $aBilddaten = getimagesize("images/user/$bild_03"); ?>
                                        <a href="javascript:large_img('images/user/<?=$bild_03?>','<?= ORIGINAL ?>',<?=$aBilddaten[0]?>,<?=$aBilddaten[1]?>)" target="_self">
                                        [img]images/user/<?=$bild_03?>[/img]" />
                                        </a>
                                    </td>
                    </tr>
                    <tr>
                                    <td align="center"><input type="submit" name="delete_01" value="<?= DELETE_PICTURE ?>" />
                                    </td>
                                    <td align="center"><input type="submit" name="delete_02" value="<?= DELETE_PICTURE ?>" />
                                    </td>
                                    <td align="center"><input type="submit" name="delete_03" value="<?= DELETE_PICTURE ?>" />
                                    </td>
                    </tr>
    .
    .
    .

    <?
    }
    ?>
    Vielen Dank im Vorraus für jede Antwort!

  • #2
    Bild normal hochladen, wenn geglückt, alte Bilddatei//Verweis (wie beim Löschen) entfernen, und den Verweis durch einen auf das neue Bild ersetzen.

    Wo ist das Problem? Wenn's geht, wenn der Nutzer erst das alte Bild löscht, dann mach halt du das für ihn, wenn er's nicht tut - automatisch halt

    Kommentar


    • #3
      wozu hast du fragen?
      funktionen?

      Kommentar


      • #4
        Das Problem ist, dass ich dazu das ganze irgednwie umbauen muss, aber ich weiß nicht genau wie...

        PHP-Code:
        <?
            if(isset($_POST['submit_01']))
            {
        // Bild 1 löschen - wenn schon ein Bild 1 existiert - ANFANG
                if(isset($_POST['delete_01']))
                {
                    if(!($bild_01 == "dummy.jpg"))
                    {
                        unlink("images/user/".$bild_01);

                        $mysql = "UPDATE ".$tb_name_03." SET BILD_ID = '' WHERE IDENT = ".$id;
                        $result = mysql_query($mysql);
                        if($result)
                        {
        ?><script type="text/javascript">
            window.setTimeout('document.getElementById("box_01").style.display="none";', 7000);
        </script><?
                        echo $box_bild_01;
                        }
                        else
                        {
        ?><script type="text/javascript">
            window.setTimeout('document.getElementById("box_01").style.display="none";', 7000);
        </script><?
                        echo $box_bild_02;
                        }
                    }
                }
        // ENDE
        ?>
        --> geht nicht, weil die benötigten Variablen erst hier mit den richtigen Werten gefüllt werden:
        PHP-Code:
        <?
        .
        .
        .
            picture($_FILES, $tb_name_03, $id, $bild, $feld);

            $mysql = "SELECT BILD_ID, BILD_ID2, BILD_ID3, NAME2A FROM ".$tb_name_03." WHERE IDENT = ".$id;
            $result = mysql_query($mysql);


            while($row = mysql_fetch_assoc($result))
            {
                if($row['BILD_ID'] == "")
                {
                $bild_01 = "dummy.jpg";
                }
                else $bild_01 = $row['BILD_ID'];
                
                if($row['BILD_ID2'] == "")
                {
                $bild_02 = "dummy.jpg";
                }
                else $bild_02 = $row['BILD_ID2'];
                
                if($row['BILD_ID3'] == "")
                {
                $bild_03 = "dummy.jpg";
                }
                else $bild_03 = $row['BILD_ID3'];
        .
        .
        .
        ?>
        --> zur besseren Übersicht siehe Post oben

        Frage:
        Wie kann muss ich das umbauen, damit ich beim Hochladen automatisch löschen kann?

        Kommentar


        • #5
          Heute ist echt Montag...

          Natürlich muss das ganze so heißen:
          PHP-Code:
          <?
              if(isset($_POST['submit_01']))
              {
          // Bild 1 löschen - wenn schon ein Bild 1 existiert
                  if(!($bild_01 == "dummy.jpg"))
                  {
                      unlink("images/user/".$bild_01);
                  }
          .
          .
          .
          ?>
          $bild_01 (und $bild_02 und $bild_03) werden dann einfach via get übergeben:
          PHP-Code:
          <?
          <form name="FORMULAR" action="index.php?section=bilder&upload=ja&id=<?=$id?>&bild_01=<?=$bild_01?>&bild_02=<?=$bild_02?>&bild_03=<?=$bild_03?>" method="post" target="_self" enctype="multipart/form-data">
          ?>
          Sorry, aber vorhin war ich glaub ich noch nicht ganz da...

          Kommentar

          Lädt...
          X