新闻中心

微企业微信程序后台生成自定义菜单时报500服务器错误之解决办法

作者 / 无忧主机 时间 2014-06-11 22:53:30

昨天无忧主机淘宝店铺上卖出去了一个香港独立IP虚拟空间,因为客户是做企业微信公众号的,今天无忧主机小编一上旺旺就弹出求救信号,刚一连上客户说:我在你们空间安装的这个程序,后台生成菜单时出现500错误哦!二货不说,让用户提供一下空间信息,小编就开始去测试程序,分析出了解决办法。 错误再现:这是一款微企业微信程序,500提示如下: 登陆微企后台,选中你要操作的公众号,功能管理,选择3G站>>微信导航菜单管理>>生成自定义菜单,就会提示500。 [caption id="attachment_14441" align="alignnone" width="550"]截图 截图[/caption] 无忧主机小编在测试的时候发现,这段生成自定义菜单的文件代码,只适合windows系统里面,而并非在无忧主机特色系统空间的Linux系统里面,是无法执行的,才会提示500. 为此,最终解决方法如下: 小编我重写了该文件的三个方法,这里站长们再也不用担心微信程序无法再无忧主机上执行啦! 修改文件:../weiqiye/Lib/Action/User/DiymenAction.class.php 用FTP工具把文件DiymenAction.class.php下载到本地,然后用高级记事本编辑,替换三个重写方法,重写之后的方法如下: function api_notice_increment($url, $data) { return $this->HttpRequest($url,$data); } function curlGet($url) { return $this->HttpRequest($url); } function HttpRequest($url,$data = false) { $udp = parse_url($url); if($udp['scheme'] == 'https' || $udp['scheme'] == 'HTTPS') $ssl = true; else $ssl = false; $host = $ssl ? 'ssl://'.$udp['host'] : $udp['host']; $fp = fsockopen($host,($ssl ? 443 : 80) ,$errno,$errstr,60); if(!$fp) return false; stream_set_timeout($fp,60); $type = $data ? 'POST' : 'GET'; $out = $type.' '.$udp['path'].( isset($udp['query']) ? '?'.$udp['query'] : '' )." HTTP/1.0 \r\n"; $out .= 'Host: '.$udp['host']." \r\n"; $out .= "Content-type: application/x-www-form-urlencoded \r\n"; if($type == 'POST') { $out .= "Content-length: ".strlen($data)." \r\n"; } $out .= "Connection: Close\r\n"; $out .= "Accept: */* \r\n\r\n"; if($type == 'POST') { $out .= $data; } if(!fputs($fp,$out)) return false; $ls = ''; $start_time = time(); while(!feof($fp)) { $l = fread($fp,1024); $status = stream_get_meta_data($fp); if($status['timed_out']) { return false; } if(time() - $start_time >= 60) { return false; } $ls.= $l; } if(empty($ls)) return false; $ls = explode("\r\n\r\n",$ls,2); $status = explode("\r\n",$ls[0]); $status = explode(" ",$status[0]); if($status[1] != 200) return false; return $ls[1]; } 找到这个方法后,替换即可。如果还在无忧主机购买了空间遇到网站程序上的其他问题,不要担心,无忧主机技术部是您强大的后盾。

本文地址:https://www.51php.com/others/14440.html

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服