MMCT TEAM
Server IP : 217.21.85.138  /  Your IP : 216.73.216.103
Web Server : LiteSpeed
System : Linux in-mum-web906.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64
User : u915722082 ( 915722082)
PHP Version : 7.4.33
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF
Directory (0755) :  /home/u915722082/public_html/sarayu/../admin/apps/../

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/u915722082/public_html/sarayu/../admin/apps/../db.php
<?php

// Set error reporting
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

// db.php
// ini_set('session.cookie_lifetime', 86400); // 24 hours
// ini_set('session.gc_maxlifetime', 86400); // 24 hours
// ini_set('session.use_cookies', 1);
// ini_set('session.use_only_cookies', 1);
// ini_set('session.cookie_secure', 1);
// ini_set('session.cookie_httponly', 1);

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

define('DEFAULT_DB_HOST', 'localhost');
define('DEFAULT_DB_USER', 'u915722082_master_db');
define('DEFAULT_DB_PASS', 'HIFIZIQtdsS2025');
define('DEFAULT_DB_NAME', 'u915722082_master_db');

class DatabaseConnection {
    private static $instance = null;
    private $connection = null;
    
    private function __construct() {
        // Try to get database credentials from session
        $db_username = isset($_SESSION['user_data']['db_username']) ? $_SESSION['user_data']['db_username'] : DEFAULT_DB_USER;
        $db_password = isset($_SESSION['user_data']['db_password']) ? $_SESSION['user_data']['db_password'] : DEFAULT_DB_PASS;
        $db_database = isset($_SESSION['user_data']['db_database']) ? $_SESSION['user_data']['db_database'] : DEFAULT_DB_NAME;
        
        try {
            $this->connection = mysqli_connect(DEFAULT_DB_HOST, $db_username, $db_password, $db_database);
            
            if (!$this->connection) {
                // If session-based connection fails, try default connection
                $this->connection = mysqli_connect(DEFAULT_DB_HOST, DEFAULT_DB_USER, DEFAULT_DB_PASS, DEFAULT_DB_NAME);
                
                if (!$this->connection) {
                    throw new Exception("Database connection failed: " . mysqli_connect_error());
                }
            }
            
            // Set charset to ensure proper encoding
            $this->connection->set_charset("utf8mb4");
            
        } catch (Exception $e) {
            error_log("Database Connection Error: " . $e->getMessage());
            throw $e;
        }
    }
    
    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new DatabaseConnection();
        }
        return self::$instance;
    }
    
    public function getConnection() {
        return $this->connection;
    }
    
    private function __clone() {}
}

// Session check function
function checkSession() {
    if (isset($_SESSION['user_data']) && !empty($_SESSION['user_data']['id'])) {
        return true;
    }
    return false;
}

// Database utility functions
function getDbConnection() {
    try {
        return DatabaseConnection::getInstance()->getConnection();
    } catch (Exception $e) {
        die("Database connection failed: " . $e->getMessage());
    }
}

// ResultSet function to fetch all rows
function resultSet($con, $sql) {
    $result = $con->query($sql);
    if (!$result) {
        error_log("SQL Error in resultSet: " . $con->error);
        return [];
    }
    
    $rows = [];
    while ($row = $result->fetch_assoc()) {
        $rows[] = $row;
    }
    return $rows;
}

// Function to fetch single row
function single($con, $sql) {
    $result = $con->query($sql);
    if (!$result) {
        error_log("SQL Error in single: " . $con->error);
        return null;
    }
    return $result->fetch_assoc();
}

// Redirect function
function redirect($url) {
    header("Location: $url");
    exit();
}

function handleLogin($email, $password) {
    // Regenerate session ID for security
    session_regenerate_id(true);
    
    try {
        $conn = getDbConnection();
        error_log("=== Login Debug Start ===");
        error_log("Attempting login for email: " . $email);
        
        // 1. Verify we're using the correct database
        $current_db = mysqli_select_db($conn, 'u915722082_master_db');
        if (!$current_db) {
            error_log("Failed to select master_db database");
            return false;
        }
        
        // 2. Check if the user exists in master_db
        $sql = "SELECT * FROM tbl_users WHERE email = ?";
        $stmt = $conn->prepare($sql);
        
        if (!$stmt) {
            error_log("Prepare failed: " . $conn->error);
            return false;
        }
        
        $stmt->bind_param('s', $email);
        if (!$stmt->execute()) {
            error_log("Execute failed: " . $stmt->error);
            return false;
        }
        
        $result = $stmt->get_result();
        
        if ($result->num_rows > 0) {
            $user = $result->fetch_assoc();
            error_log("User found with ID: " . $user['id']);
            
            // 3. Verify password match
            if ($password === $user['password']) {
                error_log("Password verified successfully");
                
                // 4. Set session data with exact structure matching your current session
                $_SESSION['user_data'] = [
                    'id' => $user['id'],
                    'email' => $user['email'],
                    'username' => $user['username'],
                    'db_username' => $user['db_username'] ?: 'root',
                    'db_password' => $user['db_password'] ?: '',
                    'db_database' => $user['db_database'] ?: '',
                    'upload_location' => $user['upload_location'] ?: 'uploads/',
                    'domain_url' => $user['domain_url'] ?: ''
                ];
                
                // 5. Set logs session variable
                $_SESSION['logs'] = $user;
                
                error_log("Session data set successfully");
                error_log(print_r($_SESSION, true));
                
                return true;
            } else {
                error_log("Password mismatch");
                error_log("Provided password: " . substr($password, 0, 1) . '***');
                error_log("Stored password length: " . strlen($user['password']));
            }
        } else {
            error_log("No user found with email: " . $email);
        }
        
        $stmt->close();
        error_log("=== Login Debug End ===");
        return false;
        
    } catch (Exception $e) {
        error_log("Login Error: " . $e->getMessage());
        error_log("=== Login Debug End with Error ===");
        return false;
    }
}

// Function to get session values
function getSessionValues() {
    return [
        'id' => $_SESSION['user_data']['id'],
        'email' => $_SESSION['user_data']['email'],
        'username' => $_SESSION['user_data']['username'],
        'db_username' => $_SESSION['user_data']['db_username'],
        'db_password' => $_SESSION['user_data']['db_password'],
        'db_database' => $_SESSION['user_data']['db_database'],
        'upload_location' => $_SESSION['user_data']['upload_location'],
        'domain_url' => $_SESSION['user_data']['domain_url']
        
       
    ];
}

function flashN($name='',$title='',$msg='',$cate='primary'){
    if(!empty($name)){
      if(!empty($msg)&&empty($_SESSION[$name])){
        $_SESSION[$name]=$name;
        $_SESSION[$name."_title"]=$title;
        $_SESSION[$name."_msg"]=$msg;
        $_SESSION[$name."_cate"]=$cate;
      }
      else if(empty($msg)&&!empty($_SESSION[$name])){
        echo "
            <div class='alert alert-dismissible bg-light-{$_SESSION[$name."_cate"]} d-flex flex-column flex-sm-row p-5 mb-10'>
                <i class='ki-duotone ki-search-list fs-1 text-{$_SESSION[$name."_cate"]} me-4 mb-5 mb-sm-0'><span class='fa fa-check-square'></span></i>
                <div class='d-flex flex-column pe-0 pe-sm-10'>
                    <h4 class='fw-semibold'>{$_SESSION[$name."_title"]}</h4>
                    <span>{$_SESSION[$name."_msg"]}</span>
                </div>
                <button type='button' class='position-absolute position-sm-relative m-2 m-sm-0 top-0 end-0 btn btn-icon ms-sm-auto' data-bs-dismiss='alert'>
                    <i class='ki-duotone ki-cross text-{$_SESSION[$name."_cate"]}'><span class='fa fa-close'></span></i>
                </button>
            </div>";
        unset($_SESSION[$name]);
        unset($_SESSION[$name."_msg"]);
        unset($_SESSION[$name."_cate"]);
      }
    }
}

$STATE=["Andhra Pradesh","Arunachal Pradesh","Assam","Bihar","Chhattisgarh","Goa","Gujarat","Haryana","Himachal Pradesh","Jharkhand","Karnataka","Kerala","Madhya Pradesh","Maharashtra","Manipur","Meghalaya","Mizoram","Nagaland","Odisha","Punjab","Rajasthan","Sikkim","Tamil Nadu","Telangana","Tripura","Uttarakhand","Uttar Pradesh","West Bengal"];

#db to user format
function date_user_format($date){
    return date("d-m-Y",strtotime($date));
}

#user to db format
function date_db_format($date){
    return date("Y-m-d",strtotime($date));
}

function convertToIndianCurrency($number) {
    $no = floor($number);
    $point = round($number - $no, 2) * 100;
    $hundred = null;
    $digits_1 = strlen($no);
    $i = 0;
    $str = array();
    $words = array(
        '0' => '', '1' => 'One', '2' => 'Two',
        '3' => 'Three', '4' => 'Four', '5' => 'Five',
        '6' => 'Six', '7' => 'Seven', '8' => 'Eight',
        '9' => 'Nine', '10' => 'Ten', '11' => 'Eleven',
        '12' => 'Twelve', '13' => 'Thirteen', '14' => 'Fourteen',
        '15' => 'Fifteen', '16' => 'Sixteen', '17' => 'Seventeen',
        '18' => 'Eighteen', '19' =>'Nineteen', '20' => 'Twenty',
        '30' => 'Thirty', '40' => 'Forty', '50' => 'Fifty',
        '60' => 'Sixty', '70' => 'Seventy',
        '80' => 'Eighty', '90' => 'Ninety'
    );
    $digits = array('', 'Hundred', 'Thousand', 'Lakh', 'Crore');
    while ($i < $digits_1) {
        $divider = ($i == 2) ? 10 : 100;
        $number = floor($no % $divider);
        $no = floor($no / $divider);
        $i += ($divider == 10) ? 1 : 2;
        if ($number) {
            $plural = (($counter = count($str)) && $number > 9) ? '' : null;
            $hundred = ($counter == 1 && $str[0]) ? ' and ' : null;
            $str [] = ($number < 21) ? $words[$number]." ". $digits[$counter]. $plural." ".$hundred
                :
                $words[floor($number / 10) * 10]." ".$words[$number % 10]." ".$digits[$counter].$plural." ".$hundred;
        } else $str[] = null;
    }
    $str = array_reverse($str);
    $result = implode('', $str);
    $points = ($point) ? ".".$words[$point / 10]." ".$words[$point = $point % 10].' Paise' : '';
    return trim($result)." Rupees ". $points ." Only";
}

$con = getDbConnection();

MMCT - 2023