[theme-reviewers] fopen, fgets and freads errors

Otto otto at ottodestruct.com
Sat Jul 16 23:18:22 UTC 2011


Yep. In http://themes.svn.wordpress.org/wordsmith-anvil/1.6.7/functions/anvil-options.php.

This is wrong:

$anvil_themedata =  get_theme_data( $stylesheet_uri );

You should be using the STYLESHEETPATH define or the
get_stylesheet_directory() function to get the full path to the
stylesheet instead. You'll want to add style.css to the end of that,
as it's a path, not the full name of the stylesheet.

Better yet, don't. Do something else like hardcoding those values or
something. get_theme_data takes a lot of processor power to parse and
such, it's not worth it for an options page.

-Otto



On Sat, Jul 16, 2011 at 6:12 PM, Otto <otto at ottodestruct.com> wrote:
> What about get_theme_data? Are you using that anywhere? Are you doing
> anything with a URL anywhere?
>
> The core code itself doesn't pass URLs for filenames, so the fact that
> url fopen is disabled is fine.
>
> -Otto
>
>
>
> On Sat, Jul 16, 2011 at 5:42 PM, Tom Matteson
> <perspectivevision at gmail.com> wrote:
>> Darren ... I am pretty sure they were both using 3.1.x ... and in response
>> to your other question, my theme does not call get_file_data() anywhere.
>>
>> Best Regards
>> Tom Matteson
>> ----------------------------------------------------------------------------------------
>>
>>
>>
>> On Sat, Jul 16, 2011 at 2:23 PM, Darren Slatten <darrenslatten at gmail.com>
>> wrote:
>>>
>>> I'm guessing 3.1.x, since wp-includes/functions.php has an fopen() on line
>>> 4284 (whereas WP 3.2 has only a line break).
>>>
>>> The WP function calling fopen() is get_file_data(). Does your theme call
>>> this function directly?
>>>
>>> Here's the code:
>>>
>>> /**
>>>  * Retrieve metadata from a file.
>>>  *
>>>  * Searches for metadata in the first 8kiB of a file, such as a plugin or
>>> theme.
>>>  * Each piece of metadata must be on its own line. Fields can not span
>>> multple
>>>  * lines, the value will get cut at the end of the first line.
>>>  *
>>>  * If the file data is not within that first 8kiB, then the author should
>>> correct
>>>  * their plugin file and move the data headers to the top.
>>>  *
>>>  * @see http://codex.wordpress.org/File_Header
>>>  *
>>>  * @since 2.9.0
>>>  * @param string $file Path to the file
>>>  * @param array $default_headers List of headers, in the format
>>> array('HeaderKey' => 'Header Name')
>>>  * @param string $context If specified adds filter hook
>>> "extra_{$context}_headers"
>>>  */
>>> function get_file_data( $file, $default_headers, $context = '' ) {
>>>     // We don't need to write to the file, so just open for reading.
>>>     $fp = fopen( $file, 'r' );
>>>
>>>     // Pull only the first 8kiB of the file in.
>>>     $file_data = fread( $fp, 8192 );
>>>
>>>     // PHP will close file handle, but we are good citizens.
>>>     fclose( $fp );
>>>
>>>     if ( $context != '' ) {
>>>         $extra_headers = apply_filters( "extra_{$context}_headers",
>>> array() );
>>>
>>>         $extra_headers = array_flip( $extra_headers );
>>>         foreach( $extra_headers as $key=>$value ) {
>>>             $extra_headers[$key] = $key;
>>>         }
>>>         $all_headers = array_merge( $extra_headers, (array)
>>> $default_headers );
>>>     } else {
>>>         $all_headers = $default_headers;
>>>     }
>>>
>>>     foreach ( $all_headers as $field => $regex ) {
>>>         preg_match( '/^[ \t\/*#@]*' . preg_quote( $regex, '/' ) .
>>> ':(.*)$/mi', $file_data, ${$field});
>>>         if ( !empty( ${$field} ) )
>>>             ${$field} = _cleanup_header_comment( ${$field}[1] );
>>>         else
>>>             ${$field} = '';
>>>     }
>>>
>>>     $file_data = compact( array_keys( $all_headers ) );
>>>
>>>     return $file_data;
>>> }
>>>
>>>
>>> On Sat, Jul 16, 2011 at 4:14 PM, Darren Slatten <darrenslatten at gmail.com>
>>> wrote:
>>>>
>>>> What version of WP are they using?
>>>>
>>>>
>>>>
>>>> On Sat, Jul 16, 2011 at 3:49 PM, Tom Matteson
>>>> <perspectivevision at gmail.com> wrote:
>>>>>
>>>>> Darren ... the first one switched to using a different theme because
>>>>> they could not resolve this. However, his WordPress installation was in a
>>>>> subdirectory (see the errors below **with the user's domain and subdirectory
>>>>> edited**) I do know the first user's site was hosted by surpasshosting dot
>>>>> com and per their security settings they would not enable allow_url_fopen
>>>>> ... other than that I am unaware of their php.ini settings
>>>>>
>>>>>
>>>>> Warning:
>>>>>
>>>>> fopen(http://primarydomain.com/sub-directory/wp-content/themes/wordsmith-anvil/style.css)
>>>>> [function.fopen]: failed to open stream: no suitable wrapper could be
>>>>> found in
>>>>> /home/primaryd/public_html/sub-directory/wp-includes/functions.php on
>>>>> line
>>>>> 4284
>>>>>
>>>>> Warning: fread(): supplied argument is not a valid stream resource in
>>>>> /home/primaryd/public_html/sub-directory/wp-includes/functions.php on
>>>>> line
>>>>> 4287
>>>>>
>>>>> Warning: fclose(): supplied argument is not a valid stream resource in
>>>>> /home/primaryd/public_html/sub-directory/wp-includes/functions.php on
>>>>> line
>>>>> 4290"
>>>>>
>>>>> One thing I had read somewhere is that using absolute paths (direct
>>>>> links) as opposed to relative paths could cause these errors to appear. In
>>>>> the Wordsmith Anvil theme the only direct links are:
>>>>>
>>>>> Developer and WordPress.org credit links (common with most all themes)
>>>>> Link to FAQ and Theme Home page in Admin Theme Options Page (fairly
>>>>> common)
>>>>> Various license links (common with all themes)
>>>>> Direct links assigned to Social Media variables for Twitter, FB, Flickr,
>>>>> YouTube ...[eg $flickrurl = 'http://www.flickr.com/photos/';] (common to
>>>>> themes with these options)
>>>>>
>>>>> The second user's site is hosted with secureserver.net (there apparently
>>>>> have been some errors with that host server and WordPress in the past see:
>>>>> http://wordpress.org/support/topic/defaultsecureservernet)
>>>>>
>>>>> The errors on the second user's site were the same. The user has
>>>>> currently deactivated the theme and has an under construction page
>>>>> displayed. I have emailed her to ask that she re-activate to get addtional
>>>>> feedback. I imagine it will be re-activated at some point today. For
>>>>> reference, the url to that site is: http://homesweethomerescue.org/
>>>>>
>>>>> As I discover additional details I will provide them.
>>>>>
>>>>> Best Regards
>>>>> Tom Matteson
>>>>>
>>>>> ---------------------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> On Sat, Jul 16, 2011 at 12:37 PM, Darren Slatten
>>>>> <darrenslatten at gmail.com> wrote:
>>>>>>
>>>>>> This would be a lot easier to diagnose if you could provide information
>>>>>> like:
>>>>>>
>>>>>> hosting environment
>>>>>> php.ini settings
>>>>>> full text of error messages
>>>>>> what types of pages/requests generate the errors
>>>>>>
>>>>>> If the errors are only showing in 2:10,000 installations, then there's
>>>>>> a good chance that those 2 users have an unusual server configuration or
>>>>>> file/URL structure. Could be caused by something like trying to open/include
>>>>>> a file or image that isn't in the typical location, relative to your theme.
>>>>>>
>>>>>>
>>>>>> On Sat, Jul 16, 2011 at 3:47 AM, Tom Matteson
>>>>>> <perspectivevision at gmail.com> wrote:
>>>>>>>
>>>>>>> Greetings All Concerned ...
>>>>>>>
>>>>>>> I have a theme on the Repository--Wordsmith Anvil--which does not use
>>>>>>> fopen, fgets or freads functions. It has been downloaded close to 10,000
>>>>>>> times and I have just received a comment from the second user who is
>>>>>>> receiving errors referencing "failed to open stream: no suitable wrapper
>>>>>>> could be found in ...", or "supplied argument is not a valid stream resource
>>>>>>> in ..." with this theme. The errors all point to various lines of
>>>>>>> wp-includes/functions.php, except one file reference to the theme default
>>>>>>> css file, style.css. The first user told me they disabled all plugins. Also,
>>>>>>> they performed a fresh WordPress install and did not see the errors using
>>>>>>> TwentyTen and a number of other themes. The second user who contacted me
>>>>>>> yesterday told me they do not have any plugins installed and when they
>>>>>>> activated the Wordsmith Anvil theme, these errors display at the top of the
>>>>>>> page.
>>>>>>>
>>>>>>> Knowing that these functions are not used in this theme; yet the
>>>>>>> errors seem to be theme specific, and each user experiencing these errors
>>>>>>> have WordPress installations hosted on entirely different servers I am more
>>>>>>> uncertain as to why these errors are being displayed. I was hoping someone
>>>>>>> on this list may have experienced this with another theme and could shed
>>>>>>> some light on why these errors would occur when the theme does not use those
>>>>>>> functions. In fact, if these functions had been used in my theme, I am
>>>>>>> fairly certain it would not have been approved anyway.
>>>>>>>
>>>>>>> Otto, Nathan, Chip, Justin, Emil, Cais, etc ... any thoughts or
>>>>>>> feedback on this. I would like to address this so that users in the future
>>>>>>> do not see these errors.
>>>>>>>
>>>>>>> Best Regards
>>>>>>> Tom Matteson
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> theme-reviewers mailing list
>>>>>>> theme-reviewers at lists.wordpress.org
>>>>>>> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Darren Slatten
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> theme-reviewers mailing list
>>>>>> theme-reviewers at lists.wordpress.org
>>>>>> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> theme-reviewers mailing list
>>>>> theme-reviewers at lists.wordpress.org
>>>>> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Darren Slatten
>>>>
>>>
>>>
>>>
>>> --
>>> Darren Slatten
>>>
>>>
>>> _______________________________________________
>>> theme-reviewers mailing list
>>> theme-reviewers at lists.wordpress.org
>>> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>>
>>
>>
>> _______________________________________________
>> theme-reviewers mailing list
>> theme-reviewers at lists.wordpress.org
>> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>>
>>
>


More information about the theme-reviewers mailing list