PHP模拟登录并获取cookie

可以使用cURL函数获取指定URL的Cookie。请使用以下代码:

<?php
file_put_contents('cookie.txt', "");  //清空本地已经生成的cookie文件内容,用于二次登录获取cookie信息
// 设置 URL 和参数
$url = '***';

// 使用 cURL 发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

$response = curl_exec($ch);
curl_close($ch);

$cookies = file_get_contents('cookie.txt');
preg_match('/PHPSESSID\s+(.*)/', $cookies, $matches);
$phpsessid = $matches[1];
echo $phpsessid;

其中,CURLOPT_COOKIEJAR和CURLOPT_COOKIEFILE选项指定了将Cookie存储在本地的文件名。在本例中,我们将Cookie存储在"cookie.txt"中。

这是一个简单的 PHP 代码示例,用于模拟 post 登录请求并获取登录成功后的 cookie:

<?php

// 设置 URL 和参数
$url = 'https://example.com/login';
$data = array('username' => 'your_username', 'password' => 'your_password');

// 使用 cURL 发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

$response = curl_exec($ch);

// 获取登录成功后的 cookie
$cookies = file_get_contents('cookie.txt');

curl_close($ch);

// 输出登录后的 cookie
echo $cookies;


注意:您需要替换登录请求的 URL(url)和登录参数(data),以适应您的需求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容