I'm new to web developement. trying to create a login page which processes user information and throws errors on the same page instead of redirecting to error.php. Page refreshes but doesn't show any messages on submit. Here is the code.
<?php
//check if form has been submitted
if(isset($_POST['submit'])) {
//check if the variables are null
if (empty($user) || empty($password) || empty($domain)) {
$msg = "<p>Username, Password and Domain cannot be blank</p>";
} else {
//sanitize the data
$user = htmlspecialchars (stripslashes (trim ($_POST['user'])));
$password = htmlspecialchars (stripslashes (trim ($_POST['password'])));
$domain = htmlspecialchars (stripslashes (trim ($_POST['domain'])));
//access group variables
$sausers = "user accounts not member of below groups which need admin access";
$sagroup = "user group which needs admin access";
$agroup = "user group which needs user access";
//$accesslevel = 0;
//assign LDAP variables based on user domain
if ($domain == "domain"){
$ldap_host = "childdomain.domain.com";
$ldap_user = $user."@childdomain.domain.com";
$ldap_dn = "DC=childdomain,DC=domain,DC=com";
}
//Connect to LDAP Directory
$ldap = ldap_connect($ldap_host);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS,0);
If ($bind = @ldap_bind($ldap,$ldap_user,$password)) {
//authentication against AD successful
$filter = "(sAMAccountName=".$user.")";
$attr = array("memberof");
if ($result = ldap_search($ldap, $ldap_dn, $filter, $attr)) {
$groups = ldap_get_entries($ldap, $result);
ldap_unbind($ldap);
//check if user is listed in $sausers
If(strops($sausers, $user) != false) {
//access granted - ideally redirect to admin page
$msg = "<p>Welcome Super Admin</p>";
}
//check if user is member of admin team
foreach($groups[0]['memberof'] as $group) {
// check if user is a member of admin team
if(strpos($group, $sagroup) != false) {
//access granted - ideally redirect to admin page
$msg = "<p>Welcome Super Admin</p>";
} elseif (strpos($group, $agroup) != false) {
//access granted - ideally redirect to admin page
$msg = "<p>Welcome user</p>";
}
}
} else {
//Unable to search LDAP server
ldap_unbind($ldap);
$msg = "<p>We are facing issues with LDAP search at this time. Please report this issue to us by emailing emailaddress</p>";
}
} else {
//AD authentication failed
$msg = "<p>Domain Authentication Failed!!! Please try again.</p>";
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Admin Login</title>
<link rel="stylesheet" href="css/login.css">
</head>
<body>
<div class="logincontainer">
<div class="login">
<h1>RCP Ops Admin Console Login</h1>
<form action="<?php htmlentities(urldecode($_SERVER['PHP_SELF']));?>" method="post">
<p><b></b><input type="text" name="user" value="" placeholder="user" required autocomplete="off"></p>
<p><b> </b><input type="password" name="password" value="" placeholder="Password" required autocomplete="off"></p>
<p><select name="domain" placeholder="Domain">
<option value="Select DOMAIN">DOMAIN</option>
<option value="NANET">childdomain1</option>
<option value="EUNET">childdomain2</option>
<option value="APNET">childdomain3</option>
<option value="JPNET">childdomain4</option>
</select>
</p>
<p class="submit"><input type="submit" name="submit" value="Login"></p>
</form>
</div>
</div>
<div class="error">
<?print "<p>.$msg.</p>";?>
</div>
The page will refresh and reset the form, but will not show any message.