2014-01-08 2 views
0

после поиска всего дня в форуме 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'; 
    } 

Пожалуйста, укажите, где я делаю неправильно или если есть лучший способ сделать это ... Спасибо.

+0

hi ashutosh вы финиши это произведение..если вы закончили canyou, пожалуйста, объясните мне, как вы это сделали .. – user3663

ответ

Смежные вопросы