I have a login page (login.php) with the following code (PHP part and form):
<?php
session_start();
if (isset($_SESSION['signUpBtn']) && isset($_SESSION['role'])) {
// Redirect the user to the appropriate interface based on the role
if ($_SESSION['role'] === 'user') {
header("Location: user_index.php");
exit();
} elseif ($_SESSION['role'] === 'consultant') {
header("Location: consultant_index.php");
exit();
}
} elseif (isset($_SESSION['signUpBtn']) && !isset($_SESSION['role'])) {
header("Location: role.php");
}
?>
<div class="container">
<form id="mainForm" action="javascript:void(0)" method="post">
<div class="login">
<h2 class="textHead">MedConnect</h2>
<h2 class="logintxt">Log In to Your Account</h2>
<input type="text" id="loginemailtxt" class="loginemailtxt" name="logInEmail" placeholder="Email Address">
<input type="password" id="loginpwdtxt" class="loginpwdtxt" name="logInPassword" placeholder="Password">
<button class="loginbtn" id="loginBtn" type="submit" name="logInBtn" onclick="checkLogin()">Log In</button>
<h5 id="signuptext" onclick="showorHide('signup','login')" style="margin-top: 50px; text-align: center;">Don't have an Account? <u style="cursor: pointer;">Sign Up</u></h5>
<h6 style="text-align: center;">By clicking "Log In", you log back into your Existing Account</h6>
<h5 id="loginNoEmail">Please enter your email address</h5>
<h5 id="loginNoPassword">Please enter your password</h5>
<h5 id="loginIncorrectCreds">Incorrect Email or Password</h5>
</div>
<div class="signup" style="display: none">
<h2 class="textHead">MedConnect</h2>
<h2 class="logintxt">Create a New Account</h2>
<input id="signupnametxt" type="text" class="signupnametxt" name="signUpName" placeholder="Name">
<input id="signupemailtxt" type="text" class="signupemailtxt" name="signUpEmail" placeholder="Email Address">
<input id="signuppwdtxt" type="password" class="signuppwdtxt" name="signUpPassword" placeholder="Create Password">
<button id="signupbtn" class="signupbtn" type="submit" name="signUpBtn" onclick="checkEmail()">Sign Up</button>
<h5 id="logintext" onclick="showorHide('login','signup')" style="margin-top: 50px; text-align: center;">Already a Member? <u style="cursor: pointer;">Log In</u></h5>
<h6 style="margin-top: 5px; text-align: center;">By clicking "Sign Up", you agree to our <u style="cursor: pointer;">Terms</u> and <u style="cursor: pointer;">Privacy Policy</u></h6>
<h5 id="signupNoName" class="error-message">Please enter your name</h5>
<h5 id="signupNoEmail" class="error-message">Please enter your email address</h5>
<h5 id="signupNoPwd" class="error-message">Please create a password</h5>
<h5 id="signupValidEmail" class="error-message">Please enter a valid email address</h5>
<h5 id="signupValidPwd" class="error-message">Your password must be above 6 characters</h5>
<h5 id="signupEmailExists" class="error-message">Email is already registered</h5>
</div>
</form>
<div class="information">
<h2 class="infoHead1">All-In-One</h2>
<h2 class="infoHead2">Medical Consultancy Platform</h2>
<div class="infoIcons">
<i class="fa-solid fa-person"></i>
<i class="fa-solid fa-calendar-check"></i>
<i class="fa-solid fa-handshake-angle"></i>
<h6 style="text-align: center;">Connect with <br>Consultants</h6>
<h6 style="text-align: center;;">Book Online Interactions <br>Anytime</h6>
<h6 style="text-align: center;">Volunteer as a <br>Verified Consultant</h6>
</div>
<div class="infoIcons" style="margin-top: 20px;">
<i class="fa-brands fa-youtube"></i>
<i class="fa-solid fa-file"></i>
<i class="fa-solid fa-magnifying-glass"></i>
<h6 style="text-align: center;">Self-Educate with <br>Resources</h6>
<h6 style="text-align: center;">Get Personalised, Detailed <br>Prescriptions</h6>
<h6 style="text-align: center;">Search for specific <br>Medical Help</h6>
</div>
<h5>Non Profit • Start for Free • Cancel Anytime</h5>
</div>
</div>
<script type="text/javascript">
// Toggling between the Log In and Sign Up DIVs
function showorHide(showDivName, hideDivName) {
var showDiv = document.getElementsByClassName(showDivName);
var hideDiv = document.getElementsByClassName(hideDivName);
hideDiv[0].style.display = "none";
showDiv[0].style.display = "grid";
}
// Log In Validation System
// Input Fields
var logInEmail = document.getElementById("loginemailtxt");
var logInPwd = document.getElementById("loginpwdtxt");
// Error Messages
var loginNoEmail = document.getElementById("loginNoEmail");
var loginNoPassword = document.getElementById("loginNoPassword");
var loginIncorrectCreds = document.getElementById("loginIncorrectCreds");
// Log In button
var loginBtn = document.getElementById("loginBtn");
loginBtn.addEventListener("click", function(e) {
e.preventDefault();
if(logInEmail.value === "" && logInPwd.value === "") {
// error messages
loginNoEmail.style.visibility = 'visible';
loginNoPassword.style.visibility = 'visible';
loginIncorrectCreds.style.visibility = 'hidden';
// borders
logInEmail.style.border="2px solid red";
logInPwd.style.border="2px solid red";
} else if (logInEmail.value === "") {
// error messages
loginNoEmail.style.visibility = 'visible';
loginNoPassword.style.visibility = 'hidden';
loginIncorrectCreds.style.visibility = 'hidden';
// borders
logInEmail.style.border="2px solid red";
logInPwd.style.border="2px solid green";
} else if (logInPwd.value === "") {
// error messages
loginNoEmail.style.visibility = 'hidden';
loginNoPassword.style.visibility = 'visible';
loginIncorrectCreds.style.visibility = 'hidden';
// borders
logInEmail.style.border="2px solid green";
logInPwd.style.border="2px solid red";
} else {
// error messages
loginNoEmail.style.visibility = 'hidden';
loginNoPassword.style.visibility = 'hidden';
loginIncorrectCreds.style.visibility = 'hidden';
// borders
logInEmail.style.border="2px solid green";
logInPwd.style.border="2px solid green";
document.getElementById('mainForm').submit();
}
});
// Sign Up Validation System
// Input Fields
var signUpName = document.getElementById('signupnametxt');
var signUpEmail = document.getElementById('signupemailtxt');
var signUpPassword = document.getElementById('signuppwdtxt');
// Error Messages
var signupNoName = document.getElementById('signupNoName');
var signupNoEmail = document.getElementById('signupNoEmail');
var signupNoPwd = document.getElementById('signupNoPwd');
var signupValidEmail = document.getElementById('signupValidEmail');
var signupValidPwd = document.getElementById('signupValidPwd');
var signupEmailExists = document.getElementById('signupEmailExists');
// Sign Up button
var btnSubmit = document.getElementById('signupbtn');
btnSubmit.addEventListener('click', () => {
if(signUpName.value === "") {
signUpName.style.border="2px solid red";
signupNoName.style.visibility = 'visible';
signupEmailExists.style.visibility = 'hidden';
} else {
signUpName.style.border="2px solid green";
signupNoName.style.visibility = 'hidden';
}
if(signUpEmail.value === "") {
signUpEmail.style.border="2px solid red";
signupNoEmail.style.visibility = 'visible';
} else if (!validateEmail(signUpEmail.value)) {
signUpEmail.style.border="2px solid red";
signupValidEmail.style.visibility = 'visible';
signupEmailExists.style.visibility = 'hidden';
} else {
signUpEmail.style.border="2px solid green";
signupValidEmail.style.visibility = 'hidden';
signupNoEmail.style.visibility = 'hidden';
signupEmailExists.style.visibility = 'hidden';
}
if(signUpPassword.value === "") {
signUpPassword.style.border="2px solid red";
signupNoPwd.style.visibility = 'visible';
signupEmailExists.style.visibility = 'hidden';
} else if (signUpPassword.value.length < 6) {
signUpPassword.style.border="2px solid red";
signupValidPwd.style.visibility = 'visible';
signupEmailExists.style.visibility = 'hidden';
} else {
signUpPassword.style.border="2px solid green";
signupValidPwd.style.visibility = 'hidden';
signupNoPwd.style.visibility = 'hidden';
}
if(signUpName.value.length > 0 && signUpEmail.value.length > 0 && signUpPassword.value.length >= 6) {
document.getElementById('mainForm').submit();
}
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="script.js"></script>
<script defer src="https://use.fontawesome.com/releases/v6.4.0/js/all.js"></script>
</body>
</html>
Now, when I sign up, everything is well and good. However, after I log in and get redirected to the home page (user_index.php) and then click on the Your Profile button to go to user_profile.php, I’m faced with these two error messages:
Warning: Undefined array key "signUpEmail" in /Applications/MAMP/htdocs/medConnect/user_profile.php on line 6
Warning: Undefined array key "signUpPassword" in /Applications/MAMP/htdocs/medConnect/user_profile.php on line 7
Here is my user_profile.php code:
<?php
session_start();
$userName = $_SESSION['signUpName'];
$userEmail = $_SESSION['signUpEmail'];
$userPassword = $_SESSION['signUpPassword'];
// making the database connection
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "root";
$database = "medconnect";
$connection = mysqli_connect($dbHost, $dbUser, $dbPass, $database) or die ("Sorry, couldn't connect to the database");
if (!isset($_SESSION['signUpBtn'])) {
header("Location:login.php"); // Not Logged In (Redirect Back to Login/Sign Up Page)
} elseif (isset($_SESSION['signUpBtn']) && !isset($_SESSION['role'])) {
header("Location:role.php");
} elseif ($_SESSION['role'] === 'consultant') {
header("Location:consultant_index.php");
}
// user age
if (isset($_POST['user-age-btn'])) {
$user_age = $_POST['user_age'];
$update = "UPDATE users SET age="$user_age" WHERE email="$userEmail"";
if(mysqli_query($connection, $update)) {
// Query the user's age from the database after the update
$result = mysqli_query($connection, "SELECT age FROM users WHERE email="$userEmail"");
if ($row = mysqli_fetch_assoc($result)) {
$user_age = $row['age'];
$_SESSION['user_age'] = $user_age;
}
}
}
if (isset($_SESSION['user_age'])) {
$user_age = $_SESSION['user_age'];
} else {
$user_age = "";
}
// user gender
if (isset($_POST['user-gender-btn'])) {
$user_gender = $_POST['user_gender'];
$update = "UPDATE users SET gender="$user_gender" WHERE email="$userEmail"";
if(mysqli_query($connection, $update)) {
// Query the user's gender from the database after the update
$result = mysqli_query($connection, "SELECT gender FROM users WHERE email="$userEmail"");
if ($row = mysqli_fetch_assoc($result)) {
$gender_age = $row['gender'];
$_SESSION['user_gender'] = $user_gender;
}
}
}
if (isset($_SESSION['user_gender'])) {
$user_gender = $_SESSION['user_gender'];
} else {
$user_gender = "";
}
// user nationality
if (isset($_POST['user-nationality-btn'])) {
$user_nationality = $_POST['user_nationality'];
$update = "UPDATE users SET country = '$user_nationality' WHERE email="$userEmail"";
if(mysqli_query($connection, $update)) {
// Query the user's nationality from the database after the update
$result = mysqli_query($connection, "SELECT country FROM users WHERE email="$userEmail"");
if ($row = mysqli_fetch_assoc($result)) {
$user_nationality = $row['country'];
$_SESSION['user_nationality'] = $user_nationality;
}
}
}
if (isset($_SESSION['user_nationality'])) {
$user_nationality = $_SESSION['user_nationality'];
} else {
$user_nationality = "";
}
?>
<!-- Navigation Bar -->
<nav class="navbar">
<h1 onclick="location.href="user_index.php"" class="head">MedConnect</h1>
<ul class="nav-links">
<div class="menu">
<li><h3 onclick="location.href="user_consult.php"">Consult</h3></li>
<li><h3>Resources</h3></li>
<li><h3>About</h3></li>
<li><h3>Records</h3></li>
<li><h3 onclick="location.href="user_profile.php"" class="profile-btn" style="color: white;">Your Profile</h3></li>
</div>
</ul>
</nav>
<div class="heading-txt">
<h1>Your Profile</h1>
<h3>Welcome, <?php echo $userName; ?></h3>
</div>
<div class="container-1">
<div class="left-buttons">
<button id="personal-details-wrapper" class="wrapper wrapper-1"><i style="margin-right: 10px;" class="fa-solid fa-circle-info"></i>Personal Details</button>
<button id="contact-details-wrapper" class="wrapper wrapper-2"><i style="margin-right: 10px;" class="fa-solid fa-address-card"></i>Contact and About</button>
<button id="your-reviews-wrapper" class="wrapper wrapper-3"><i style="margin-right: 10px;" class="fa-solid fa-star"></i>Your Reviews</button>
<button id="manage-profile-wrapper" class="wrapper wrapper-4"><i style="margin-right: 10px;" class="fa-solid fa-list-check"></i>Manage Profile</button>
<button id="help-and-more-wrapper" class="wrapper wrapper-5"><i style="margin-right: 10px;" class="fa-solid fa-question"></i>Help and More</button>
</div>
<hr>
<div class="personal-details" id="personal-details">
<div class="personal-details-1">
<div class="personal-details-name">
<h2 style="color: white;">Name</h2>
<h3 style="background-color: white; padding: 8px; width: 250px; border-radius: 5px;"><?php echo $userName; ?></h3>
</div>
<div class="personal-details-email">
<h2 style="color: white;">Email Address</h2>
<h3 style="background-color: white; padding: 8px; border-radius: 5px;"><?php echo $userEmail; ?></h3>
</div>
<div class="personal-details-password">
<h2 style="color: white;">Password</h2>
<h3 id="user_password" style="background-color: white; padding: 8px; border-radius: 5px;"><?php echo $userPassword; ?></h3>
<button style="font-family: Lora; font-size: 20px; border-radius: 5px; margin-top: -50px; margin-left: 200px; width: 40px; border: none; cursor: pointer;" type="button" onclick="togglePassword('user_password')"><i class="fa-solid fa-eye"></i></button>
</div>
</div>
How can I go about fixing this? Appreciate any help. Thanks a lot.
You need to sign in to view this answers