我有一个奇怪的PHP问题。 我有一个WordPress的自定义前端帖子提交表单。它大部分时间,但有时它似乎随机无效。
我的PHP错误日志吐出以下内容:
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
因此从理论上讲,用户可以提交10个帖子。有时,这些帖子中的2个会在php日志中出现上述错误而产生错误(缺少特色图像等)。
我尝试了什么:
将copy()
更改为move_uploaded_file()
,没有任何乐趣。
更改了" pics"的权限文件夹到775。
特别是我的一个用户。他试图上传的每个帖子都会发生这种情况。生成一个新的WP帐户可以为他修复此问题(虽然它仍然会按照惯例偶尔失败)。
因为错误从第1017行开始,我将展示代码的含义:
function moveYdktoDeck($ydkId,$postid){
$ydkUrl = wp_get_attachment_url( $ydkId );
$newfile = $_SERVER['DOCUMENT_ROOT'].'/UploadedDecks/3/'.$postid.'.ydk';
copy($ydkUrl, $newfile)
}
答案 0 :(得分:0)
功能wp_get_attachment_url
可以返回false
。在复制功能中使用它之前检查一下。