Привет У меня возникли проблемы с входом и загрузкой веб-страницы.
Я пытаюсь войти на сайт Moodle моей школы и сохранить главную страницу в виде строки, чтобы я мог использовать парсер для получения определенной информации и создания приложения gwt.
это то, что я имею до сих пор:
в moodleLogin.html
<html>
<body>
<form name="lms" action="moodlephp.php" method="post">
<input type="text" name="username" id="username" /><br/>
<input type="password" name="password" id="password" />
<input type="hidden" name="domain" id="domain" value="students.ltu.edu.au" />
<input type="submit" name="Login" id="Login" />
</form>
<div id="test"></div>
</body>
</html>
в moodlephp.php
<?php
$username = $_POST["username"];
$password = $_POST["password"];
$domain = $_POST["domain"];
$postfields = array( "username" => $username, "password" => $password, "domain" => $domain );
$working_folder = "\cookies";
$cookiefile = tempnam($working_folder, "cookies");
$urlbase = "https://www.latrobe.edu.au/lms";
$agent = $_SERVER['HTTP_USER_AGENT'];
$debug = "";
$debughandle = "";
// get session cookies to set up the Moodle interaction
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_VERBOSE, $debug);
if ($debug) curl_setopt($ch, CURLOPT_STDERR, $debughandle);
curl_setopt($ch, CURLOPT_URL, $urlbase . "/login/index.php");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec ($ch);
curl_close ($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
if(!$cookiefile) echo('empty');
else echo($cookiefile);
curl_setopt($ch, CURLOPT_VERBOSE, $debug);
if ($debug) curl_setopt($ch, CURLOPT_STDERR, $debughandle);
curl_setopt($ch, CURLOPT_URL, $urlbase . '/login/index.php');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec ($ch);
curl_close ($ch);
if (!$result || !preg_match("/HTTP\/1.1 303 See Other/", $result))
{
unlink($cookiefile);
header("HTTP/1.0 403 Forbidden");
die("Username/password incorrect.\n");
}
// get session key
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_VERBOSE, $debug);
if ($debug) curl_setopt($ch, CURLOPT_STDERR, $debughandle);
curl_setopt($ch, CURLOPT_URL, $urlbase . "/question/import.php?courseid=" . $courseid);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec ($ch);
curl_close ($ch);
if (!preg_match("/sesskey=(\w*)/", $result, $matches))
{
unlink($cookiefile);
header("HTTP/1.0 500 Internal Server Error");
die("Could not determine sesskey.\n");
}
$sesskey = $matches[1];
echo $result;
?>
Любая помощь будет принята с благодарностью. Все, что я сейчас получаю, это "Неверное имя пользователя / пароль".
Я пытался следовать указанному здесь коду -> http://moodle.org/mod/forum/discuss.php?d=153580
Заранее спасибо.