Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CURL PHP登录网站不起作用_Php_Curl_Login_Web Scraping_Yii2 - Fatal编程技术网

使用CURL PHP登录网站不起作用

使用CURL PHP登录网站不起作用,php,curl,login,web-scraping,yii2,Php,Curl,Login,Web Scraping,Yii2,我在使用CURL和PHP登录网站时遇到问题 我用Firefox插件HttpRequester进行了测试,结果很好 结果登录: POST https://www.balatarin.com/sessions Content-Type: application/x-www-form-urlencoded session[login]=testeruni&session[password]=123456789&session[remember_me]=1&commit=%D9%

我在使用CURL和PHP登录网站时遇到问题

我用Firefox插件HttpRequester进行了测试,结果很好

结果登录:

POST https://www.balatarin.com/sessions
Content-Type: application/x-www-form-urlencoded
session[login]=testeruni&session[password]=123456789&session[remember_me]=1&commit=%D9%88%D8%B1%D9%88%D8%AF&utf8=%E2%9C%93&authenticity_token[![httprequester][1]][1]
 -- response --
200 OK
Server:  shield
Date:  Thu, 19 Jan 2017 13:51:54 GMT
Content-Type:  text/html; charset=utf-8
status:  200 OK
X-Frame-Options:  SAMEORIGIN
X-XSS-Protection:  1; mode=block
x-ua-compatible:  IE=Edge,chrome=1
Etag:  W/"7418542e936fbdfe20002faf11876845"
Cache-Control:  must-revalidate, private, max-age=0
Set-Cookie:  _balat_session_new=BAh7C0kiDHVzZXJfaWQGOgZFRmkD964BSSIPc2Vzc2lvbl9pZAY7AEZJIiUzZGUxMzIyN2ZhZDVmMDUzOGE3OGY0YTRhZDkzNmUyMQY7AFRJIhZpbnB1dF9kZXZpY2VfdHlwZQY7AEZJIgpNT1VTRQY7AEZJIhRob3Zlcl9zdXBwb3J0ZWQGOwBGVEkiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsGOgtub3RpY2VUOgxAY2xvc2VkRjoNQGZsYXNoZXN7BjsKSSI22YbYrtiz2Kog2YXYtNiq2LHaqSDahtmG2K8g2KjYp9mE2KfahtmHINi02YjbjNivLgY7AFQ6CUBub3cwSSIQX2NzcmZfdG9rZW4GOwBGSSIxT3krNk5nM1NTM2IreXc4SUtxbW9yN2NmMXQrdUNLWWdubFRRYmpidmtNTT0GOwBG--2c2a72f8ec27564250ba084d97998aefba4af11a; path=/; secure; HttpOnly geo=0
X-Request-Id:  521288561d7cfff0ef8fe8d72080760c
X-Runtime:  0.188862
X-Rack-Cache:  miss
Content-Encoding:  gzip
Via:  1.1 google
Alt-Svc:  clear
Expires:  Thu, 19 Jan 2017 13:51:54 GMT
X-Firefox-Spdy:  h2

但它在PHP中不使用curl登录。我测试了CURL中的所有标题,但它没有登录,只适用于HttpRequester

public function actionLoggin()
    {
        $url = 'https://www.balatarin.com/sessions';

        $headers[] = 'Content-Type: application/x-www-form-urlencoded';
        $headers[] = 'Host: www.balatarin.com';
        $headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0';
        $headers[] = 'Referer: https://www.balatarin.com/login';

        $params = array(
            'session[login]' => 'testeruni',
            'session[password]' => '123456789',
            'session[remember_me]' => '0',
            'commit' => 'ورود',
            'utf8' => '✓',
            'authenticity_token' => '',
        );

        //open connection
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_COOKIEJAR, 'bala_cookie.txt');
        curl_setopt($ch, CURLOPT_COOKIEFILE, 'bala_cookie.txt');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);

        echo $result;
    }
这是我的cookie文件:

# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

www.balatarin.com   FALSE   /   FALSE   0   logged_in   1
#HttpOnly_www.balatarin.com FALSE   /   TRUE    0   _balat_session_new  BAh7CToOcmV0dXJuX3RvMDoMdXNlcl9pZGkDj60BOhJsb2dpbl9yZXRyaWVzMEkiD3Nlc3Npb25faWQGOgZFRkkiJTgwN2ZmMDRjMGUzMzkyMDIyZWY5YzBmZTQxN2FmZWMzBjsIVA%3D%3D--d47dd61bc9900449cca69ebd727041c3946a13ba
www.balatarin.com   FALSE   /   FALSE   0   geo 0
www.balatarin.com   FALSE   /   FALSE   1516368886  corr    b8ed93fa279a469a637b

你的请求得到了什么回应?消息状态码?您可能知道这一点,但您不能从PHP登录到站点,并期望浏览器在此之后登录。PHP是在服务器(即将登录的服务器)上执行的,与浏览器无关。我们可以查看
bala_cookie.txt
的内容吗?我得到了HTTP/1.1200,但没有登录。如何检查您是否已登录?因此您链接到的cookie不适用于此站点?否则,您将获得一个cookie,其中CNAME
logged\u in
设置为
1
,这表示您确实成功登录。饼干应该是什么样子的?