php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.10.2005, 11:34  
Gast
 
Beiträge: n/a
Standard 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!
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.10.2005, 21:05  
Benutzer
 
Registriert seit: 17.05.2005
Beiträge: 57
bluebird
bluebird eine Nachricht über ICQ schicken
Standard

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
bluebird ist offline  
Alt 23.10.2005, 22:01  
Erfahrener Benutzer
 
Benutzerbild von JanM
 
Registriert seit: 22.12.2003
Beiträge: 788
PHP-Kenntnisse:
Fortgeschritten
JanM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wozu hast du fragen?
funktionen?
__________________

Statistik
JanM ist offline  
Alt 24.10.2005, 09:20  
Gast
 
Beiträge: n/a
Standard

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?
 
Alt 24.10.2005, 11:37  
Gast
 
Beiträge: n/a
Standard

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...
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
Zip Archiv entpacken und Bilder verkleinern Simon9990 PHP Tipps 2008 5 08.10.2007 00:32
Bilder in HTML-Mails werden willkürlich "verissen" hoffnungsloser PHP-Fortgeschrittene 3 25.04.2007 14:48
bilder zu groß?! lindner PHP Tipps 2006 9 19.10.2006 08:32
Bilder "schützen" PHP Tipps 2006 4 06.03.2006 15:25
Bilder Ordner hochladen? CHRIS PHP Tipps 2005-2 3 30.12.2005 17:20
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
Bilder in Tabellen nixdorf HTML, Usability und Barrierefreiheit 36 09.05.2005 21:15
[Erledigt] Bilder frei positionieren und von Text umfließen lassen. HTML, Usability und Barrierefreiheit 10 24.04.2005 00:05
Bilder nach Namen anzeigen PHP Tipps 2005 11 06.03.2005 15:41
Bilder aus der Datenbank Skazi Datenbanken 2 09.02.2005 13:42
Bilder upload (Massen) PHP Tipps 2005 11 06.01.2005 14:14
1000de bilder einfügen ab schnell..? :-) PHP Tipps 2004 12 11.08.2004 20:42
Bildübersicht alle Bilder im Ordner... PHP Tipps 2004 46 07.08.2004 20:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php bild löschen, yfrog bilder löschen, bild löschen, bild löschen php, php bilder löschen, bilder löschen, bilder löschen php, yfrog bild löschen, picjoke bilder löschen, yfrog bilder, bilder bei yfrog löschen, yfrog löschen, yfrog foto löschen, yfrog fotos löschen, yfrog.com bilder löschen, php bild entfernen, php bild aus verzeichnis löschen, löschen bild, bilder von yfrog löschen, bilder mit php löschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.