Problem / Lösung

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

  • Problem / Lösung

    Ich habe mit folgenden Script ein Problem und benötige eine Lösung.
    Es können Benutzer dieses Scrpts Hintergrundbilder hochladen.

    Nun möchte ich gerne, dass die eingetragenen Benutzer des Script auch automatisch einzelne Bilder aus den angelegten Ordndern ( Ordner anlegen funktioniert nur manuell über ftp-programm soll auch so bleiben)
    löschen können, damit man dieses nicht mit ftp machen muss.

    Hier kommt der code erstmal und über einen Ratschlag - Lösung wie es auszusehen hat wäre ich sehr dankbar...



    <?php

    require("database.php");




    if($_POST[action]=="upload"){

    $uploaddir = '/srv/www/htdocs/web153/html/grafiken/hg/';

    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$_POST[djdir].'/'.$_FILES['userfile']['name'])) {

    // && ($_FILES['userfile']['type']=='.jpg' || $_FILES['userfile']['type']=='.gif')

    chmod ($uploaddir.$_POST[djdir].'/'.$_FILES['userfile']['name'], 0755);

    success($_FILES['userfile']['name'],$_POST[djdir]);

    } else {

    $error = array(

    0=>"Die Datei wurde erfolgreich übertragen",

    1=>"Die maximale Dateigröße von 2MB wurde überschritten! Dateigröße ist Vorgabe des Servers.",

    2=>"Die Datei ist größer als 150KB, bitte eine Datei mit weniger KB hochladen.",

    3=>"Die Datei wurde nur teilweise übertragen. Vorgang bitte wiederholen.",

    4=>"Keine Datei hochgeladen",

    6=>"Temporärer Ordner auf dem Server fehlt."

    );

    echo $error[$_FILES['userfile']['error']];

    }

    }else{



    echo html_header();

    echo'<form name="Auswahl" enctype="multipart/form-data" action="'.$_SERVER[PHP_SELF].'" method="post">

    <input type="hidden" name="action" value="upload">

    <input type="hidden" name="MAX_FILE_SIZE" value="150000">

    <table width="50%" border="1" cellpadding="2" cellspacing="0" bordercolor="#FFFFFF" align="center">

    <tr>

    <td colspan="2" align="center"><h1>Hintergrund hochladen</h1></td>

    </tr>

    <tr>

    <td colspan="2" align="left">

    Hierbei ist zu beachten, das jeder DJ seinen Hg NUR seinem Dj-Namen zuweist,<br>

    der in der DropDown-Box zu finden ist.<br><br>

    Und die Hg\'s dürfen nicht größer als 150KB sein, ich hab mal geschaut<br>

    der größte Hg liegt bei 149KB. Also ich denke mit 150KB solltet ihr hinkommen.<br>

    Bitte achtet darauf das die Dateinamen <b>KEINE</b> Umlaute (ä,ö,ü,ß) beinhalten und

    nach Möglichkeit auch keine Leerzeichen.

    Ach ja und dann ist es nur möglich .jpg-Dateien hochzuladen.<br>

    So das wars von mir ;o)

    Ach nochwas... wenn für einen ganz neuen DJ ein HG hochgeladen werden muss, dann muss vorher via FTP ein Verzeichnis für den DJ angelegt werden.

    Das wars aber wirklich jetzt *g*

    </td>

    </tr>

    <tr>

    <td>Hintergrund auswählen:</td>

    <td><input name="userfile" type="file" value=""></td>

    </tr>';



    $handle=opendir ('../grafiken/hg/');

    echo' <tr>

    <td>Dj-Name:</td>';

    echo '<td><select name="djdir" onChange="Go(this.form.djdir.options[this.form.djdir.options.selectedIndex].value)">';

    echo'<option value="nothing">Bitte auswählen:</option>';

    while ($dirs = readdir ($handle)){

    if($dirs!='.' && $dirs!='..' && substr($dirs, -4, 4)!='.jpg' && substr($dirs, -4, 4)!='.gif'){

    if($_GET[djdir]==$dirs){

    echo'<option selected value="'.$dirs.'">'.$dirs.'</option>';

    }else{

    echo'<option value="'.$dirs.'">'.$dirs.'</option>';

    }

    }

    }

    closedir($handle);

    echo' </select>

    </td>

    </tr>';

    echo' <tr>

    <td><input type="submit" value="Hintergrund hochladen"></td>

    <td><input type="reset" value="Cancel"></td>

    </tr>';



    if(strlen($_GET[djdir])!=0){

    echo'<tr><td colspan="2">

    <table width="100%" bordercolor="#000000" align="center" border="1" cellpadding="2" cellspacing="0">

    <tr>

    <td align="center" colspan="5"><b>Bereits hochgeladene Bilder</b></td>

    </tr>

    <tr>

    <td align="center" colspan="5">Der Link für vorhandene Bilder setzt sich zusammen aus:<br>

    <b>http://www.kc-radio-europa.com/grafiken/hg/'.$_GET[djdir].'/ </b><br>

    und dem Dateinamen der unter den Bildern steht</td>

    </tr>

    ';



    $handle=opendir ('../grafiken/hg/'.$_GET[djdir].'/');

    $r_flag=false;

    $count=0; //Zähler auf 0

    while ($file = readdir ($handle)) {

    if($file != '.' && $file != '..'){ // Dateien ausblenden/ignorieren

    $pic_size = getimagesize('../grafiken/hg/'.$_GET[djdir].'/'.$file);

    $rest = substr($file, 0, -4); //Text unter dem Bild

    if($pic_count==0 && $r_flag==false){

    $pic_count+=1;

    $r_flag==true;

    echo '<tr>';

    echo '<td align="center"><a href="#" onClick="window.open(\'../grafiken/hg/'.$_GET[djdir].'/'.$file.'\', \'Bild_Gross\', \'width='.$pic_size[0].',height='.$pic_size[1].'\')"><img src="../grafiken/hg/'.$_GET[djdir].'/'.$file.'" border="0" width="150" height="113" alt="'.$rest.'"></a><br>'.$file;

    echo'</td>';

    }elseif($pic_count<4){

    $pic_count+=1;

    echo '<td align="center"><a href="#" onClick="window.open(\'../grafiken/hg/'.$_GET[djdir].'/'.$file.'\', \'Bild_Gross\', \'width='.$pic_size[0].',height='.$pic_size[1].'\')"><img src="../grafiken/hg/'.$_GET[djdir].'/'.$file.'" border="0" width="150" height="113" alt="'.$rest.'"></a><br>'.$file;

    echo'</td>';

    }else{

    $pic_count=0;

    $r_flag==false;

    echo '<td align="center"><a href="#" onClick="window.open(\'../grafiken/hg/'.$_GET[djdir].'/'.$file.'\', \'Bild_Gross\', \'width='.$pic_size[0].',height='.$pic_size[1].'\')"><img src="../grafiken/hg/'.$_GET[djdir].'/'.$file.'" border="0" width="150" height="113" alt="'.$rest.'"></a><br>'.$file;

    echo'</td></tr>';

    }

    }

    }

    closedir($handle);

    echo'</table>';

    }/*elseif($_GET[djdir]=="new"){

    echo "test";

    }*/

    echo'</td></tr>

    <tr>

    <td align="right" colspan="2"><a href="admin.php">zurück zum Index</a></td>

    </tr>

    </table>';

    echo' </html>

    </form>';

    echo html_end();

    }

    function success($filename,$djdir){

    echo html_header();

    echo'<table width="50%" border="1" cellpadding="2" cellspacing="0" bordercolor="#FFFFFF" align="center">

    <tr>

    <td colspan="2"><b>Der Hintergrund wurde erfolgreich hochgeladen!</b></td>

    </tr>

    <tr>

    <td colspan="2">Der Link für den Hintergrund ist: <a href="http://www.kc-radio-europa.com/grafiken/hg/'.$djdir.'/'.$filename.'">http://www.kc-radio-europa.com/grafiken/hg/'.$djdir.'/'.$filename.'</a></td>

    </tr>

    <tr><td>&nbsp;</td></tr>

    <tr>

    <td align="left"><a href="hgupload.php">noch ein Bild hochladen</a></td>

    <td align="right"><a href="admin.php">zurück zum Index</a></td>

    </tr>

    </table>';

    echo html_end();

    }
    ?>

  • #2
    setze neben jedes bild einen link "<a href='delete.php?id=23>löschen</a>", wobei statt 23 natürlich immer die richtige bild_id oder der name übergeben wird.

    die datei delete.php wertet den url-parameter "id" aus und löscht die entsprechende datei mittels unlink(), leitet den benutzer anschließend mit header() zurück auf deine seite.

    Kommentar


    • #3
      danke für die info - aber wie müsste dann der quellcode aussehen??

      kannste mir den hier mal auflisten?

      Kommentar


      • #4
        nein, dafür fehlt mir die zeit.

        versuche es selbst, ich kontrolliere gern.

        Kommentar

        Lädt...
        X