Heim  >  Artikel  >  Backend-Entwicklung  >  大家瞅瞅,eval()

大家瞅瞅,eval()

不言
不言Original
2018-05-29 09:15:521417Durchsuche

xu版主,你遇见过没,代码在测试服上跑的没问题,然后正式服用的2008+php5.4+fastcgi,有点怪异,

回复讨论(解决方案)

无代码,无真相

无代码,无真相

<?php  
/**  
  * wechat php test  
  */  
 
class MpapiAction extends Action{  
private $id;  
 
public function getId(){  
return $id = $_REQUEST[&#39;appid&#39;];  
}  
public function index(){  
Log::write(&#39;eval是否开启:&#39;.function_exists(&#39;eval&#39;));  
Log::write("remote_addr:".$_SERVER[&#39;REMOTE_ADDR&#39;].(strpos($_SERVER[&#39;REMOTE_ADDR&#39;], "101.226"))?" from weixin":"unknow ip");  
Log::write("query_string:".$_SERVER[&#39;QUERY_STRING&#39;]);  
header("Content-type:text/html;charset=utf-8");  
$str = md5($_REQUEST[&#39;appid&#39;]."weike86.com");  
define("TOKEN", $str);  
Log::write(&#39;TOKEN::&#39;.$str);  
$this->valid();  
$wechat = new WechatAction();  
$wechat->responseMsg($_REQUEST[&#39;appid&#39;]);  
}  
 
public function valid(){  
        $echoStr = $_GET["echostr"];  
        //valid signature , option  
        if($this->checkSignature()){  
         Log::write(&#39;$echoStr&#39;.$echoStr);  
         Log::write(&#39;HTTP_RAW_POST_DATA:&#39;.$GLOBALS["HTTP_RAW_POST_DATA"]);  
         echo $echoStr;  
         //exit;  
       }  
    }  
      
private function checkSignature(){  
        // you must define TOKEN by yourself  
        if (!defined("TOKEN")) {  
            throw new Exception(&#39;TOKEN is not defined!&#39;);  
        }  
          
        $signature = $_GET["signature"];  
        $timestamp = $_GET["timestamp"];  
        $nonce = $_GET["nonce"];  
          
$token = TOKEN;  
$tmpArr = array($token, $timestamp, $nonce);  
        // use SORT_STRING rule  
sort($tmpArr, SORT_STRING);  
$tmpStr = implode( $tmpArr );  
$tmpStr = sha1( $tmpStr );  
 
if( $tmpStr == $signature ){  
return true;  
}else{  
return false;  
}  
}  
 
}  
 
?>

无代码,无真相

正式服务器返回的值(异常)    
测试服务器正常响应微信服务器返回的值(正常)  

你应该贴出出错行附近的代码!

那天弄出来了,忘记给出答案了。就是有BOM阻止了页面的正常响应,网上有php的类,还有清除bom工具

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:thinkphp随机问题Nächster Artikel:PHP操作Mysql中的BLOB字段