clickrain / EE_Twitter

EE Add-on that uses oAuth to display Twitter Feed
Other
48 stars 18 forks source link

Won't load page if loggin into CP and gzip enabled #37

Closed jimlakey closed 10 years ago

jimlakey commented 10 years ago

Took a while to figure this out as Chrome just comes up with generic 'this webpage is not available' error. Tried in Firefox and the error was 'The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.' I turned off gzip in the CP (didn't know it was actually on, previous dev must have enabled it and for some reason by bootstrap with a setting of no compression for output didn't override it) and it took care of it.

This only seems to happen when gzip is enabled in the EE CP and admin is logged in. When those two things are in place, the page won't load, not even enough to give PHP errors or any kind of feedback. Thank you Firefox for your more descriptive error messages!

Thanks for the awesome add-on, too.

bryanburgers commented 10 years ago

First, versions. What versions of PHP, EE, and EE_Twitter are you using?

In my experience, this often happens when there's an error outputted directly to the page. If you run the page logged into the CP and with gzip disabled, do you see any error messages outputted anywhere?

Also, what leads you to believe that this issue is EE_Twitter related? Did this start happening after you installed EE_Twitter?

jimlakey commented 10 years ago

Sorry, should have said upfront. PHP 5.5.3, EE 2.7.2 and EE_Twitter 1.7.1.

In fact, yes, there are errors. It seems to be related to EE_Twitter as it only occurred when I drop the EE_Twitter tags in the template and doesn't happen when I take them out again.

    A PHP Error was encountered

Severity: 8192

Message: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

Filename: core/Security.php

Line Number: 483

    A PHP Error was encountered

Severity: 8192

Message: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

Filename: core/Security.php

Line Number: 484

Bryan Burgers mailto:notifications@github.com April 13, 2014 5:26 AM

First, versions. What versions of PHP, EE, and EE_Twitter are you using?

In my experience, this often happens when there's an error outputted directly to the page. If you run the page logged into the CP and with gzip disabled, do you see any error messages outputted anywhere?

Also, what leads you to believe that this issue is EE_Twitter related? Did this start happening after you installed EE_Twitter?

— Reply to this email directly or view it on GitHub https://github.com/click-rain/EE_Twitter/issues/37#issuecomment-40306392.

bryanburgers commented 10 years ago

Here's what it looks like to me.

  1. The warning comes from ExpressionEngine's use of preg_replace, as you referenced.
  2. preg_replace() /e was deprecated in PHP 5.5.
  3. EE_Twitter is only using ExpressionEngine's public API, and not somehow calling into unsupported internals.

Therefore, this seems to be an issue with the interaction between ExpressionEngine and PHP 5.5. It surfaced because EE_Twitter is using functionality of ExpressionEngine that other modules may not be using, but it's still an ExpressionEngine issue.

I think your best move would be to disable warnings on your production server, so PHP deprecation warnings don't break your website.

Sorry I can't be of more help than that.