Можно ли создать базу данных, пользователя, пароль с помощью php и формы (только cpanel, без WHM) - PullRequest
0 голосов
/ 31 января 2019

Я могу подключиться, но не могу создать базу данных. Подключено к базе данных

 <body>
   <?php
    //Database Connection Variables

     $servername = "localhost";
     $username = "******";
     $password = "********";
     $conn = new mysqli($servername, $username, $password);
    //The Connection and test
     if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
     }
     echo "Connected successfully";
     //If the form is submitted create the database
     if ($_SERVER["REQUEST_METHOD"] == "POST") {
     $dbname = $_POST['dbname']; 
     $user = $_POST['user'];
     $password = $_POST['password'];
     $sql = "CREATE DATABASE $dbname";
     $sql = "CREATE USER $user";
     $sql = "GRANT ALL PRIVILEGES ON $dbname.* To '$user' IDENTIFIED BY '$password'";
    if ($conn->query($sql) === FALSE) {
    echo "Error creating database: " . $conn->error;
    }
    }
    ?>

   <div class="container">

   <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
   <div class="row">

   <div class="col-25">
     <label for="dbname">New DB Name: </label>
   </div>

   <div class="col-75">
     <input type="text" name="dbname" placeholder="Enter New Database Name">

  </div>


  <div class="col-25">
     <label for="user">New User Name: </label>
   </div>

   <div class="col-75">
     <input type="text" name="user" placeholder="Enter New User Name">

  </div>


<div class="col-25">
     <label for="password">New Password: </label>
   </div>

   <div class="col-75">
     <input type="text" name="password" placeholder="Enter New Password">
     <input type="submit" name="submit" value="GO" />
  </div>

  </div>
  </div>
  </form>

Проблема (я думаю) в том, что у меня есть только cpanel и нет WHM, поэтому у меня нет пароля root mySQL.Я хочу сделать все это через форму, создать базу данных, пользователей, пароли, таблицы, загрузить данные и т. Д.

Цель состоит в том, чтобы конечный пользователь, не имеющий технических навыков, мог создавать, просматривать, добавлятьданные в маркетинговой базе данных через форму.

1 Ответ

0 голосов
/ 31 января 2019

Таким образом, получается, что не , имеющий пароль root для WHM root, является ограничением.Используя только cPanel это работает.но у вас должен быть файл xmlapi.php, загруженный на ваш сервер [ссылка ниже].

<body>
<?php
//Database Connection Variables

 include("xmlapi.php"); //your need to have this on the server same folder 

 $db_host = 'yourdomain.com'; //your URL
 $cpaneluser = 'yourcpaneluser'; // the user you use to sign into cpanel
 $cpanelpass = 'yourcpanelpassword'; // the cpanel user password
 ///If the form is submitted create the database
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
 $databasename = $_POST['dbname']; 
 $databaseuser = $_POST['user'];
 $databasepass = $_POST['password'];}
 $xmlapi = new xmlapi($db_host);    
 $xmlapi->password_auth("".$cpaneluser."","".$cpanelpass."");    
 $xmlapi->set_port(2082);
 $xmlapi->set_debug(1);//output actions in the error log 1 for true and 0 false  
 $xmlapi->set_output('array');//set this for browser output  
 //create database    
 $createdb = $xmlapi->api1_query($cpaneluser, "Mysql", "adddb", 
 array($databasename));   
 //create user 
 $usr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduser", array($databaseuser,      
 $databasepass));   
 //add user 
 $addusr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduserdb", 
 array("".$cpaneluser."_".     $databasename."", "".$cpaneluser."_".$databaseuser."", 
 'all'));
 ?>




<div class="container">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<div class="row">

   <div class="col-25">
     <label for="dbname">New DB Name: </label>
   </div>
<div class="col-75">
     <input type="text" name="dbname" placeholder="Enter New Database Name">
</div>


  <div class="col-25">
     <label for="user">New User Name: </label>
   </div>

   <div class="col-75">
     <input type="text" name="user" placeholder="Enter New User Name">

  </div>


<div class="col-25">
     <label for="password">New Password: </label>
   </div>

   <div class="col-75">
     <input type="text" name="password" placeholder="Enter New Password">
     <input type="submit" name="submit" value="GO" />
  </div>

  </div>
  </div>
  </form>

Вы можете скачать xmlapi здесь https://github.com/CpanelInc/xmlapi-php/blob/master/xmlapi.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...