Ankündigung

Einklappen
Keine Ankündigung bisher.

Datei ersetzen und löschen mit unlink();

Einklappen

Neue Werbung 2019

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

  • Datei ersetzen und löschen mit unlink();

    Guten Abend allerseits.
    Ich habe lange hierfür gebraucht weil ich mir die Peinlichkeit ersparen wollte und alles 20mal kontrolliert und probiert habe...ich finde es nicht...
    Warum wird die alte Datei nicht gelöscht?

    PHP-Code:
    if(isset($_GET['action']) && $_GET['action'] == "edit")
    {
         
    $paid $_GET['paid'];
         
    $stmt $db->prepare("UPDATE partner SET name = :name_neu, url = :url_neu, image = :image_neu WHERE id = '$paid'");
         
    $stmt->execute(array('name_neu' => $_POST['post_name'], 'url_neu' => $_POST['post_url'], 'image_neu' => $_POST['post_image']));

         if(
    file_exists($_FILES['post_image']['tmp_name']) || is_uploaded_file($_FILES['post_image']['tmp_name']))
         {
              
    $statement $db->query("SELECT image FROM partner WHERE id = '$paid'");
              while (
    $row $statement->fetch()):
                   
    $old_image $row['image'];
              endwhile;
              
    unlink("../_include/img/partner/"$old_image );
              
    $image_name $_FILES['post_image']['name'];
              
    $image_tmp_name $_FILES['post_image']['tmp_name'];
              
    move_uploaded_file($image_tmp_name "../_include/img/partner/"$image_name );
              
    $stmt $db->prepare("UPDATE partner SET image = :image_neu WHERE id = '$paid'");
              
    $stmt->execute(array('image_neu' => $image_name));
         }


  • #2
    error_reporting eingeschaltet? => https://php-de.github.io/jumpto/leitfaden/

    unlink() gibt etwas zurück und wirft eine Warning wenns nicht klappt. Vielleicht prüfst du mal den Rückgabewert.

    PHP-Code:
    $stmt $db->prepare("UPDATE partner SET image = :image_neu WHERE id = '$paid'"); 
    Weshalb bindest du :image_neu korrekt, aber die id nicht? Das ist eine grobe SQL-Injection Lücke hier.

    Kommentar

    Lädt...
    X