2014-10-20 48 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; 

?> 

出于安全原因,所有的证书应该被加密。而不是在没有加密的情况下存储在数据库中。您需要指定加密。