ホームページ  >  記事  >  バックエンド開発  >  学校システムの朝のランニングデータを取得するために模擬ログインを使用しましたが、失敗しました。教えてください。

学校システムの朝のランニングデータを取得するために模擬ログインを使用しましたが、失敗しました。教えてください。

WBOY
WBOYオリジナル
2016-06-13 11:57:15966ブラウズ

学校システムの朝のランニングデータを取得するために模擬ログインを使用しましたが、失敗しました。マスターにアドバイスを求めてください
最近、PHP の模擬ログインを学習しており、学校の体育システムで練習したいと考えていました。 、しかし失敗しました。私のコードのどこが間違っているのか教えてください。

[一部情報]
ログインシステムアドレス: http://210.35.75.247:8080/student/studentFrame.jsp
(ユーザー名: 1101001、パスワード: 1101001、役割: 学生)
朝のジョギングのアドレスを確認してください: http://210.35.75.247:8080/student/queryCheckInfo.jsp

[コードは次のとおりです]

<?php  <br />$cookie_file = tempnam('./temp','cookie');<br />$login_url = 'http://210.35.75.247:8080/student/studentFrame.jsp';<br />$post_fields  = 'userName=1101001&passwd=1101001';<br /><br />$ch = curl_init($login_url);<br />curl_setopt($ch, CURLOPT_HEADER, 0);<br />curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />curl_setopt($ch, CURLOPT_POST, 1);<br />curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);<br />curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);<br />curl_exec($ch);<br />curl_close($ch);<br /><br />$url = 'http://210.35.75.247:8080/student/queryCheckInfo.jsp';<br />$ch = curl_init($url);<br />curl_setopt($ch, CURLOPT_HEADER, 0);<br />curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);<br />curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);<br />curl_exec($ch);<br />curl_close($ch);<br />?>


[最初時間 投稿ありがとうございます! 】
-----解決策----------------------------
どういたしまして、私は初心者です、一緒に勉強しましょう 学びましょう
最初にいくつかの名詞を宣言します...
フレーム ページ Student/studentFrame.jsp はフォーム送信用のアクション アドレスです
学生情報ページstudent/studentInfo.jspは、フレームページのiframeで自動ロードされるsrcです
朝のランニング結果student/queryCheckInfo.jsp
firebugを使用してログインプロセスを追跡したところ、学生情報がロードされていることがわかりましたフレーム ページの iframe にはパラメータ?username=...&passwd=.... があり、実際のログインを推測します。このプロセスは学生情報ページにあるはずです。失敗したログインページをエコーなしでファイルに保存して確認してみました。フレームページの HTML は、追加のジャンプ js があることを除いて、成功したログインページの HTML とほぼ同じです。学生情報ページのJSESSIONIDを使ったログインは成功しました。フレームページと比べると違います。苦痛な管理システム

<br /><?php<br /><br />$url1 = 'http://210.35.75.247:8080/student/studentInfo.jsp';<br />$url2 = 'http://210.35.75.247:8080/student/queryCheckInfo.jsp';<br />$name = '1101001';<br />$pw = '1101001';<br />$params = array(<br />    'userName' => $name,<br />    'passwd' => $pw,<br />);<br /><br />$ch = curl_init();<br />curl_setopt($ch, CURLOPT_URL, $url1 . '?' . http_build_query($params));<br />curl_setopt($ch, CURLOPT_HEADER, 1);<br />curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />$con = curl_exec($ch);<br /><br />preg_match('/Set-Cookie: (.*);/Us', $con, $match);<br />$cookie = $match[1];<br /><br />curl_setopt($ch, CURLOPT_URL, $url2);<br />curl_setopt($ch, CURLOPT_HEADER, 0);<br />curl_setopt($ch, CURLOPT_COOKIE, $cookie);<br />$con = curl_exec($ch);<br />curl_close($ch);<br /><br />echo $con;<br /><br />

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。