2017-04-09 184 views
3

香草論壇2.3香草論壇SSO的PHP不登錄到論壇

我已經過了好幾次,我都看着幾乎每一個文件,我可以找到,但我堅持。

我已經下載了最新版本的香草和我已經下載了最新版本的插件jsconnect的..

我已經全部配置在管理方面的jsconnect插件設置中設置

jsConnect設置

登錄網址 http://localhost/site/login.php

註冊網址 http://localhost/site/register.php

註銷網址 http://localhost/site/logout.php

論壇位於在 http://localhost/site/forums/

驗證URL http://localhost/site/includes/auth.php

所以I L ogin到我的網站一切都很好我點擊論壇,它說我沒有登錄。

我的登錄頁面功能

function login_user($email, $password){ 

    $active = 1; 

    $db = dbconnect(); 
    $stmt = $db->prepare('SELECT * FROM users WHERE email = ? AND active= ?'); 
    $stmt->bind_param('si', $email, $active); 
    $stmt->execute(); 
    $result = $stmt->get_result(); 

    if ($result->num_rows == 1) { 
     $row = $result->fetch_array(); 

     $id = $row['id']; 
     $email = $row['email']; 
     $username = $row['username']; 
     $db_password = $row['password']; 

     isset($_POST['remember']) ? $remember = $_POST['remember'] : $remember = ""; 

     if (password_verify($password, $db_password)) { 

      $_SESSION['id'] = $id; 
      $_SESSION['email'] = $email; 
      $_SESSION['username'] = $username; 

      $fingerprint = md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']); 
      $_SESSION['last_active'] = time(); 
      $_SESSION['fingerprint'] = $fingerprint; 

      if($remember === "yes"){ 
      rememberMe($id); 
      } 

      return true; 
     } else { 
      return false; 
     } 
     return true; 
    } else { 
     return false; 
    } 
} 

我authenticate.php

<?php 

include_once '../db/db.php'; 
include_once '../db/functions.php'; 
require_once '../vanilla/plugins/jsconnect/functions.jsconnect.php'; 



// 1. Get your client ID and secret here. These must match those in your jsConnect settings. 
$clientID = "xxxxx"; 
$secret = "xxxxxxxxxx"; 



// 2. Grab the current user from your session management system or database here. 
$signedIn = true; // this is just a placeholder 

if($_SESSION['id']) 
    $signedIn = true; 


// 3. Fill in the user information in a way that Vanilla can understand. 
$user = array(); 


if ($signedIn) { 
    // CHANGE THESE FOUR LINES. 

    $user['uniqueid'] = $_SESSION['id']; 
    $user['name'] = $_SESSION['username']; 
    $user['email'] = $_SESSION['email']; 

} 

// 4. Generate the jsConnect string. 

// This should be true unless you are testing. 
// You can also use a hash name like md5, sha1 etc which must be the name as the connection settings in Vanilla. 
$secure = true; 

WriteJsConnect($user, $_GET, $clientID, $secret, $secure); 

exit(); 

?> 
+0

我所擁有的一切所需要的香草JS連接SSO PHP是這裏https://github.com/vanilla/jsConnectPHP – Case

回答

3

看來你沒有啓動此頁面上的會話,你必須使用 嘗試以下

<?php 
session_start(); 

include_once '../db/db.php'; 
include_once '../db/functions.php'; 
require_once '../vanilla/plugins/jsconnect/functions.jsconnect.php';