목차
回复讨论(解决方案)
백엔드 개발 PHP 튜토리얼 大家瞅瞅,eval()

大家瞅瞅,eval()

May 29, 2018 am 09:15 AM
code eval

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工具

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

파이썬에서 eval은 무엇을 의미합니까? 파이썬에서 eval은 무엇을 의미합니까? May 22, 2019 pm 03:18 PM

eval은 "평가"를 의미하며 문자열 표현식을 실행하고 표현식의 계산 결과를 반환하는 데 사용되는 Python의 내장 함수입니다. 즉, 변수를 할당할 때 등호 오른쪽의 표현은 다음과 같습니다. 문자열 형식으로 작성되며, 반환 값은 이 표현식의 결과입니다. 구문 "eval(표현식[, 전역[, 지역]])".

Win에서 PHP에서 평가를 비활성화하는 방법 Win에서 PHP에서 평가를 비활성화하는 방법 Oct 31, 2022 am 09:33 AM

win에서 PHP에서 평가를 비활성화하는 방법: 1. "PHP_diseval_extension"을 다운로드합니다. 2. 현재 서버에서 사용되는 PHP를 찾습니다. 3. PHP 구성 파일을 엽니다. 4. "extension=diseval.so" 코드를 추가합니다. 서비스를 다시 시작하십시오.

Visual Studio Code에서 Unity 프로젝트를 편집하면 이제 시작할 준비가 되었습니다. Visual Studio Code에서 Unity 프로젝트를 편집하면 이제 시작할 준비가 되었습니다. Aug 08, 2023 am 10:21 AM

Microsoft는 Visual Studio Code용 Unity 확장의 미리 ​​보기 버전을 출시했습니다. 이 새로운 Unity 확장을 사용하면 Unity 게임을 작성하고 디버그할 수 있습니다. 이 새로운 Unity 확장은 Visual Studio 및 Unity용 Visual Studio Tools에서 이미 사용할 수 있는 몇 가지 인기 있는 기능을 제공하여 Visual Studio Code의 C#을 Unity 개발에 더 적합하게 만듭니다. 현재 VSCode용 Unity 확장은 다음을 제공합니다. Unity 편집기 및 Unity 플레이어 디버깅을 위한 Unity 디버거. Unity 관련 C# 분석기 및 리팩토링. 유니

Python에서 eval 사용법에 대한 간단한 설명 Python에서 eval 사용법에 대한 간단한 설명 Mar 25, 2024 pm 02:08 PM

Python에서는 eval() 함수를 사용하여 문자열 표현식을 실행하고 그 결과를 반환합니다. 표현식이 포함된 문자열을 매개변수로 사용하여 표현식을 평가합니다. eval() 함수는 강력하지만 문자열에 포함된 유효한 Python 표현식을 모두 실행한다는 점에 유의해야 합니다. 따라서 보안 취약성을 방지하려면 이 함수를 사용할 때 외부 입력 문자열을 허용하지 않아야 합니다.

파이썬에서 eval은 무엇입니까? 파이썬에서 eval은 무엇입니까? Aug 08, 2023 pm 05:07 PM

eval은 문자열을 코드로 구문 분석 및 실행하고 실행 결과를 반환하는 데 사용되는 Python의 내장 함수입니다. "eval" 함수는 임의의 Python 코드를 실행할 수 있으므로 "eval" 함수를 사용할 때는 보안 문제를 신중하게 고려해야 합니다. "eval" 함수에 신뢰할 수 없는 문자열을 전달하면 코드 삽입과 같은 보안 문제가 발생할 수 있습니다. .

Python 평가 함수를 사용하는 방법 Python 평가 함수를 사용하는 방법 Jun 04, 2023 am 09:19 AM

Python의 eval() 내장된 Pythoneval()[1]을 사용하여 문자열 기반 또는 컴파일된 코드 기반 입력에서 표현식을 동적으로 평가할 수 있습니다. eval()에 문자열을 전달하면 함수는 이를 구문 분석하고 바이트코드[2]로 컴파일한 다음 Python 표현식으로 평가합니다. 그러나 컴파일된 코드 객체로 eval()을 호출하면 함수는 계산 단계만 수행하므로 동일한 입력으로 eval()을 여러 번 호출하면 매우 편리합니다. Python의 eval()은 다음과 같이 정의됩니다. eval(expression[,globals[,locals]]) 이 함수

HTML 및 코드 : 용어를 자세히 살펴 봅니다 HTML 및 코드 : 용어를 자세히 살펴 봅니다 Apr 10, 2025 am 09:28 AM

"Code"는 "Code"BroadlyIncludeLugageslikeJavaScriptandPyThonforFunctureS (htMlisAspecificTypeofCodeFocudecturecturingWebContent)

EverValue 코인(EVAL)이 XT Exchange에 상장되어 사용자가 비트코인 ​​보유를 강화할 수 있도록 지원 EverValue 코인(EVAL)이 XT Exchange에 상장되어 사용자가 비트코인 ​​보유를 강화할 수 있도록 지원 Oct 07, 2024 pm 03:30 PM

싱가포르, 2024년 10월 7일 (GLOBE NEWSWIRE) -- EVAL(EverValue Coin)이 XT Exchange에 상장된다는 소식을 발표하게 되어 매우 기쁩니다.

See all articles