WP芯片导致500内部服务器错误?

时间:2013-06-01 作者:Dejo Dekic

我的设置API中有上载图像的功能,它按预期上载图像,但当用户选择上载非图像文件时,问题就会出现,以阻止用户上载我正在使用的其他文件(非图像文件wp_die(\'No image found\'); 显示一条导致可怕的500内部服务器错误消息。奇怪的是我的wp\\U死了wp_die(\'No image found\'); 在我的本地计算机上运行正常,但没有联机。

function validate_setting($plugin_options){ 

  //echo \'<pre>\';  print_r($_FILES); echo \'</pre>\';
  $keys = array_keys($_FILES);
   $i = 0;
  foreach ($_FILES as $image) {        

if($image[\'size\']){
    //Is it an image?
    if(preg_match(\'/(jpg|jpeg|png|gif)$/i\',$image[\'type\'])){
      $override = array(\'test_form\' => false);
      $file = wp_handle_upload($image,$override);         
      $plugin_options[$keys[$i]] = $file[\'url\'];
    }
   else{
   wp_die(\'No image found\');//This triggers 500 Internal Server Error WHY??
       //echo:\'no image found\'; //Now this DON\'T work locally but works ONLINE?!?
   }
}
else{
 $options = get_option(\'theme_options\');
 $plugin_options[$keys[$i]] = $options[$keys[$i]];
}
$i++;
    } 
    return $plugin_options;
    }
我试图改变wp_die()echo \'no image found\'; 这种情况发生了:现在在我的locall机器上,它回显“nothing”(没有显示警告),但现在联机,它工作并显示“no image found”(没有找到图像)警告。。。

我知道我可以简单地删除else{ wp_die(\'No image found\'); } 零件和显示没有警告,但为什么它不能按预期工作?

有人能告诉我我的代码出了什么问题,以及如何正确显示wp\\u die(“找不到图像”)的警告(而不会导致“500内部服务器错误”)?

2 个回复
最合适的回答,由SO网友:webaware 整理而成

使用die($msg); 去做你想做的事。wp_die() 返回HTTP错误代码并将消息传递到错误页,如果未在args中设置返回代码,则默认代码为500(内部服务器错误)。

SO网友:Dejo Dekic

这对我来说真的很好:

 else{
   $error = new WP_Error( \'not_found\', _(\'No image found! Please upload images only!\'), 
        array( \'title\' => _(\'Plugin Error\'), \'response\' => \'406\', \'back_link\' => true ) );
        if( is_wp_error($error) ){
        wp_die( $error, \'\', $error->get_error_data() ); 
        }
   }

结束

相关推荐

Google Map在Tab Plugins的第二个选项卡上无法使用

我正在使用postTabs plugin 和Comprehensive Google Map Plugin, 我的问题是,当我在第二个选项卡上有我的谷歌地图时,地图没有按预期加载。但是如果我把它移到第一个标签上,效果会非常好。。有没有办法让地图在第二个选项卡上工作?实际上,无论我使用哪个选项卡插件,地图都不会正确加载到第二个选项卡上。。欢迎提出任何建议。谢谢:)