首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
case
数组
hash
uri
dll
select
range
bitmap
bytecode
tags
foreach
regex
timezone
stream
bash
subset
scala
filter
node.js
default
substring
datetime
php
io
uml
frameworks
golang
express
function
solr
jsp
input
email
python2
triggers
emoji
spring
include
split
javascript
hashset
list
chat
main
grid
const
lua
flutter
timestamp
netty
match
request
python3
window
js
php8
cSharp
config
header
usb
int
future
version
process
buffer
get
plugins
copy
hashcode
instance
rsa
jar
cpython
callback
random
typescript
go
vba
dockerfile
当前位置:
开发笔记
>
编程语言
> 正文
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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
php
四载相伴,与51CTO学院共成长
在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ...
[详细]
蜡笔小新 2024-12-28 08:20:07
php
Linux 系统启动故障排除指南:MBR 和 GRUB 问题
本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ...
[详细]
蜡笔小新 2024-12-27 20:40:29
php
新浪笔试题
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
function
网络链路质量监控:Smokeping部署与配置
本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ...
[详细]
蜡笔小新 2024-12-27 19:31:05
io
Dockerfile 编写与 Docker 网络配置详解
本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ...
[详细]
蜡笔小新 2024-12-27 17:31:41
php
解决Linux系统中pygraphviz安装问题
本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ...
[详细]
蜡笔小新 2024-12-27 16:44:26
io
Linux 自动化安装脚本详解
本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ...
[详细]
蜡笔小新 2024-12-27 16:33:32
php
开源软件:新时代的商业机遇与挑战
在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ...
[详细]
蜡笔小新 2024-12-27 14:49:56
php
优化联通光猫DNS服务器设置
本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ...
[详细]
蜡笔小新 2024-12-28 11:28:18
php
深入探讨JSP技术的优缺点
本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ...
[详细]
蜡笔小新 2024-12-28 11:00:33
io
PyCharm下载与安装指南
本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ...
[详细]
蜡笔小新 2024-12-28 09:42:41
io
Python配置文件读写指南
本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ...
[详细]
蜡笔小新 2024-12-28 08:39:55
php
深入理解Cookie与Session会话管理
本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ...
[详细]
蜡笔小新 2024-12-27 18:20:43
php
Xcode 中多行代码缩进技巧
本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ...
[详细]
蜡笔小新 2024-12-27 17:52:34
php
CMake跨平台开发实践
本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ...
[详细]
蜡笔小新 2024-12-27 14:43:56
jajajaja幸福_348
这个家伙很懒,什么也没留下!
Tags | 热门标签
case
数组
hash
uri
dll
select
range
bitmap
bytecode
tags
foreach
regex
timezone
stream
bash
subset
scala
filter
node.js
default
substring
datetime
php
io
uml
frameworks
golang
express
function
solr
RankList | 热门文章
1
教你一招纯HTML制作个人简历
2
不为人知的Emmet语法规则
3
html如何设置背景颜色
4
css超出部分如何设置省略号
5
css如何设置字间距
6
css如何设置li间距
7
Vue如何封装一个TodoList
8
css怎么显示svg图片
9
css 区分大小写吗
10
什么是css块元素
11
如何去掉css字体的上下空白
12
css怎么改变背景色
13
transform在html是什么意思
14
如何快速查找html中的链接
15
css怎么设置div大小?
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有