<?php 
require_once('connection.php');
session_start();
	
	if(empty($_SESSION['Id'])){
		
    if(isset($_POST['Id']) && isset($_POST['Password'])){
		$Id = $_POST['Id'];
		$Password = $_POST['Password'];
		
       if(!empty($Id) && !empty($Password)){
           $sql = "select Id from employee where Id='$Id' and Password='$Password'";
            $sql_query = mysqli_query($conn, $sql);
			
			$mysqli_num_rows = mysqli_num_rows($sql_query);
			
			 if($mysqli_num_rows){
				$data = mysqli_fetch_array($sql_query);
				$Id = $data['Id'];
				
				
                $_SESSION['Id']=$Id;
				
                header("location:Employeedisplay2.php?Id=" . $_SESSION['Id'] . "");
				
       }else{
           echo 'Invalid Email Or Password!';
	   }
            }else{
               
        echo 'Fill Up All Fields!';
    }
	
	}
?>
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="css/bootstrap.css">
	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <link rel="shortcut icon" type="image/x-icon" href="upload/icon.png">
    <title>Login Form</title>
</head>
<body style="background:#CCC;">

    <div class="container">
        <div class="row">
            <div class="col-lg-4 m-auto">
                <div class="card bg-dark mt-5">
                    <div class="card-title bg-primary text-white mt-5">
                        <h3 class="text-center py-3">Login Form in POWERLINKSCTG </h3>
                    </div>
                    <div class="card-body">
                        <form action="Emplogin.php" method="post">
                            <input type="text" name="Id" placeholder=" Id" class="form-control mb-3">
                            <input type="password" name="Password" placeholder=" Password" class="form-control mb-3">
                            <button class="btn btn-success mt-3" name="Login">Login</button>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

</body>
</html>
   
<?php
	}else{
		header("location:Employeedisplay2.php?Id=" . $_SESSION['Id'] . "");
	}

?>                
