"PHP Version 7.4.x to 8.3.x ($phpVersion detected)", 'check' => version_compare($phpVersion, '7.4.0', '>=') && version_compare($phpVersion, '8.4.0', '<') ], [ 'name' => "cURL Extension", 'check' => function_exists('curl_version') ], [ 'name' => "MySQLi Extension", 'check' => function_exists('mysqli_connect') ], [ 'name' => "GD Library", 'check' => extension_loaded('gd') ], [ 'name' => "Fileinfo Extension", 'check' => extension_loaded('fileinfo') ], [ 'name' => "Imagick", 'check' => extension_loaded('imagick') ], [ 'name' => 'ZipArchive', 'check' => class_exists('ZipArchive') ], ]; $folders = [ 'invoice' => is_writable('../invoice'), 'payment' => is_writable('../payment'), 'admin' => is_writable('../admin'), 'pp-include' => is_writable('../pp-include'), ]; $is_requirment_fill = true; if (isset($_POST['install'])) { $datahost = $_POST['datahost']; $dataport = $_POST['dataport']; $dbName = $_POST['dbName']; $dbPrefix = $_POST['dbPrefix']; $dbUser = $_POST['dbUser']; $dbPass = $_POST['dbPass']; $adminName = $_POST['adminName']; $adminEmail = $_POST['adminEmail']; $adminUser = $_POST['adminUser']; $adminPass = $_POST['adminPass']; // Validate if (empty($datahost) || empty($dataport) || empty($dbName) || empty($dbPrefix) || empty($dbUser)) { echo json_encode(["status" => "false", "message" => "Error: All database connection fields are required."]); exit(); } if (!filter_var($adminEmail, FILTER_VALIDATE_EMAIL)) { echo json_encode(["status" => "false", "message" => "Error: Invalid administrator email address."]); exit(); } // Connect to DB $conn = new mysqli($datahost, $dbUser, $dbPass, $dbName, $dataport); if ($conn->connect_error) { echo json_encode(["status" => "false", "message" => "Error: Database connection failed."]); exit(); } // Save config.php $configContent = ""; file_put_contents('../pp-config.php', $configContent); // Load and import SQL with prefix $sqlUrl = "database.sql"; $sql = file_get_contents($sqlUrl); if ($sql === false) { echo json_encode(["status" => "false", "message" => "Error: Failed to fetch SQL file."]); exit(); } // Replace __PREFIX__ with actual prefix $sql = str_replace("__PREFIX__", $dbPrefix, $sql); // Execute all queries $queries = array_filter(array_map('trim', explode(";", $sql))); foreach ($queries as $query) { if (!empty($query)) { $conn->query($query); } } $sqlUrlCurrency = "currency.sql"; $sqlContentCurrency = file_get_contents($sqlUrlCurrency); if ($sqlContentCurrency === false) { echo json_encode(["status" => "false", "message" => "Error: Failed to fetch SQL file."]); exit(); } // Replace old table name with your real one $sqlContentCurrency = str_replace("INSERT INTO `currency`", "INSERT INTO `{$dbPrefix}currency`", $sqlContentCurrency); // Run the modified SQL if ($conn->multi_query($sqlContentCurrency)) { do { $conn->store_result(); } while ($conn->more_results() && $conn->next_result()); } else { echo json_encode(["status" => "false", "message" => "Error: Failed to fetch SQL file."]); exit(); } $sqlUrlTimezone = "timezone.sql"; $sqlContentTimezone = file_get_contents($sqlUrlTimezone); if ($sqlContentTimezone === false) { echo json_encode(["status" => "false", "message" => "Error: Failed to fetch SQL file."]); exit(); } // Replace old table name with your real one $sqlContentTimezone = str_replace("INSERT INTO `timezone`", "INSERT INTO `{$dbPrefix}timezone`", $sqlContentTimezone); // Run the modified SQL if ($conn->multi_query($sqlContentTimezone)) { do { $conn->store_result(); } while ($conn->more_results() && $conn->next_result()); } else { echo json_encode(["status" => "false", "message" => "Error: Failed to fetch SQL file."]); exit(); } // Insert admin user $hashedPass = password_hash($adminPass, PASSWORD_BCRYPT); $insertAdmin = "INSERT INTO `{$dbPrefix}admins` (name, email, username, password) VALUES ('" . $conn->real_escape_string($adminName) . "', '" . $conn->real_escape_string($adminEmail) . "', '" . $conn->real_escape_string($adminUser) . "', '" . $conn->real_escape_string($hashedPass) . "')"; $conn->query($insertAdmin); $insertSettings = "INSERT INTO `{$dbPrefix}settings` (site_name) VALUES ('--')"; $conn->query($insertSettings); echo json_encode(["status" => "true", "message" => "Installation completed successfully."]); exit(); } if (isset($_POST['test'])) { $datahost = $_POST['datahost']; $dataport = $_POST['dataport']; $dbName = $_POST['dbName']; $dbPrefix = $_POST['dbPrefix']; $dbUser = $_POST['dbUser']; $dbPass = $_POST['dbPass']; $conn = @new mysqli($datahost, $dbUser, $dbPass, $dbName, $dataport); if ($conn->connect_error) { echo json_encode([ "status" => "false", "message" => "Connection failed: " . $conn->connect_error ]); } else { echo json_encode([ "status" => "true", "message" => "Database connection successful!" ]); $conn->close(); } exit(); } ?> PipraPay - Script Installer

PipraPay Script Installation

1
Requirements
2
Database
3
Administrator
4
Finish

System Requirements Check

Before proceeding with the installation, please ensure your server meets the following requirements:

PHP Requirements
  • ()
File Permissions
    $isWritable): ?>
  • / (Writable) / (Not Writable)
Please fix all requirements marked in red before proceeding with the installation.
All requirements are met. You can proceed with the installation.

Database Configuration

Please provide your database connection details:

MySQL

Recommended for most installations

Usually 'localhost' or '127.0.0.1'
The database must already exist
Optional prefix for database tables
Test

Administrator Account Setup

Create your administrator account to manage the application:

Password strength: Weak
Remember these credentials. You'll need them to access the admin panel.

Installation Complete!

Your application has been successfully installed and is ready to use.

Installation Summary
Admin URL: https:///admin/
Database Tables Created: 24
Administrator Username:
Administrator Email:
Important: For security reasons, please delete the /install directory.
Launch Application