DEFINE("DEFINE_KEY","88284-52C823C8B956EE4DForSansedao");//定义数字签名,http://user.domain.com/login?uid=123&point=0081230125210&orderid=192.168.0.1&sign=qtt7yrq2d6//参数传递,$_GET传的参数数组
get_pay($_GET);
方法:
get_pay($date){
$sign = md5("uid=".$date['uid']."&point=".$date['point']."&orderid=".$date['orderid']."&key=".DEFINE_KEY); if ($date['sign']!=$sign) return "error";
                    else
                              return "ok";
}
/问题:$date['sign']永远也不等于$sign吧,但是我们这个程序就是等于了,怎么回事??

解决方案 »

  1.   

    $date['sign']是永远等于$sign的
      

  2.   

    $date['sign']是永远等于$sign的 为什么?$date里的sign 是传过来的参数,而另一个$sign是经过md5加密已后的!怎么能相等,还有,要是相等也应该是$date['sign']=DEFINE_KEY吧??
      

  3.   

    肯定不相等的,代码都帖上来看看DEFINE("DEFINE_KEY","88284-52C823C8B956EE4DForSansedao");//定义数字签名, $date['uid'] = '123';
    $date['point'] = '0081230125210';
    $date['orderid'] = '192.168.0.1';
    $date['sign'] = 'qtt7yrq2d6';function get_pay($date){ 
    $sign = md5("uid=".$date['uid']."&point=".$date['point']."&orderid=".$date['orderid']."&key=".DEFINE_KEY); if ($date['sign']!=$sign) 
    return "error"; 
       else 
        return "ok"; 
    } echo get_pay($date);
      

  4.   

    $signs = md5("uid=".$date['uid']."&point=".$date['point']."&orderid=".$date['orderid']."&key=".DEFINE_KEY); //这里改下变量名$sign-->$signs
    if ($date['sign']!=$signs) //这里判断还会不会相等?
      

  5.   

    DEFINE("DEFINE_KEY","88284-52C823C8B956EE4DForSansedao");//定义数字签名, $date['uid'] = '123';
    $date['point'] = '0081230125210';
    $date['orderid'] = '192.168.0.1';
    $date['sign'] = 88284-52C823C8B956EE4DForSansedao;//这里应该是:88284-52C823C8B956EE4DForSansedaofunction get_pay($date){ 
    $sign = md5("uid=".$date['uid']."&point=".$date['point']."&orderid=".$date['orderid']."&key=".DEFINE_KEY); if ($date['sign']!=$sign) 
        return "error"; 
       else 
        return "ok"; 
    } echo get_pay($date);
    其实那也应该不会相等呀!我的接口文档就是这么写的:]$sign=md5(〝uid=〝.$UID.〝&time=〝.$TIME. 〝&ip=〝.$IP. 〝&key=〝. DEFINE_KEY)
    其中DEFINE_KEY为双方技术共同约定的字符串.
    返回信息:
      成功返回:进入游戏
      返回失败:错误信息
    登录地址示例:
    http://user.domain.com/login?uid=123&time=0081230125210&ip=192.168.0.1&sign=qtt7yrq2d6我不理解,但总监说这是对的呀,其实际也是对的,我们自己就用的这个接口。
      

  6.   

    如果相等了,只能是把$_GET里的参数在传进之前又用md5加密了,那就相等了!我现在只能是这么理解了,郁闷!