2011-05-24 38 views
1

其實我試圖將我的系統與moodle集成。我需要的是應該這樣的工作一個功能:在Moodle上沒有密碼的身份驗證

  1. 登錄到我的系統(相同的用戶名在Moodle的DB)
  2. 用戶決定切換到Moodle的,所以他的點擊到腳本的鏈接(Moodle的服務器上 - 這兩個系統都在其他服務器上),並且從數據庫獲取有關我想要登錄的用戶的所有數據(從數據庫整行)...
  3. 由於密碼已加密,因此現在無法將其重定向到登錄表單與後params,因爲它不會工作。

有沒有什麼好的和簡單的方法來實現這個目標?我有用戶名和散列,並最終散列密碼。

我使用的是moodle 1.9(系統需求)。

在此先感謝您的幫助,

問候大衛

回答

0

這裏是我做過什麼

1 -我啓用了(外部數據庫)認證插件

2 -創建文件夾,這個PHP文件(我/ Moodle的/根/登錄/)

<?php 
    require('../config.php'); 
    $username = $_GET['id'];// 's3265'; 
    $serverName = 'moodle' ; 
    $connectionInfo = array("UID"=>"mssqlUser","PWD"=>"********","Database"=>"external_Database"); 
//I am using MSSQL2008 
     echo '<form action="' . $CFG->wwwroot . 
      '/login/index.php" method="post" name="login" id="form">'; 

    $conn = sqlsrv_connect($serverName, $connectionInfo); 

    if (!$conn) 
     {die('Could not connect: ' . sqlsrv_error());} 
    $result = sqlsrv_query($conn , "SELECT * FROM Users WHERE LoginID = '" . $username . "'"); 

    var_dump($conn, $result); 
    while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) 
    { 
      echo $row['FName'] . " " . $row['LName'] . ", please wait. . ."; 
     $password = $row['LoginPassword']; 
    } 
    sqlsrv_close($conn); 
?> 
     <p><input type="hidden" name="username" value="<?php echo $username ?>"> 
       <p><input type="hidden" name="password" value="<?php echo $password ?>"> 

     <script language="JavaScript"> 
      function Validate(){document.login.submit();} 

      Validate(); 
     </script> 

</form> 

3 -假設你被點名了RHR文件(T est.php) 現在你的鏈接應該看起來像(http://your_domain/moodle/login/test.php?id=yourusername) 對我來說這是工作,但。 。 。我不關心安全。 。 。如果你這樣做。 。 。你必須添加一些東西到這個