=== D:\Inetpub\vhosts\appclients.in\asws.co.in\admin\include\config.php ===
<?php
$dbHost="localhost";
$dbUsername="appclien_leatherkart";
$dbPassword="zx?pY2w72Ha5Wuizx";
$dbName="appclien_leatherkart";

$con=mysqli_connect($dbHost,$dbUsername,$dbPassword,$dbName) or die(mysqli_connect_error());
date_default_timezone_set('Asia/Calcutta');
$currentTime=strtotime(date('d-m-Y  H:i:s'));
@session_start();
?>

=== D:\Inetpub\vhosts\appclients.in\gkaary.com\admin\config.php ===
<?php
$host_name = 'localhost';
$user_name = 'appclien_wf_user';
$password = 'X9x~0hp69';
$database = 'appclien_wefast';
session_start();
$con = mysqli_connect($host_name, $user_name, $password, $database) or die(mysqli_connect_error('Failed to connect to MySQL'));

 // if ($con->connect_error){
   // die('<p>Failed to connect to MySQL: '. $con->connect_error .'</p>');
 // } else {
 //   echo '<p>Connection to MySQL server successfully established.</p>';
 // }

date_default_timezone_set('Asia/Calcutta');
$currentTime=strtotime(date('d-m-Y  H:i:s'));
$url='https://gkaary.com/';
error_reporting(0);
?>


=== D:\Inetpub\vhosts\appclients.in\mandakiniuniversity.com\admin\config.php ===
<?php
$dsn = "mysql:host=localhost;dbname=appclien_mandakin_db";
$user = "appclien_mandakin_user";
$pass = "@xj5mgx3Oy1l0TZey";
               try{
         $conn = new PDO($dsn, $user,$pass);
        //   echo "Connected";
                  }
               catch (PDOException $e){
                     echo "There is some problem in connection: " . $e->getMessage();
    }
    @session_start();
?>

=== D:\Inetpub\vhosts\appclients.in\vrihadvhcfoundation.org\newAdmin\admin\config.php ===
<?php
$dbHost="localhost";
$dbUsername="appclien_currentaffair";
$dbPassword="5RtRl8s1&jq9nYnrf";
$dbName="appclien_currentaffair";
$con=mysqli_connect($dbHost,$dbUsername,$dbPassword,$dbName) or die(mysqli_connect_error());
date_default_timezone_set('Asia/Calcutta');
$currentTime=strtotime(date('d-m-Y  H:i:s'));
@session_start();
// error_reporting(0);
?>

=== D:\Inetpub\vhosts\appclients.in\wedrive24.com\admin\config.php ===
<?php
  $host_name = 'localhost';
  $database = 'appclien_driver_db';
  $user_name = 'appclien_driver_user';
  $password = 'L7hr90ynh^M2tabeM';

$con=mysqli_connect($host_name,$user_name,$password,$database) or die(mysqli_connect_error());
date_default_timezone_set('Asia/Calcutta');
$currentTime=strtotime(date('d-m-Y his'));
@session_start();

// $url="http://localhost/Totaltruth";


?>

=== D:\Inetpub\vhosts\appclients.in\wheeldrives.com\bikeadmin\config.php ===
<?php
$host_name = 'localhost';
$user_name = 'appclien_wheeldrives_ur';
$password = 'iDUaQO!3bWeh';
$database = 'appclien_wheeldrive_db';
@session_start();
  $con = new mysqli($host_name, $user_name, $password, $database);

  if ($con->connect_error){
    //die('<p>Failed to connect to MySQL: '. $con->connect_error .'</p>');
  } else {
    //echo '<p>Connection to MySQL server successfully established.</p>';
  }
date_default_timezone_set('Asia/Calcutta');
$currentTime=strtotime(date('d-m-Y h:i:s'));
$uniqueID = strtotime(date('d-m-Y h:i:s'));
// error_reporting(0);
?>


=== D:\Inetpub\vhosts\appclients.in\glxindia.com\admin\config.php ===
<?php
$con=mysqli_connect("localhost","appclien_glxindia_ur","4gn80stGq5~cxZJbx","appclien_glxindia_db") or mysqli_connect_error();
date_default_timezone_set('Asia/Calcutta');
$currentTime=strtotime(date('d-m-Y  H:i:s'));
?>

=== D:\Inetpub\vhosts\appclients.in\lionsindustries.in\admin\config.php ===
<?php
  $host_name = 'localhost';
  $database = 'appclien_lionsindus_db';
  $user_name = 'appclien_lionsindus_user1';
  $password = '3%n5w2bth6fWpsSTt';
$con=mysqli_connect($host_name,$user_name,$password,$database) or die(mysqli_connect_error());
date_default_timezone_set('Asia/Calcutta');
$currentTime=strtotime(date('d-m-Y his'));
@session_start();
$url="https://lionsindustries.in/";
?>

=== D:\Inetpub\vhosts\appclients.in\priyanjaliayurved.in\admin\config.php ===
<?php
$dbHost="localhost";
$dbUsername="appclien_airgun_user1";
$dbPassword="bFn2n9Fd_tsq1eV4s";
$dbName="appclien_airgun_db";
$con=mysqli_connect($dbHost,$dbUsername,$dbPassword,$dbName) or die(mysqli_connect_error());
date_default_timezone_set('Asia/Calcutta');
$currentTime=strtotime(date('d-m-Y his'));
@session_start();
//$url="http://veeomi.com/";
?>

