Salut J'ai des problèmes avec la connexion et le téléchargement d'une page Web. Ce que j'essaie de faire est de se connecter au site moodle de mon école et enregistrer la page principale dans une chaîne afin que je puisse utiliser un analyseur pour sélectionner certaines informations et créer une application gwt.Télécharger moodle mainpage using cURL
c'est ce que j'ai jusqu'à présent: dans 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>
dans 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;
?>
Toute aide serait grandement apprécié. Tout ce que je reçois en ce moment est "nom d'utilisateur/mot de passe incorrect."
J'ai essayé de suivre le code affiché ici ->http://moodle.org/mod/forum/discuss.php?d=153580 Merci d'avance.