首页 新闻 会员 周边 捐助

关于 php echo "hello World"

0
悬赏园豆:10 [已关闭问题] 关闭于 2016-04-15 13:51
<?php
/**
  * wechat php test
  */
echo "Hello World";
/**
  * 话说萝卜我 今天 在搞腾讯的微信平台,  对于php语言的语法不是太了解.请大咖们见谅.
  回到问题.
  主要是  echo "hello World";   代码放上去后  define("TOKEN", "weixin"); 以后的代码不执行了  
  求知:是php语法问题造成的还是其他.请园友们解释下,不剩感谢.
  */
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

    public function responseMsg()
    {
        //get post data, May be due to the different environments
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

          //extract post data
        if (!empty($postStr)){
                
                  $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $textTpl = "<xml>
                            <ToUserName><![CDATA[%s]]></ToUserName>
                            <FromUserName><![CDATA[%s]]></FromUserName>
                            <CreateTime>%s</CreateTime>
                            <MsgType><![CDATA[%s]]></MsgType>
                            <Content><![CDATA[%s]]></Content>
                            <FuncFlag>0</FuncFlag>
                            </xml>";             
                if(!empty( $keyword ))
                {
                      $msgType = "text";
                    $contentStr = "Welcome to wechat world!";
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }else{
                    echo "Input something...";
                }

        }else {
            echo "";
            exit;
        }
    }
        
    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];    
                
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}

?>

话说萝卜我 今天 在搞腾讯的微信平台, 对于php语言的语法不是太了解.请大咖们见谅.

回到问题.

主要是 echo "hello World"; 代码放上去后 define("TOKEN", "weixin"); 以后的代码不执行了

求知:是php语法问题造成的还是其他.请园友们解释下,不剩感谢.

裴文杰的主页 裴文杰 | 初学一级 | 园豆:194
提问于:2014-04-01 17:52
< >
分享
所有回答(1)
0

你是怎么调用这个PHP的?是不是这样:在浏览器里输入http://localhost/test2.php

是不是报这个错?

这样试试: 调用的使用把$_GET[]里的参数传进去。

http://localhost/test2.php?echostr=1&signature=1&timestamp=1111&nonce=111

酱油能 | 园豆:586 (小虾三级) | 2014-04-01 22:07

不报错, 调试通过了  我想知道为什么  呵呵 

支持(0) 反对(0) 裴文杰 | 园豆:194 (初学一级) | 2014-04-02 11:23

@猪头大萝卜: 原因很简单,你如果是http://localhost/test2.php这样的时候,$_GET['xxxx']这些东西都是没有设置的:

$signature = $_GET["signature"];等效于 $signature = 【不知道是什么】;

这时PHP会认为$_GET['signature']没定义,报仇。

@在PHP中的作用是,不要报错。

支持(0) 反对(0) 酱油能 | 园豆:586 (小虾三级) | 2014-04-02 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册