--- D:\Inetpub\vhosts\appclients.in\nmvm.org\web.config ---
﻿<?xml version="1.0" encoding="utf-8"?>
<!-- the root web configuration file -->
<configuration>
  <system.web>
    <compilation tempDirectory="D:\Inetpub\vhosts\appclients.in\tmp" />
  </system.web>
</configuration>

--- D:\Inetpub\vhosts\appclients.in\nmvm.org\membership.php ---
<?php
 $apl_name = $_REQUEST['apl_name'];
 $dut_of = $_REQUEST['dut_of'];
 $dob = $_REQUEST['dob'];
 $age = $_REQUEST['age'];
 $p_address = $_REQUEST['p_address'];
 $p_station = $_REQUEST['p_station'];
 $district = $_REQUEST['district'];
 $state = $_REQUEST['state'];
 $pincode= $_REQUEST['pincode:'];
 $mobile = $_REQUEST['mobile'];
 $w_number = $_REQUEST['w_number'];
 $a_card = $_REQUEST['a_card'];
 $email = $_REQUEST['email'];
 $edu_qua = $_REQUEST['edu_qua'];
 $office_address = $_REQUEST['office_address'];
 $court_case = $_REQUEST['court_case'];
 $res_p_no_one = $_REQUEST['res_p_no_one'];
 $res_p_no_two = $_REQUEST['res_p_no_two'];

 $message = "Applicant Name: ".$apl_name."<br>S/o/D/o/W/o: ".$dut_of."<br>Date Of Birth: ".$dob."<br>age: ".$age."Present Address: ".$p_address."<br>Police Station: ".$p_station."<br>District: ".$district."<br>state: ".$state."Pincode: ".$pincode."<br>Mobile No:".$mobile."<br>Whatsapp No.: ".$w_number."<br>Aadhar Card No.: ".$a_card."E-mail: ".$email."<br>Education Qualification : ".$edu_qua."<br>Name and address of the office : ".$office_address."<br>Whether there is any case against you in a Courts : ".$court_case."<br>Reference of Two responsible person of your locality & Mobile No.: ".$res_p_no_one." Second Person ". $res_p_no_two;
 $message .="<br><br>Thanks & Regards";

include('phpmailer/class.phpmailer.php');
$mail = new PHPMailer;
$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = "nmvm.org";                 // Specify main and backup server
//$mail->Host = "Give IP Address";                 // If the above does not work.
$mail->Port = 25;                                    // Set the SMTP port
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = "info@nmvm.org";                // SMTP username
$mail->Password = "Rh6Ny8?o3ckd7Uhww";               // SMTP password
//$mail->SMTPSecure = "ssl";                            // Enable encryption, 'ssl' also accepted

$mail->From = 'info@nmvm.org';
$mail->FromName = 'nmvm';
$mail->AddAddress($email);  // Add a recipient
$mail->IsHTML(true); 

   //send mail to admin
	$sendmail_admin = $mail->AddAddress("info@nmvm.org","nmvm"); 
	$mail->Subject = "A new order from info@nmvm.org";
	$mail->Body = $message;
	//echo $mail->Send();
	//die();
	if($mail->Send()){
		  echo "<script>alert('Thankyou for contact us my team will contact you soon!')</script>";
		  echo "<script>window.location='member.html'</script>";
	}else{
		 echo "<script>window.location='/'</script>";
		 }
 
?>	

--- D:\Inetpub\vhosts\appclients.in\fruits-vegitables.nmvm.org\web.config ---
﻿<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <httpErrors>
      <remove statusCode="400" />
      <error statusCode="400" path="D:\Inetpub\vhosts\appclients.in\error_docs\bad_request.html" />
      <remove statusCode="401" />
      <error statusCode="401" path="D:\Inetpub\vhosts\appclients.in\error_docs\unauthorized.html" />
      <remove statusCode="403" />
      <error statusCode="403" path="D:\Inetpub\vhosts\appclients.in\error_docs\forbidden.html" />
      <remove statusCode="404" />
      <error statusCode="404" path="D:\Inetpub\vhosts\appclients.in\error_docs\not_found.html" />
      <remove statusCode="405" />
      <error statusCode="405" path="D:\Inetpub\vhosts\appclients.in\error_docs\method_not_allowed.html" />
      <remove statusCode="406" />
      <error statusCode="406" path="D:\Inetpub\vhosts\appclients.in\error_docs\not_acceptable.html" />
      <remove statusCode="407" />
      <error statusCode="407" path="D:\Inetpub\vhosts\appclients.in\error_docs\proxy_authentication_required.html" />
      <remove statusCode="412" />
      <error statusCode="412" path="D:\Inetpub\vhosts\appclients.in\error_docs\precondition_failed.html" />
      <remove statusCode="414" />
      <error statusCode="414" path="D:\Inetpub\vhosts\appclients.in\error_docs\request-uri_too_long.html" />
      <remove statusCode="415" />
      <error statusCode="415" path="D:\Inetpub\vhosts\appclients.in\error_docs\unsupported_media_type.html" />
      <remove statusCode="500" />
      <error statusCode="500" path="D:\Inetpub\vhosts\appclients.in\error_docs\internal_server_error.html" />
      <remove statusCode="501" />
      <error statusCode="501" path="D:\Inetpub\vhosts\appclients.in\error_docs\not_implemented.html" />
      <remove statusCode="502" />
      <error statusCode="502" path="D:\Inetpub\vhosts\appclients.in\error_docs\bad_gateway.html" />
      <remove statusCode="503" />
      <error statusCode="503" path="D:\Inetpub\vhosts\appclients.in\error_docs\maintenance.html" />
    </httpErrors>
    <tracing>
      <traceFailedRequests>
        <clear />
      </traceFailedRequests>
    </tracing>
  </system.webServer>
  <system.web>
    <compilation tempDirectory="D:\Inetpub\vhosts\appclients.in\tmp" />
  </system.web>
</configuration>

--- D:\Inetpub\vhosts\appclients.in\fruits-vegitables.nmvm.org\admin\config.php ---
<?php
$dbHost="localhost";
$dbUsername="appclien_fruit_vegetables_ur";
$dbPassword="n9k73BDn#u7Xljejh";
$dbName="appclien_fruit_vegetables_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  H:i:s'));
@session_start();
$url="https://fruits-vegitables.nmvm.org/";
?>

--- D:\Inetpub\vhosts\appclients.in\fruit-vegetables.gkaary.com\admin\config.php ---
<?php
$dbHost="localhost";
$dbUsername="appclien_fruit_vegetables_ur";
$dbPassword="n9k73BDn#u7Xljejh";
$dbName="appclien_fruit_vegetables_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  H:i:s'));
@session_start();
$url="https://fruit-vegetables.gkaary.com/";
?>

--- D:\Inetpub\vhosts\appclients.in\ekindiatravels.com\admin\config.php ---

<?php
    $dsn = "mysql: host=localhost; dbname=cineholi_ekIndia_db;";
    $db_user = "cineholi_ekIndia";
    $db_pass = "v4uB]?za)fi!";
        try{
            $conn = new PDO($dsn, $db_user, $db_pass);
            // echo "<script>alert ('success')</script>";
        }catch(PDOException $e){
            echo "connection faild";
        }
    session_start();    
?>


--- D:\Inetpub\vhosts\appclients.in\nbsentertainments.com\admin\config.php ---
<?php
$dbHost="localhost";
$dbUsername="appclien_nbs_user";
$dbPassword="Nu1!i4Gl1s3yybMaq";
$dbName="appclien_nbsentertainments_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  H:i'));
@session_start();
$url="https://nbsentertainments.com/";
//echo $currentTime;
?>

