PHP Mysql создать папку и новую базу данных для нового зарегистрированного пользователя на моем сайте

я хочу кое-что спросить ..

Вот мое объяснение.

  1. У меня есть система php, которую пользователь может зарегистрировать и использовать мою систему учета в ней.
  2. Моя система учета завершена, она может быть установлена / создать базу данных самостоятельно, когда перейдите к примеру: www.mysystem.com/install/
  3. это невозможно для моей системы, когда новый пользователь регистрируется. он создает новую базу данных на моем сервере и создает подобласть newuser.mysystem.com и автоматически установить мою учетную систему в его / ее папку поддомен ??
  4. если это невозможно, какой следующий шаг я должен сделать?
  5. дайте мне знать, если вы, ребята, не понимаете моего объяснения. Английский мой второй язык.

0

Решение

Я хотел бы знать, насколько хорошо это сработало для вас. Я очень надеюсь, что это будущее (и в некоторой степени безопасно). Добавляйте пользователя только с правами CREATE и дампами, чтобы оставаться в безопасности.

разрешение на редактирование временных файлов
chmod 1777 /tmp

<?php
/* this is for a test website I was building */
$dbusername = "admin_user";
$dbuserpass = "secretPa$$";
$dbname="new_customer_DB"; //use a more unique name
$mysqli = new mysqli("localhost", $dbusername, $dbuserpass, "your_admin_db");

$sql = "CREATE DATABASE `".$dbname."` /*!DEFAULT CHARACTER SET utf8 */;";


if ($mysqli->query($sql) ) {
printf("$dbname successfully created.\n");
}

// dump database from master db into newly created one.
// dbname and masterdb are important
$masterdb ="customer_db_template";
$olduser= $dbusername;




$file = tempnam("/tmp", "FOO");

$content= "[client]\n";
$content.= "user=$dbusername \n";
$content.= "password=$dbuserpass \n";
$content.= "host=localhost";
file_put_contents($file, $content);

print "<hr> ";

$cmd = "mysqldump --defaults-extra-file=$file --routines --opt $masterdb | mysql --defaults-extra-file=$file --host=localhost -C $dbname;";
print $cmd;
print "<pre>";

system( $cmd   );
unlink($file); //delete right away
mysqli::close ($mysqli );
print "</pre>";
?>

Ответчики власти: как я это сделал?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]