山滚云

WordPress 网站��无法修改php文件,�示Scrape key check failed. Please try again.

建站知识 617℃

WordPress 网站��无法修改php文件,�示Scrape key check failed. Please try again.

通过对网上相关资料的研究,�现少数IDC厂家的虚拟主机在使用wordpress4.9以上版本wordpress的时候,有�能出现编辑php文件无法�存,�示Scrape key check failed. Please try again .的情况,

 

目�没有很好的解决办法,暂时找到的一�解决办法是:

进wordpress网站根目录,找到wp-admin/includes/file.php

下载到本地,找下以下两行代�中间的部分:大约从522行到641行,

开头   if ( $is_active && 'php' === $extension ) {

结尾 return new WP_Error( 'php_error', $message, $result );

 

将其删除��解决问题,

    1. if ( $is_active && 'php' === $extension ) {
    2. $scrape_key = md5( rand() );
    3. $transient = 'scrape_key_' . $scrape_key;
    4. $scrape_nonce = strval( rand() );
    5. // It shouldn't take more than 60 seconds to make the two loopback requests.
    6. set_transient( $transient, $scrape_nonce, 60 );
    7. $cookies = wp_unslash( $_COOKIE );
    8. $scrape_params = array(
    9. 'wp_scrape_key' => $scrape_key,
    10. 'wp_scrape_nonce' => $scrape_nonce,
    11. );
    12. $headers = array(
    13. 'Cache-Control' => 'no-cache',
    14. );
    15. /** This filter is documented in wp-includes/class-wp-http-streams.php */
    16. $sslverify = apply_filters( 'https_local_ssl_verify', false );
    17. // Include Basic auth in loopback requests.
    18. if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) {
    19. $headers['Authorization'] = 'Basic ' . base64_encode( wp_unslash(
    20. $_SERVER['PHP_AUTH_USER'] ) . ':' . wp_unslash( $_SERVER['PHP_AUTH_PW'] ) );
    21. }
    22. // Make sure PHP process doesn't die before loopback requests complete.
    23. set_time_limit( 300 );
    24. // Time to wait for loopback requests to finish.
    25. $timeout = 100;
    26. $needle_start = "###### wp_scraping_result_start:$scrape_key ######";
    27. $needle_end = "###### wp_scraping_result_end:$scrape_key ######";
    28. // Attempt loopback request to editor to see if user just whitescreened themselves.
    29. if ( $plugin ) {
    30. $url = add_query_arg( compact( 'plugin', 'file' ), admin_url( 'plugin-editor.php' ) );
    31. } elseif ( isset( $stylesheet ) ) {
    32. $url = add_query_arg(
    33. array(
    34. 'theme' => $stylesheet,
    35. 'file' => $file,
    36. ),
    37. admin_url( 'theme-editor.php' )
    38. );
    39. } else {
    40. $url = admin_url();
    41. }
    42. $url = add_query_arg( $scrape_params, $url );
    43. $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout', 'sslverify' ) );
    44. $body = wp_remote_retrieve_body( $r );
    45. $scrape_result_position = strpos( $body, $needle_start );
    46. $loopback_request_failure = array(
    47. 'code' => 'loopback_request_failed',
    48. '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.' ),
    49. );
    50. $json_parse_failure = array(
    51. 'code' => 'json_parse_error',
    52. );
    53. $result = null;
    54. if ( false === $scrape_result_position ) {
    55. $result = $loopback_request_failure;
    56. } else {
    57. $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
    58. $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
    59. $result = json_decode( trim( $error_output ), true );
    60. if ( empty( $result ) ) {
    61. $result = $json_parse_failure;
    62. }
    63. }
    64. // Try making request to homepage as well to see if visitors have been whitescreened.
    65. if ( true === $result ) {
    66. $url = home_url( '/' );
    67. $url = add_query_arg( $scrape_params, $url );
    68. $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
    69. $body = wp_remote_retrieve_body( $r );
    70. $scrape_result_position = strpos( $body, $needle_start );
    71. if ( false === $scrape_result_position ) {
    72. $result = $loopback_request_failure;
    73. } else {
    74. $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
    75. $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
    76. $result = json_decode( trim( $error_output ), true );
    77. if ( empty( $result ) ) {
    78. $result = $json_parse_failure;
    79. }
    80. }
    81. }
    82. delete_transient( $transient );
    83. if ( true !== $result ) {
    84. // Roll-back file change.
    85. file_put_contents( $real_file, $previous_content );
    86. if ( function_exists( 'opcache_invalidate' ) ) {
    87. opcache_invalidate( $real_file, true );
    88. }
    89. if ( ! isset( $result['message'] ) ) {
    90. $message = __( 'Something went wrong.' );
    91. } else {
    92. $message = $result['message'];
    93. unset( $result['message'] );
    94. }
    95. return new WP_Error( 'php_error', $message, $result );
    96. }
    97. }

转载请注明:⎛蜗牛建站⎞ » WordPress 网站��无法修改php文件,�示Scrape key check failed. Please try again.

山滚网络是国内领先的�索�销�务商,有丰富的客户�务�验,我们有专业的网站优化�网站建设�APP开��全网�销团队,�以�续为您�供优质的�务,您的满�是我们�懈的追求。

城市分站:上海建站公�上海网站建设上海网站建设广州网站建设深圳网站建设�都网站建设�庆网站建设武汉网站建设

业务范围:上海建站公å�¸,网站优化,虚拟主机    微信:ganshangwoniu    QQ:549233124    业务咨询热线:177-2050-9380

   Copyright © 2008-2024 山滚网络版æ�ƒæ‰€æœ‰   

QQ在线咨询
网站开�公�微信�