如何在同一会话中使用Curl php重定向

如何在同一会话中使用Curl php重定向,php,ssl,curl,self-signed,php-curl,Php,Ssl,Curl,Self Signed,Php Curl,您好,我正在尝试使用Curl php登录网站,然后我需要重定向到其他页面,用户应该被删除,并且该网站使用自签名证书,到目前为止我能够登录,但我不确定之后会发生什么,因此该场景为: 使用令牌、密码、名称登录到url 1 重定向到'link2'('link2'应执行操作) 我的代码如下所示: $sslCertificate = PATH to ssl certificate $$cookie_file_path = PATH TO TXT FILE $url = mylogin page //l

您好,我正在尝试使用Curl php登录网站,然后我需要重定向到其他页面,用户应该被删除,并且该网站使用自签名证书,到目前为止我能够登录,但我不确定之后会发生什么,因此该场景为:

  • 使用令牌、密码、名称登录到url 1
  • 重定向到'link2'('link2'应执行操作)
  • 我的代码如下所示:

    $sslCertificate = PATH to ssl certificate 
    $$cookie_file_path = PATH TO TXT FILE
    $url = mylogin page 
    //login
    curl_setopt($ch, CURLOPT_HTTPHEADER, array($Header ifno..etc));
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0");
    curl_setopt($ch,CURLOPT_SSLCERT , $sslCertificate);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $username , $passwrod,$token); 
    curl_exec($ch);
    $html = curl_exec($ch);
    print_r($html);
    curl_close($ch);
    
    重定向到删除页面(我不确定是否正确):

    对于登录,它可以工作,但是对于重定向到
    $url2todeleteUser
    ,我没有收到任何响应或错误,也没有任何更改

    • 我不确定我是否以正确的方式设置了会话
    • 以前是否有过类似情况的经验,或者是否有明确的代码,其中包含了我做错了什么的步骤和细节
    您应该尝试使用堆栈中稍高的库,而不仅仅是HTTP客户端。这将使以下链接、填写表格等更简单。Like或@PatrickMevzek感谢您的链接,但是对于使用Curl没有任何想法。顺便说一句,Php浏览器也将使用Curl扩展。问题是不使用Curl。这是为了有最好的API来满足您的需要。根据您的需要,我认为您需要的不仅仅是HTTP客户端。当然,你可以通过使用一个简单的HTTP客户端手工重做所有的事情,为什么你需要一个CURL来执行重定向呢?基本上,CURL用于执行请求。重定向-不是一个请求,它是一个在头层工作的“更高”的过程。只是
    标题(“位置:$url2todeleteUser”)
    正是您所寻找的。我们使用的是自签名证书,每次在测试开始之前,我都需要转到$url2todeleteUser,以便在测试之前删除用户(我使用的是Codeception-php),在互联网上遭受痛苦之后,没有使用Codeception的自签名ssl证书的明确解决方案,所以我不想打开任何浏览器,只是我想让场景类似于jemeter所做的,但以Curl为例,这样就可以在Curl中登录到网站,然后在同一会话中转到其他链接@胜利者
    $ch2 = curl_init();
    curl_setopt($ch2, CURLOPT_URL, $url2todeleteUser );
    curl_setopt($ch2, CURLOPT_CUSTOMREQUEST, "GET");
    curl_setopt($ch2,CURLOPT_COOKIEFILE,$cookie_file_path);
    curl_setopt($ch2, CURLOPT_COOKIE, "cookiename=0");
    curl_setopt($ch2,CURLOPT_SSLCERT , $sslCertificate);
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
    $html = curl_exec($ch2);
    
    var_dump($html);
    curl_close($ch2);