public function login(){
        header("Content-Type:text/html;charset=utf-8");
        $user = I('username');
        $passwd = md5(md5(I('password')));
        $url = 'http://daili.ipduoduo.com:33332/api/userinfo';
        $params = array(
              "user" => $user,
              "password" => $passwd,
        );        //初始化
        $curl = curl_init();
        //设置抓取的url
        if(!empty($params)){
            foreach ($params as $key => $value) {
                $url .= '?'.$key.'='.$value;
            }
            curl_setopt($curl, CURLOPT_URL, $url);
        }else{
            curl_setopt($curl, CURLOPT_URL, $url);
        }
        var_dump($url);die;
        // }else{
              
        // }
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 1);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //执行命令
        $data = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
        //显示获得的数据
        // print_r($data);die;
        //对结果进行美化
        list($header, $body) = explode("\r\n\r\n", $data, 2);
        preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
        $info['cookie']  = substr($matches[1][0], 1);
        $info['content'] = $body;
        // var_dump($body);die;
        //json强制转化为数据
        $json_array = json_decode($body,true);
        // var_dump($json_array);die;
        echo "pre";
        print_r($json_array['data']['userInfo']['nickname']);
        echo "pre";die;
        if($json_array->status == -1){
            var_dump('密码与账号不一致');die;
        }else{
            $this->display('Index/index');
        }
    }

解决方案 »

  1.   

            }
            var_dump($url);die; 至少要把这句去掉
            // }else{再说返回的是 json 格式数据,你并没做相应处理
      

  2.   

    {"status":"-1","info":"代理账号密码错误!"}你又没有给出真实的账号和口令
      

  3.   

    我不知道密码加密不加密,我这样拼接$url,没有写错吧
      

  4.   

    当然写错了!
    要这样的
    http://daili.ipduoduo.com:33332/api/userinfo?user=xxxxx&password=yyyyyphp 提供有 http_build_query 函数为何不用?
    $url .= '?' .http_build_query($params);
      

  5.   

    api可以验证登陆么?不需要数据库什么的