после поиска всего дня в форуме moodle и всех других поисков Я здесь для справки ... Что я делаю, это разработка сайта в моей локальной системе с использованием WAMP-сервера. Он содержит каталог moodle в подкаталоге. веб-сайт имеет свою собственную базу данных для учетной записи пользователя, а у moodle свой. По некоторому предложению я использовал внешнюю аутентификацию базы данных, которая работает нормально, но я хочу, чтобы пользователь заходил на сайт, где он должен был немедленно войти в moodle, и если пользователь выходит из интернет-сайта, он должен быть выгружен из moodle и (наоборот, если это возможно).Одиночный вход в moodle через mysite, который conatins moodle в подкаталоге
В настоящее время то, что я делаю для этого, - это регистрация пользователя с веб-сайта и вход в moodle с использованием завитка и настройка файла cookie извне. Если я напечатаю curl-ответ, он показывает страницу moodle с зарегистрированным пользователем, но если после входа я перенаправляюсь на домашнюю страницу, где у меня есть ссылка на moodle, например «MyCourse». эти ссылки перенаправляются на страницу входа в moodle с сообщением «Тайм-аут сеанса. Пожалуйста, зарегистрируйтесь ...». Мой Войти код ..
$r=mysqli_query($link, "select * from userinfo where username = '$uname' and password=SHA('$password')");
if(mysqli_num_rows($r)>0)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://localhost/mysite/moodle/login/index.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=$uname&password=$password&rememberusername=1&Login");
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
$server_output = curl_exec ($ch);
$response = curl_getinfo($ch);
curl_close ($ch);
//print_r($response);
preg_match_all('/^Set-Cookie:\s*([^\r\n]*)/mi', $server_output, $ms);
// print_r($result);
$cookies = array();
var_dump($ms);
foreach ($ms[1] as $m) {
list($name, $value) = explode('=', $m, 2);
list($namevalue) = explode(';', $value, 1);
setcookie($name, $namevalue, time()+3600*24, '/mysite/moodle', 'localhost');
}
//print_r($cookies);
//print_r($server_output);
$row=mysqli_fetch_array($r, MYSQLI_ASSOC);
$_SESSION['logged_in']="yes";
$_SESSION['uid']=$row['id'];
//header('Location:home.php');
exit(0);
}else{
echo 'Invalid username/password';
}
Пожалуйста, укажите, где я делаю неправильно или если есть лучший способ сделать это ... Спасибо.
hi ashutosh вы финиши это произведение..если вы закончили canyou, пожалуйста, объясните мне, как вы это сделали .. – user3663