当然不能成功了。
你应该取出COOKIE中存的 sessionid 并在 读取 manage.jsp 中,把 Cookie 发送过去。
当然,如果 sessionid 是通过 url 传递的,那么 就要把这个 sessionid 放到 manage.jsp 的URL后面。
你应该取出COOKIE中存的 sessionid 并在 读取 manage.jsp 中,把 Cookie 发送过去。
当然,如果 sessionid 是通过 url 传递的,那么 就要把这个 sessionid 放到 manage.jsp 的URL后面。
解决方案 »
- 菜鸟求助 从前台表单获取值输入数据库中
- 成绩表输出显示问题
- 诚聘网站PHP工程师
- PHP, 如何解析POST或GET过来的变量和值?
- 帮忙解决个DEDECMS的问题
- 想把100000显示成100,000.00 怎么弄呢?
- php程序中是不是遇到exit函数了,后面所有的程序都不执行了
- 安装PHP略有进展,但仍有问题,请问各位!
- >>>>>>>>>>>>>>>>>>>>>>>大家快来看,这里有美女没穿衣服
- 鸟儿兄或其他的高手请进 200分等着你 绝对不难
- 请教高手一个发送邮件的问题?谢谢!!!!!!!!!!!!!!!!!!!!!!!
- 急,php做为cgi连接mysql出现Can't create TCP/IP socket (10106)
Function getHTTPPage(path)
t=GetBody(Path)
getHTTPPage=BytesToBstr(t,"GB2312")
end functionFunction getbody(url)
on error resume next
dim objxmlhttp
set objxmlhttp=createobject("Microsoft.XMLHTTP")
with objxmlhttp
.open "Get",url,false,"",""
.send
getbody=.responsebody
end with
objxmlhttp.close
set objxmlhttp=nothing
end functionfunction bytestobstr(body,cset)
dim objstream
set objstream=server.createobject("adodb.stream")
with objstream
.type=1
.mode=3
.open
.write body
.position=0
.type=2
.charset=cset
bytestobstr=objstream.readtext
end with
objstream.close
set objstream=nothing
end functionurl="http://www.url.com/judge.jsp?username=admin&password=admin888"
gethtml=gethttppage(url)
url="http://www.url.com/manage.jsp"
gethtml=gethttppage(url)
response.write gethtml
%>
这个就显示正常
可能和自动跳转有关,不清除了,没有这么用过的
fopen wrappers激活了不?
我先也以为与自动跳转有关,所以我把输出输到了一个
<textarea></textarea>内但结果依然是登陆不成功我那个asp的就能成功实现,为什么php的就不行呢?唉
fopen wrappers激活了不?
是什么意思?我用getcontent("http://www.sohu.com")
返回的就是搜狐的页面,说明是可以远程抓取数据的
那如果用php应该怎么实现呢?一直不解,请大家指教
{
$fp = fsockopen($host, 80);
fputs("GET $page HTTP/1.0\r\n");
fputs("Host: $host\r\n");
if (empty($sessid))
{
fputs("Cookie: PHPSESSID=$sessid;path=/\r\n");
}
fputs("\r\n");
while(!feof($fp))
{
$content .= fgets($fp, 1024);
}
preg_match("/PHPSESSID=([0-9a-zA-Z]+);/", $content, $matches);
$i = strpos($str, "\r\n\r\n");//注意:linux下是\n\n
$a['sessionid'] = $matches[1];
$a['content'] = substr($content, $i);
}$a = getContent("www.url.com","judge.jsp?username=admin&password=admin888",'');
$b = getContent("www.url.com","manage.jsp", $a['sessionid']);
echo $b['content'];
{
...
return $a;
}
以上程序没有调试,反正就是这个原理
$client = new HTTP_Client();
$client->setDefaultHeader("Referer",$refer); $client->get($url);//这里访问登陆页面获取登陆信息.
$client->_cookieManager->_cookies["cookie name"];//获得cookie值
print_r($client); //仔细找找client里面有登陆成功后返回的cookie,将这个cookie保存起来,然后用以下方式再去读要登陆验证的页面.具体可以自己去看看pear/http/client.php和pear/http/client/cookiemanager.php
require_once 'HTTP/Client.php';
$client = new HTTP_Client();
$client->_cookieManager->addCookie("name","value");
$client->setDefaultHeader("Referer",$refer); $client->get($url);
return $client->_responses[0][body];
可以用return implode("",file($url));或者 return file_get_contents($url);上面这个代码完整一点可以这样:
//$cookies = array(); require_once 'HTTP/Client.php';
$client = new HTTP_Client();
$client->get("http://www.url.com/judge.jsp?username=admin&password=admin888");
//$cookies = $client->_cookieManager->_cookies;
//$client->_cookieManager->addCookie($cookies);
$client->get("http://www.url.com/manage.jsp"); print $client->_responses[0][body];
<?PHP
//登陆并保存COOKIE
$f = fsockopen("www.wokeyi.net",80);
$cmd = <<<EOT
GET /test/login.php?name=test&password=test HTTP/1.0
EOT;
fputs($f,$cmd);
$result = '';
$cookie = '';
$location = '';
while($line = fgets($f))
{
$result .= $line;
//取得location跟setCookie头HTTP头信息
$tmp = explode(":",$line);
if($tmp[0]=="Set-Cookie")
$cookie .= $tmp[1];
if($tmp[0]=="Location")
$location = $tmp[1];
}
fclose($f);//下面访问你要访问的页面
$f = fsockopen("www.wokeyi.net",80);
//下面的cookie就是发送前页保存下的的cookie
$cmd = <<<EOT
GET /test/test.php HTTP/1.0
cookie:$cookie
EOT;
fputs($f,$cmd);
while($line = fgets($f))
{
echo $line;
}
fclose($f);
?>
test/test.php代码
<?php
session_start();
echo "<font color='red'>".$_SESSION["login"]."</font>";
?>test/login.php代码
<?php
session_start();
session_register("login");
if($_GET["name"]=="test"&&$_GET["password"]=="test")
{
$_SESSION["login"]="Logined";
}
?>你可以测试一下
ps:100分的诱惑力果然大!!!