首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
heap
replace
shell
node.js
bash
copy
window
schema
match
bytecode
less
string
go
erlang
stream
foreach
object
dockerfile
cPlusPlus
grid
netty
list
typescript
hashtable
actionscrip
post
express
expression
format
tags
chat
emoji
instance
metadata
solr
vbscript
filter
function
hashcode
java
default
regex
rsa
php8
bit
install
substring
eval
yaml
cSharp
web3
audio
triggers
jar
c语言
hash
sum
range
md5
case
get
join
header
httpclient
timezone
hook
web
client
vba
python2
char
utf-8
cpython
python3
int
ip
email
import
keyword
当前位置:
开发笔记
>
编程语言
> 正文
php模拟登录获取SESSIONID,并则在读取网页的时候发送-PHP源码
作者:jajajaja幸福_348 | 来源:互联网 | 2018-07-17 07:55
ec(2);方法1用curl:一.先开启phpcurl函数库的步骤1).去掉windowsphp.ini文件里;extensionphp_curl.dll前面的; *用echophpinfo();查看php.ini的路径*2).把php5libeay32.dll,ssleay32.dll复制到系统目录windows
方法1用curl:
一.先开启php curl函数库的步骤
1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/
2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下
3).重启apache
二.例子
例子:
php
$COOKIE_jar
=
tempnam
(
''
./tmp
''
,
''
COOKIE
''
);
$ch
=
curl_init(); curl_setopt(
$ch
,
CURLOPT_URL
,
''
http://******
''
);
curl_setopt(
$ch
,
CURLOPT_POST
,
1
);
$request
=
''
email_address=&password=&action=
''
;
curl_setopt(
$ch
,
CURLOPT_POSTFIELDS
,
$request
);
//
把返回来的COOKIE信息保存在$COOKIE_jar文件中
curl_setopt(
$ch
,
CURLOPT_COOKIEJAR
,
$COOKIE_jar
);
//
设定返回的数据是否自动显示
curl_setopt(
$ch
,
CURLOPT_RETURNTRANSFER
,
1
);
//
设定是否显示头信息
curl_setopt(
$ch
,
CURLOPT_HEADER
,
false
);
//
设定是否输出页面内容
curl_setopt(
$ch
,
CURLOPT_NOBODY
,
false
);
curl_exec(
$ch
);
curl_close(
$ch
);
//
get data after login
$ch2
=
curl_init();
curl_setopt(
$ch2
,
CURLOPT_URL
,
''
http://*****
''
);
curl_setopt(
$ch2
,
CURLOPT_HEADER
,
false
);
curl_setopt(
$ch2
,
CURLOPT_RETURNTRANSFER
,
1
);
curl_setopt(
$ch2
,
CURLOPT_COOKIEFILE
,
$COOKIE_jar
);
$orders
=
curl_exec(
$ch2
);
echo
''''
;
echo
strip_tags
(
$orders
);
echo
''''
;
curl_close(
$ch2
);
?>
方法2用fsockopen:
php
function
GetWebContent(
$host
,
$method
,
$str
,
$sessid
=
''''
)
{
$ip
=
gethostbyname
(
$host
);
//
echo "ip=$ip
";
[email
=
$fp
=
@
fsockopen
(
$ip
,
80
]
$fp
=
@
fsockopen
(
$ip
,
80
[
/
email]);
if
(
!
$fp
)
return
;
fputs
(
$fp
,
"
$method
"
);
fputs
(
$fp
,
"
Host: $host
"
);
if
(
!
empty
(
$sessid
))
{
fputs
(
$fp
,
"
COOKIE: PHPSESSID=$sessid; path=/;
"
);
}
if
(
substr
(
trim
(
$method
)
,
0
,
4
)
==
"
POST
"
)
{
fputs
(
$fp
,
"
Content-Length:
"
.
strlen
(
$str
)
.
"
"
);
//
别忘了指定长度
}
//
fputs($fp, "Content-Type: application/x-www-form-urlencoded ");
fputs
(
$fp
,
"
Content-Type: application/x-www-form-urlencoded
"
);
fputs
(
$fp
,
"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1) )
"
);
//
add by Ew 071012
fputs
(
$fp
,
"
Connection: Keep-Alive
"
);
if
(
substr
(
trim
(
$method
)
,
0
,
4
)
==
"
POST
"
)
{
fputs
(
$fp
,
$str
.
"
"
);
}
while
(
!
feof
(
$fp
))
{
$response
.=
fgets
(
$fp
);
}
$hlen
=
strpos
(
$response
,
"
"
);
//
LINUX下是 " "
$header
=
substr
(
$response
,
0
,
$hlen
);
//
echo "header=$header
";
$entity
=
substr
(
$response
,
$hlen
+
4
);
if
(
preg_match
(
''
/PHPSESSID=([0-9a-z]+);/i
''
,
$header
,
$matches
))
{
$a
[
''
sessid
''
]
=
$matches
[
1
];
}
if
(
preg_match
(
''
/Location: ([0-9a-z_?=&#.]+)/i
''
,
$header
,
$matches
))
{
$a
[
''
location
''
]
=
$matches
[
1
];
}
$a
[
''
content
''
]
=
$entity
;
fclose
(
$fp
);
return
$a
;
}
$response
=
GetWebContent(
"
$host
"
,
"
POST /$login_page HTTP/1.0
"
,
$str
);
//
登入得到新的session_id
//...可以在这里先保存session_id
$response
=
GetWebContent(
"
$host
"
,
"
GET /$somepage HTTP/1.0
"
,
''''
,
$response
[
''
sessid
''
]);
//
使用session_id访问页面
echo
$response
[
''
location
''
]
.
$response
[
''
content
''
]
.
"
"
;
?>
<
php
windows
apache
linux
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
linux
四载相伴,与51CTO学院共成长
在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ...
[详细]
蜡笔小新 2024-12-28 08:20:07
bash
Linux 系统启动故障排除指南:MBR 和 GRUB 问题
本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ...
[详细]
蜡笔小新 2024-12-27 20:40:29
post
新浪笔试题
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
go
网络链路质量监控:Smokeping部署与配置
本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ...
[详细]
蜡笔小新 2024-12-27 19:31:05
go
Dockerfile 编写与 Docker 网络配置详解
本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ...
[详细]
蜡笔小新 2024-12-27 17:31:41
go
解决Linux系统中pygraphviz安装问题
本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ...
[详细]
蜡笔小新 2024-12-27 16:44:26
copy
Linux 自动化安装脚本详解
本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ...
[详细]
蜡笔小新 2024-12-27 16:33:32
go
开源软件:新时代的商业机遇与挑战
在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ...
[详细]
蜡笔小新 2024-12-27 14:49:56
go
在Linux系统中配置并启动ActiveMQ
本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ...
[详细]
蜡笔小新 2024-12-27 14:38:54
go
优化联通光猫DNS服务器设置
本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ...
[详细]
蜡笔小新 2024-12-28 11:28:18
go
国内BI工具迎战国际巨头Tableau,稳步崛起
尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ...
[详细]
蜡笔小新 2024-12-28 11:12:44
go
PyCharm下载与安装指南
本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ...
[详细]
蜡笔小新 2024-12-28 09:42:41
match
Python配置文件读写指南
本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ...
[详细]
蜡笔小新 2024-12-28 08:39:55
string
深入理解Cookie与Session会话管理
本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ...
[详细]
蜡笔小新 2024-12-27 18:20:43
string
Xcode 中多行代码缩进技巧
本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ...
[详细]
蜡笔小新 2024-12-27 17:52:34
jajajaja幸福_348
这个家伙很懒,什么也没留下!
Tags | 热门标签
heap
replace
shell
node.js
bash
copy
window
schema
match
bytecode
less
string
go
erlang
stream
foreach
object
dockerfile
cPlusPlus
grid
netty
list
typescript
hashtable
actionscrip
post
express
expression
format
tags
RankList | 热门文章
1
numpy计算数据的均值,标准差
2
ESP8266 – ESP8266WebServer库
3
python元组tuple
4
scrapy怎么在file_path()函数中拿到item?
5
让你明白kvm是什么
6
谁来救救我啊NSIS Error win7系统的 amp;nbsp?
7
[Hei.Captcha]Asp.NetCore跨平台图形验证码实现
8
云原生SRE
9
benchmark_ES8
10
25行代码AC_ 2017年C/C++ A组第四题 方格分割(dfs剪痕)
11
cf C. Prime Number
12
getenv() – C语言库函数
13
解决jenkins下载慢的问题:替换下载源
14
Sql中的数据处理函数
15
多线程共享全局变量
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有