Ben PHP için yeni değilim, bu yüzden bu soruya en iyi yerine (ki çok yararlı olacaktır ancak) ben yapmaya çalışıyorum ne ele daha PHP temelleri kısa bir açıklama ile cevap olabilir.
Ben kullanıcı dayanarak benim uygulama için birden fazla veritabanı kurmak istiyorum. Kullanıcı günlükleri, bu DB-1 karşı doğrulamak, ve her şey için kullanılacak olan veritabanı oradan almak ne zaman.
Aşağıdaki gibi benim login.php dosyasını tanımlayın:
<?php
$db_hostname = 'localhost';
$db_database = 'testing';
$db_username = 'someuser';
$db_password = 'somepass';
?>
ve sonra aşağıdaki gibi tanımlanan başka bir PHP dosyası vardır:
<%php
require_once 'login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die ("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database)
or die ("Unable to select database: " . mysql_error());
function check_login($user, $password) {
$user = mysql_entities_fix_string($user);
$password = mysql_entities_fix_string($password);
$password = secure_password($password);
$query = "SELECT DB_NAME, DB_USER FROM USERS WHERE USER_NAME='$user' AND PASSWORD='$password'";
$result = mysql_query($query);
if (!$result) 0; //no access to the database
elseif (mysql_num_rows($result)) {
$row = mysql_fetch_row($result);
$db_database = $row[0];
$db_username = $row[1];
$db_password = $password;
return 1; //login succeeded
} else {
return 2; //login failure
}
}
?>
Ne ben merak ediyorum fonksiyon check_login sonunda () ilgili. KULLANICILAR tablo veritabanında (örneğin, 'db123522') adını ve bu veritabanı (örneğin, 'jsmith') için kullanıcı adı dönecekti varsayalım ve şifrenizi kendi tuzlu ve karma şifre olarak aynı olacaktır. Yani her kullanıcı oluşturulan kullanıcı adı ve tuzlanmış + karma şifrenizi uyan bir şifre ile, kendi veritabanı olurdu olduğunu.
Benim ikinci PHP dosyası veritabanına erişmek için başka bir işlevi olsaydı, bu durumda, nasıl ben bunu login.php gelen veritabanı tanımı yeni veritabanı tanımı kullanmak, ve olmaz sağlanması hakkında gitmek istiyorsunuz?
Ne bu PHP dosyası ve bir sonraki çağrı fonksiyonları tek görüşme arasında bellekte tutulur ve bu kullanıcılar arasında ayırt edebilirsiniz? Ben bir sonraki çağrı uygun veritabanı yükleyebilirsiniz böylece oturumuna bu bilgilerin bazılarını koymak varsa, ne olduğunu (uygulama güvenlik ödün vermeden, bana bu yapalım bilgi az miktarda olacaktır Açıkçası) oturumuna bir şifre koymak istemiyorum?
Bunu yapmak için daha iyi bir yolu (Ben orada, ama birisi bana bunu açıklayabilir veya bana doğru yönde işaret edebilir emin değilim) var mı?