0

私が取り組んでいるコードは、私がこれを作成していないため、少し混乱しています。しかし、私がやりたいのは、別のデータベースからログイン情報を取得することです。データベース接続のconfig.phpを変更するだけでは、システム全体が台無しになります。mysql_connect に異なる変数を格納して、2 つのデータベースを接続するトリックを試しました。しかし、この場合、少し混乱します。ログインプロセスでデータベース接続を一度だけ変更する別の方法はありますか?

login.php (ログイン情報が送信された後の php ファイル)

include("inc/config.php");



$connection = mysql_connect($hostname, $user, $pass) or die ("Unable to connect!");
$query = "SELECT * FROM clients WHERE name = '$name' AND password = '$password'";
$result = mysql_db_query($database, $query, $connection);
$date_in = date("Y-m-d"); 
$time_in = date("H:i:s");
$client_accesslogin = $name;



if (mysql_num_rows($result) == 1)
    {
    session_start();
 session_register('time_in');
 session_register('date_in');
 session_register('client_accesslogin');
 session_register('remoteaddr');

 $_SESSION['time_in']=$time_in;
 $_SESSION['date_in']=$date_in;
 $remoteaddr = $_SERVER['REMOTE_ADDR'];
 $ipaddr = $_SERVER['REMOTE_ADDR'];   
 $client_accesslogin = $_SESSION['client_accesslogin'];

    session_register("client_id");
    session_register("client_name");
    session_register("client_email");
    session_register("client_company");
    list($clientid, $name,$first_name,$last_name, $pass, $email, $company) = mysql_fetch_row($result);
    $client_id = $clientid;
    $client_name = $name;
    $fname=$first_name;
    $lname=$last_name;
    $client_email = $email;
    $client_company = $company;
    $cisloggedin = 'Yes';
    session_register("cisloggedin");
    session_register("fname");
    session_register("lname");
    header("Location: menu.php");
    mysql_free_result ($result);    

    mysql_close($connection);
    }
$connection = mysql_connect($hostname, $user, $pass) or die ("Unable to connect!");
$query = "SELECT * FROM admins WHERE name = '$name' AND password = '$password'";
$result = mysql_db_query($database, $query, $connection);
$date_in = date("Y-m-d"); 
$time_in = date("H:i:s");
$accesslogin = $name;




if (mysql_num_rows($result) == 1)
    {
    session_start();

 session_register('time_in');
 session_register('date_in');
 session_register('accesslogin');
 session_register('remoteaddr');

 $_SESSION['time_in']=$time_in;
 $_SESSION['date_in']=$date_in;
 $remoteaddr = $_SERVER['REMOTE_ADDR'];
 $ipaddr = $_SERVER['REMOTE_ADDR'];   
 $accesslogin = $_SESSION['accesslogin'];

    session_register("client_id");
    session_register("client_name");
    session_register("client_email");
    list($clientid, $name, $pass, $email) = mysql_fetch_row($result);
    $client_id = $clientid;
    $client_name = $name;
    $client_name = "admin";
    $client_email = $email;
    $isloggedin = 'Yes';
    session_register("isloggedin");
    header("Location: menu.php");
    mysql_free_result ($result);    

    mysql_close($connection);
    }
else
    {
    mysql_free_result ($result);    
    mysql_close($connection);

    header("Location: index.php");
    exit;
    }
?>

それはうまくいきます。しかし、含まれている config.php を削除して、接続を追加すると:

$database = "invoices"; 
$user = "root";     
$pass = "";    
$hostname = "localhost";  

ログインしません。理解できません。inc/config.php には接続に関するいくつかのコードがありますが、インクルードを使用せずに接続自体を追加できないのはなぜですか?

4

3 に答える 3

0

データベースに接続する機能と、接続を閉じる機能を作成しました。

function connect(user, pass, location)

function disconnect()

次に、最初のデータベースに接続し、操作を行います。それを閉じてから、他のデータベースへの新しい接続を開き、操作も行います。

一度に2つの接続を維持したい場合は、インスタンスを変数に保存できます

そして、やります:

mysqli_select_db($instance1, 'SELECT ...');
mysqli_select_db($instance2, 'SELECT ...');

また、クエリで変数をエスケープします:)

于 2013-02-08T12:34:36.860 に答える
0

ログイン処理用の専用ページがあると仮定してやっていますか?

その場合、新しいconfig.phpを作成して、ログインページでのみそのデータベースに接続できますか?

コードまたは構造の一部が役立ちます。

于 2013-02-08T12:34:55.850 に答える
0

mysql_select_db() 関数はアクティブな MySQL データベースを設定します。

構文

bool mysql_select_db ( string database_name [, resource link_identifier])

mysql_select_db() は、指定されたリンク識別子に関連付けられたサーバー上の既存のデータベースを選択しようとします。

成功すると TRUE を返し、失敗すると FALSE を返します。

mysql_select_db 関数を使用して、mysql サーバーでデータベースを選択できます。mysql_select_db() は、指定されたリンク識別子に関連付けられているサーバー上の現在アクティブなデータベースを選択します。リンク識別子が指定されていない場合は、最後に開かれたリンクが想定されます。リンクが開かれていない場合、関数は、引数なしで mysql_connect() が呼び出されたかのようにリンクを設定しようとします。

于 2013-02-08T12:35:22.297 に答える