西安网站建设
在线咨询

扫描二维码分享到微信

黑米网络发现WordPress后台无法保存修改模板错误:未能与站点联系来检查致命错误,因此PHP修改已被回滚BUG修复

2020-06-28


黑米网络发现WordPress4.9后台无法保存修改模板错误提示未能与站点联系来检查致命错误,因此PHP修改已被回滚。您需要采用其他方式(如SFTP)上传您修改的PHP文件。

  wordpress修改模板php文件,点击更新文件,显示“未能与站点联系来检查致命错误,因此PHP修改已被回滚。您需要采用其他方式(如SFTP)上传您修改的PHP文件”

  近期不少WordPress项目后台升级到了最新的4.9以后,发现主题模版编辑器只能保存CSS样式表,凡是PHP类的摸吧一律无法保存了,经过google发现是新版WP的一个BUG,修复方案如下:

  打开wp-admin/includes/file.php文件,删除492-599行的如下代码:

if ( $is_active && 'php' === $extension ) {
 
 $scrape_key = md5( rand() );
 $transient = 'scrape_key_' . $scrape_key;
 $scrape_nonce = strval( rand() );
 set_transient( $transient, $scrape_nonce, 60 ); // It shouldn't take more than 60 seconds to make the two loopback requests.
 
 $cookies = wp_unslash( $_COOKIE );
 $scrape_params = array(
 'wp_scrape_key' => $scrape_key,
 'wp_scrape_nonce' => $scrape_nonce,
 );
 $headers = array(
 'Cache-Control' => 'no-cache',
 );
 
 // Include Basic auth in loopback requests.
 if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) {
 $headers['Authorization'] = 'Basic ' . base64_encode( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) . ':' . wp_unslash( $_SERVER['PHP_AUTH_PW'] ) );
 }
 
 // Make sure PHP process doesn't die before loopback requests complete.
 @set_time_limit( 300 );
 
 // Time to wait for loopback requests to finish.
 $timeout = 100;
 
 $needle_start = "###### wp_scraping_result_start:$scrape_key ######";
 $needle_end = "###### wp_scraping_result_end:$scrape_key ######";
 
 // Attempt loopback request to editor to see if user just whitescreened themselves.
 if ( $plugin ) {
 $url = add_query_arg( compact( 'plugin', 'file' ), admin_url( 'plugin-editor.php' ) );
 } elseif ( isset( $stylesheet ) ) {
 $url = add_query_arg(
 array(
 'theme' => $stylesheet,
 'file' => $file,
 ),
 admin_url( 'theme-editor.php' )
 );
 } else {
 $url = admin_url();
 }
 $url = add_query_arg( $scrape_params, $url );
 $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
 $body = wp_remote_retrieve_body( $r );
 $scrape_result_position = strpos( $body, $needle_start );
 
 $loopback_request_failure = array(
 'code' => 'loopback_request_failed',
 'message' => __( 'Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.' ),
 );
 $json_parse_failure = array(
 'code' => 'json_parse_error',
 );
 
 $result = null;
 if ( false === $scrape_result_position ) {
 $result = $loopback_request_failure;
 } else {
 $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
 $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
 $result = json_decode( trim( $error_output ), true );
 if ( empty( $result ) ) {
 $result = $json_parse_failure;
 }
 }
 
 // Try making request to homepage as well to see if visitors have been whitescreened.
 if ( true === $result ) {
 $url = home_url( '/' );
 $url = add_query_arg( $scrape_params, $url );
 $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
 $body = wp_remote_retrieve_body( $r );
 $scrape_result_position = strpos( $body, $needle_start );
 
 if ( false === $scrape_result_position ) {
 $result = $loopback_request_failure;
 } else {
 $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
 $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
 $result = json_decode( trim( $error_output ), true );
 if ( empty( $result ) ) {
 $result = $json_parse_failure;
 }
 }
 }
 
 delete_transient( $transient );
 
 if ( true !== $result ) {
 
 // Roll-back file change.
 file_put_contents( $real_file, $previous_content );
 if ( function_exists( 'opcache_invalidate' ) ) {
 opcache_invalidate( $real_file, true );
 }
 
 if ( ! isset( $result['message'] ) ) {
 $message = __( 'An unidentified error has occurred.' );
 } else {
 $message = $result['message'];
 unset( $result['message'] );
 }
 return new WP_Error( 'php_error', $message, $result );
 }

 

 }
 
标签:网站建设公司| 黑米网络|工业机械网站建设|网站建设|西安网页制作|西安专业建站公司

标签: WordPress

上一篇:织梦cms短信验证码互亿无线短信接口插件-dedecms5.7会员注册手机验证码插件
下一篇:phpcms v9 Tag伪静态 url静态化,网站建设测试可用

网站栏目

建站知识 酷站欣赏 网站优化 网络营销 网站安全 行业新闻 公司新闻 建站工具


最新文章

css 如何让pc端不显示 手机端

css 如何让pc端不显示 手机端显示-html+css实现电脑端显示(隐藏)手机端隐藏(显示)htm...

apache伪静态排除目录规则

apache伪静态排除目录规则:排除某个文件夹:方法1:RewriteRule ^(statics|api|uploa...

CKEditor跨站脚本漏洞(CKEdito

CNVD-IDCNVD-2020-16705公开日期2020-03-11危害级别中影响产品CKEditor CKEditor 4 ...

RGCMS建站管理系统(一款基于tp5

RGCMS建站管理系统(一款基于tp5 1框架(Thinkphp5 1)好用的PHP建站管理系统)睿谷信...

织梦cms(dedecms)用SQL语句批

织梦cms(dedecms)用SQL语句批量替换为空的字段1、备份数据库2、后台-系统-SQL工具,...


COPYRIGHT (©)2018-2019 西安黑米网络 | 西安网站建设 |  百度地图|  网站地图|  标签 |  会员登录  |  会员注册  |  最近更新时间: 2020-06-28 15:08:24