elektronika_bagisto/public/installer/AdminConfig.php

115 lines
4.0 KiB
PHP
Raw Permalink Normal View History

2021-11-30 05:09:18 +00:00
<?php
$phpbin = PHP_BINDIR . '/php';
// array to hold validation errors
$errors = array();
// array to pass back data
$data = array();
// validate the variables
// if any of these variables don't exist, add an error to our $errors array
if (empty($_POST['admin_email']))
$errors['admin_email'] = 'Email is required.';
if (empty($_POST['admin_name']))
$errors['admin_name'] = 'Name is required.';
if (empty($_POST['admin_password']))
$errors['admin_password'] = 'Password is required.';
if (empty($_POST['admin_re_password']))
$errors['admin_re_password'] = 'Re-Password is required.';
if ($_POST['admin_re_password'] !== $_POST['admin_password'])
$errors['password_match'] = 'Password & Re-Password did not match';
// return a response
// if there are any errors in our errors array, return a success boolean of false
if ( ! empty($errors)) {
// if there are items in our errors array, return those errors
$data['success'] = false;
$data['errors'] = $errors;
} else {
$location = str_replace('\\', '/', getcwd());
$currentLocation = explode("/", $location);
array_pop($currentLocation);
array_pop($currentLocation);
$desiredLocation = implode("/", $currentLocation);
$envFile = $desiredLocation . '/' . '.env';
// reading env content
$data = file($envFile);
$databaseArray = ['DB_HOST', 'DB_DATABASE', 'DB_USERNAME', 'DB_PASSWORD', 'DB_CONNECTION', 'DB_PORT'];
$key = $value = [];
if ($data) {
foreach ($data as $line) {
$line = preg_replace('/\s+/', '', $line);
$rowValues = explode('=', $line);
if (strlen($line) !== 0) {
if (in_array($rowValues[0], $databaseArray)) {
$key[] = $rowValues[0];
$value[] = $rowValues[1];
}
}
}
}
$databaseData = array_combine($key, $value);
// getting database info
$servername = $databaseData['DB_HOST'];
$username = $databaseData['DB_USERNAME'];
$password = $databaseData['DB_PASSWORD'];
$dbname = $databaseData['DB_DATABASE'];
$connection = $databaseData['DB_CONNECTION'];
$port = $databaseData['DB_PORT'];
if ($connection == 'mysql' ) {
// Create connection
@$conn = new mysqli($servername, $username, $password, $dbname, (int)$port);
// check connection
if ($conn->connect_error) {
$data['connection'] = $conn->connect_error;
}
$email = $_POST['admin_email'];
$name = $_POST['admin_name'];
$password = password_hash($_POST['admin_password'], PASSWORD_BCRYPT, ['cost' => 10]);
// Deleting migrated admin
$deleteAdmin = "DELETE FROM admins WHERE id=1";
$conn->query($deleteAdmin);
// query for insertion
$sql = "INSERT INTO admins (name, email, password, role_id, status)
VALUES ('".$name."', '".$email."', '".$password."', '1', '1')";
if ($conn->query($sql) === TRUE) {
$data['insert_success'] = 'Data Successfully inserted into database';
} else {
$data['insert_fail'] = "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
} else {
$data['support_error'] = 'Bagisto currently support MySQL only. Press OK to still continue or change you DB connection to MySQL';
}
$storage_output = exec('cd ../.. && '. $phpbin .' artisan storage:link 2>&1');
// if there are no errors process our form, then return a message
// show a message of success and provide a true success variable
$data['success'] = true;
$data['message'] = 'Success!';
}
// return all our data to an AJAX call
echo json_encode($data);