2017-12-15 4 views
0

Ich habe ein seltsames PHP-Problem. Ich habe eine benutzerdefinierte Front-End-Post-Formular für WordPress. Es funktioniert die meiste Zeit, aber die anderen Male scheint es zufällig nicht zu funktionieren.copy(): Dateiname kann nicht leer sein Fehler (nur gelegentlich)

Mein PHP-Fehlerprotokoll spuckt folgende:

PHP Warning: copy(): Filename cannot be empty in /home/y567889/public_html/wp-content/themes/colormag/inc/front_deck.php on line 1071 

PHP Warning: file_get_contents(https://ygoprodeck.com/pics/Trinity World Chalice-deck-14461.png): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found 
in /home/y567889/public_html/wp-content/themes/colormag/inc/front_deck.php on line 1025 

PHP Warning: unlink(/home/y567889/public_html/pics/Trinity World Chalice-deck-14461.png): No such file or directory in /home/y567889/public_html/wp-content/themes/colormag/inc/front_deck.php on line 172 

Also in der Theorie ein Benutzer 10 Beiträge einreichen könnte. Manchmal würden 2 dieser Posts mit Fehlern (fehlendes Featured-Bild usw.) mit dem obigen Fehler im PHP-Protokoll erzeugt werden.

Was habe ich versucht:

Changed copy()-move_uploaded_file() ohne Freude.

Geänderte Berechtigungen für die „Bilder“ -Ordner auf 775.

Es zu einem meiner Benutzer insbesondere auftritt. Es passiert ihm mit jedem Beitrag, den er hochladen möchte. Das Generieren eines neuen WP-Kontos behebt dies für ihn (obwohl es wie gewöhnlich immer noch gelegentlich fehlschlägt).

Da der Fehler in Zeile 1017 beginnt werde ich zeigen, was der Code für das heißt:

function moveYdktoDeck($ydkId,$postid){ 
    $ydkUrl = wp_get_attachment_url($ydkId); 

    $newfile = $_SERVER['DOCUMENT_ROOT'].'/UploadedDecks/3/'.$postid.'.ydk'; 

    copy($ydkUrl, $newfile) 

} 

Antwort

0

Funktion wp_get_attachment_urlfalse zurückkehren kann. Überprüfen Sie das, bevor Sie es in der Kopierfunktion verwenden.

+0

Danke. Ich werde es versuchen. Aber erklärt das, warum es nur manchmal funktionieren würde? Das ist der Teil, den ich nicht verstehen kann. Theoretisch sollte es immer funktionieren, wenn es einmal funktioniert. – GenesisBits

+0

Wenn es funktioniert, hängt es vom Ergebnis von wp_get_attachment_url ab. Meistens gibt wp_get_attachment_url URL zurück, aber es kann manchmal fehlschlagen und in diesem Fall gibt es false zurück. Die Fälle sind: 1) kann Posten nicht finden (Funktion get_post schlägt fehl) 2) post_type des Beitrags ist nicht "Anhang" 3) zurückgegebene URL wäre eine leere Zeichenkette, falsch, null, ... was auch immer Funktion leer wird als wahr aufgelöst – Keeehi

Verwandte Themen