$db_connection = $_SERVER['DOCUMENT_ROOT'] . '/includes/install/database_connection.php';
if (!file_exists($db_connection)) {
require("install/xmlapi.php");
if (isset($_POST['cpname'])) {
$opts['user'] = $_POST['cpname'];
$opts['pass'] = $_POST['cppass'];
$opts['temp'] = substr(str_shuffle(md5(time())),0,'12');
$xmlapi = new xmlapi($_SERVER['HTTP_HOST']);
$xmlapi->set_port(2083);
$xmlapi->password_auth($opts['user'],$opts['pass']);
$xmlapi->set_debug(0);
$cpaneluser=$opts['user'];
$databasename="OSMP_DAT";
$databaseuser="OSMP_admin";
$databasepass=$opts['temp'];
$db = $databasename;
$user = $databaseuser;
$pass = $databasepass;
$loc = 'localhost';
$createdb = $xmlapi->api1_query($cpaneluser, "Mysql", "adddb", array($databasename));
$usr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduser", array($databaseuser, $databasepass));
$addusr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduserdb", array("".$cpaneluser."_".$databasename."", "".$cpaneluser."_".$databaseuser."", 'all'));
include ('install/installer.php');
exit;
}
if (!isset($_POST['dbhost'])) { include ('install/db_installer.php'); }
if (isset($_POST['dbhost'])) {
// save connection details to $db_connection
}
}
上記のコードは完璧に動作します。cpanel mysqlデータベースプレフィックスを取得できますか?
まず、database_connection.phpの存在を確認します。存在する場合は、データベースの詳細を含むファイルが含まれます。
もしそうでなければ、初めてのインストールを想定しています。だから、ユーザにcpanelのログインの詳細を尋ねています。スクリプトはデータベースを作成し、詳細をdatabase_connection.phpに保存します。
唯一の問題は...データベースプレフィックスです。データベースが作成されるとき、WHMにデータベース・プレフィックスがユーザー・アカウント用に設定されている場合は、データベース接頭部がデータベース名の接頭部になります。
接頭辞があるかどうかを判断する方法を知りたい場合は、それが何であるかを調べる方法を知りたいので、スクリプトはデータベース名の前に接頭辞を付けることができます。私は接頭辞が有効になっているのであれば、明らかに、デフォルトでのcPanel/WHM