2014-10-20 81 views
0

我有,目前每個用戶都擁有自己的子域名與自己的MySQL數據庫CI腳本。笨登錄單頁

現在我想要一個單一的登錄頁面,將檢查數據庫對登錄詳細信息,並連接到該用戶應該運行的特定數據庫。

所有CI腳本是相同的,但在數據庫中的數據是不同的。

我想創建一個新的數據庫表,其中我將鏈接哪個用戶在哪個數據庫中的。

任何人有如何創建這樣的一個想法?

+0

您可以爲每個用戶創建一個表格。 – worldask 2014-10-20 15:32:45

+0

你能解釋一下嗎 – onebeat 2014-10-20 15:51:21

+0

你能否提供一些例子 – worldask 2014-10-20 16:01:01

回答

1

只需創建一個帶有一個表的數據庫,我們稱之爲databasetable,然後用user/db數據的憑證填充它。然後,只需在您的db_connection.php正確的細節 - 頁:

<?php 
session_start(); 

$connectlogin = new mysqli ("HOST","USER_FOR_CREDENTIAL_DB","PASS_FOR_CREDENTIAL_DB","DB_CREDENTIAL_DB") or die ("nope"); 
if (isset($_POST['username'])) { 
$username = mysqli_real_escape_string($_POST['username']; //or whatever you POST from your login 
} 
else 
{ 
$username = $_SESSION['username']; 
} 


$sqla = "SELECT user_db, user_db_pass, user_db_user, user_name FROM databasetable WHERE user_name LIKE '$username'"; 
if ($result = $connectlogin -> query($sqla)) { 


    while ($row = $result->fetch_assoc()) { 
     $user_db = $row['user_db']; 
     $user_db_pass = $row['user_db_pass']; 
     $user_db_user = $row['user_db_user']; 
    } 

    /* free result set */ 
    $result->free(); 
} 
$connectlogin ->close(); 


$sql = new mysqli ("HOST",$user_db_user, $user_db_pass,$user_db); 




$sql -> set_charset ('utf8'); 
if ($sql->connect_errno) 
    {echo "NOPE 2nd";} 
$_SESSION['username'] = $username; 

?> 

出於安全原因,所有的證書應該被加密。而不是在沒有加密的情況下存儲在數據庫中。您需要指定加密。