Fix: CURLOPT_FOLLOWLOCATION error with safe_mode and open_dir
-
Hi, there’s an issue with some server setups that causes this plugin’s cURL function to produce an error. The problem stems from when safe_mode is enabled, or a base_dir is set, it produces the following PHP error on post save:
Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /wp-content/plugins/posts-social-shares-count/classes/share.count.php on line 120
To fix this, I adjusted the file_get_contents_curl() function in share.count.php (around ln 120):
//support location redirects to future-proof script $max_redirs = (ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')) ? 2 : 0; $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'], CURLOPT_FAILONERROR => 1, CURLOPT_FOLLOWLOCATION => $max_redirs > 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_TIMEOUT => $this->timeout ));
(I also changed the multiple curl_setopt() calls to a single curl_setopt_array() call)
This fix was largely borrowed from the Advanced Steam Widget, which was having a similar problem a while back.
Hope this helps anyone else having problems with this. Bishoy.A, any chance this might be rolled into the code, so that it wont break on update?
- The topic ‘Fix: CURLOPT_FOLLOWLOCATION error with safe_mode and open_dir’ is closed to new replies.