Codeigniter登录单页

时间:2014-10-20 15:24:50

标签: php mysql codeigniter login

我有CI脚本,目前每个用户都有自己的子域和自己的mysql数据库。

现在,我希望有一个登录页面,可以根据登录详细信息检查数据库,并连接到用户应该运行的特定数据库。

所有CI脚本都相同,但数据库数据不同。

我正在考虑创建一个新的数据库表,我将链接哪个用户在哪个数据库中。

有人知道如何创建这个吗?

1 个答案:

答案 0 :(得分:1)

只需使用一个表创建一个数据库,让我们将其称为数据库表,并使用用户/数据库数据的凭据填充它。然后,只需在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;

?>

出于安全原因,应加密所有凭据。并且不加密就不存储在数据库中。您需要指定加密。

相关问题