in first codeline
function reg_user($username, $email, $pass, $cpass){
$con = Connection();
$chech_user = "SELECT * FROM user_tbl WHERE username = '$username' && email_user = '$email'";
$chech_user_result = mysqli_query($con, $chech_user);
$chech_user_nor = mysqli_num_rows($chech_user_result);
I used function for get user input username, email, passweord and Confirm Password from reg.php
if(isset($_POST['register'])){
$result = reg_user($_POST['username'], $_POST['email'],md5($_POST['pass']), md5($_POST['cpass']));
echo $result;
}
in first code i create php variable called $check_user
and assign data which from user_tbl
where username equal to $username
and email equal to email
and then I create a variable called $chech_user_result
and assign mysqli_query($con, $chech_user);
mysqli_query
function performs a query against a database.
and the i again create variable called $chech_user_nor
and assign mysqli_num_rows($chech_user_result);
inoder to that the meaning of mysqli_num_rows()
function for count data according to $chech_user_result = mysqli_query($con, $chech_user);
if(empty($username)){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Username Error</strong> Username Cannot be Empty....!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
in above code i check the $username
is not empty, if the variable empty it gives output as 'Username Cannot be Empty....!'
it's same for other 3 variable ($email
, $pass
, $cpass
)
if($pass != $cpass){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Password Error</strong> Password and Confirm Password not match..!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
in above code I check pass
and $cpass
it means password and Confirm Password is equal or not, if not equal it gives output as Password and Confirm Password not match..!
if($chech_user_nor > 0){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>User Error</strong> User Already Exists...!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
in above code I check that are there any users according to user enterd values, if there is existing user it gives output as User Already Exists...!
if there are not any user according to user added values the values insert to the database table called user_tbl
as following
$insert_user = "INSERT INTO user_tbl(username,email_user,user_pass,user_type,is_active,join_date)VALUES('$username','$email','$pass','user',0,NOW())";
$insert_user_result = mysqli_query($con, $insert_user);
in this function first codlines are same as reg_user() function.
function login_user($username, $user_pass){
$con = Connection();
$check_user = "SELECT * FROM user_tbl WHERE username = '$username' && user_pass = '$user_pass' && is_active = 1 && is_pending = 0";
$check_user_result = mysqli_query($con, $check_user);
$check_user_nor = mysqli_num_rows($check_user_result);
$check_user_row = mysqli_fetch_assoc($check_user_result);
but in last codeline i create a variable called $check_user_row
and assign mysqli_fetch_assoc($check_user_result);
the meaning of 'mysqli_fetch_assoc()' The fetch_assoc() / mysqli_fetch_assoc() function fetches a result row as an associative array.
and then i check the username and password is empty or not usoing following codelines
if(empty($username)){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Username Error</strong> Username Cannot be Empty....!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
if(empty($user_pass)){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Password Error</strong> Password Cannot be Empty....!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
now I check the user is panding user or not for that I use following codelines
$waiting_user = "SELECT * FROM user_tbl WHERE username = '$username' && user_pass = '$user_pass' && is_active = 0 && is_pending = 1";
$waiting_user_result = mysqli_query($con, $waiting_user);
$waiting_user_nor = mysqli_num_rows($waiting_user_result);
$_SESSION['waitingUser'] = $waiting_user_row['username'];
if($waiting_user_nor > 0){
header("location:waiting_user.php");
}
in above code I create a session called $_SESSION['waitingUser']
for get login user's email to check the user is pending user or not
if the user is pending user and header to waiting_user.php file
and I check are there any user according to user input values using
if($check_user_nor > 0){
then I check the user is user or an admin for that i use following codelines
if($check_user_row['user_type'] == 'user'){
setcookie('login',$check_user_row['email_user'],time()+60*60,'/');
$_SESSION['LoginSession'] = $check_user_row['email_user'];
header("location:../routes/user.php");
}
elseif($check_user_row['user_type'] == 'admin'){
setcookie('login',$check_user_row['email_user'],time()+60*60,'/');
$_SESSION['LoginSession'] = $check_user_row['email_user'];
header("location:../routes/user.php");
}
in here i use setcookie
and $_SESSION
the meaning of setcookie
is create a cookie for login user and it will expire after 1 hour (by time()+60*60,'/'
)
and lastly in this function i use following codelines
else{
if($check_user_row['is_active'] == 0){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>User Error</strong> User Deactivate....!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}else{
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>User Error</strong> User Does not Exists....!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
}
for if the user is deactivated buy admin the user can get output as User Deactivate
if there are no existing user in database user can get outupt as User Does not Exists....!
in order to this function I want to print user who is not active user and that user must be a pending user, for that i use following codeline to do that
function waiting_user(){
$con = Connection();
$waiting_user_username = strval($_SESSION['waitingUser']);
echo $waiting_user_username;
}
in here I catch the value of following session using waiting_user_username = strval($_SESSION['waitingUser']);
$_SESSION['waitingUser'] = $waiting_user_row['username'];
so that I use strval() for do that
in this function i used for password reset (forget Password) function. and first code lines I mention 2 retun values in this fucntion as username and email, so that i catch the username and password that user enter in the form
function check_otp_user($username, $email){
$con = Connection();
and other functionalities are same as other functionalities as i mention above
and this fuction I mention as following
$otp_num = rand(10000,99999);
$receiver = $email;
$subject = "Resent Password..!";
$body = "OTP For Resent Password /n GYM Workout /n/n OTP is ".$otp_num;
$sender = "From:jehankandy@gmail.com";
if(mail($receiver,$subject,$body,$sender)){
in here i use inbuild function in php called mail()
becasue, I want to send password reset OTP to user registaion email address.
if this function not working in your project, becase there are some configaration in xampp
server
and the configarations are in following link,
and
in above function i create variable called otp_num
and assign rand(10000,99999)
value to this variable.
inoder to this variable value,
I want to get on of number between 10000 and 99999 as OTP so that i use inbuild function called rand()
for get random number between 10000 and 99999
and then I hash that random number for store in database
in this function i check the user entered OTP number with database stored OTP number. For that I hash user enterd OTP because when user request an OTP it will autometicaly hash and store in database.
and the I chack user entered OTP and the currect OTP
for that I use following codeline to do that
if($check_opt_nor == 0){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>OTP Error</strong> Check Your OTP...!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}else{
if($otp_no != $check_otp_row['otp_no']){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>OTP Error</strong> Invalid OTP Number..!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
else{
header("location:update_pass.php");
}
}
if the both OTP numbers are currect the user rederect to the update_pass.php
for update the user's password
in this fucntion i used for update new password. so that I pass 4 variable for get user input values $username
, $email
, $npass
and $cnpass
for username
, email
, new password
and Confirm Password
according to this function in first code line identyfy the functuin
function update_password($username,$email,$npass,$cnpass){
$con = Connection();
and the I cheack username
, email
, new password
and Confirm Password
are empty
if(empty($username)){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Username Error : </strong> Username can not be empty...!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
if(empty($email)){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Email Error : </strong> Email Can not be empty...!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
if(empty($npass)){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Password Error : </strong> Password Can not be empty...!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
if(empty($cnpass)){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Password Error : </strong> Confirm Password can not be empty...!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
and the i check password and confirm password are same
if($npass != $cnpass){
return "<div class='alert alert-danger alert-dismissible fade show' role='alert'>
<strong>Password Error : </strong> Passwords are not match...!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
then i check are there any user in database according to user enterd value. if there is a user according to the values,
$check_user = "SELECT * FROM user_tbl WHERE username = '$username' && email_user = '$email'";
it will autometicaly update the database according to new password
$update_pass = "UPDATE user_tbl SET user_pass = '$npass' WHERE username = '$username' && email_user = '$email'";
$update_pass_result = mysqli_query($con, $update_pass);
and then i already create a session and cookie for update password now i uset cookie and destroy session
setcookie('ResetPass',NULL,time()-60*60,'/');
session_unset();
session_destroy();
header('location:login.php');
after that rederect to login.php
Taday i update the function, in oderto that whem user get OTP and update the password, the data in password reset table must be delete, if not others can reset user password
$delete_otp = "DELETE FROM pass_reset_tbl WHERE username = '$username' && email = '$email'";
$delete_otp_result = mysqli_query($con, $delete_otp);
- DEVELOP
- Project Start
- DEVELOP
- lib/layouts/header.php
- index.php
- lib/layouts/main_footer.php
- css/style.css
- DEVELOP
- docs/find_train.php
- lib/layouts/nav_bar.php
- UPDATE
- index.php
- css/style.css
- DEVELOP
- UPDATE
- css/style.css
- docs/find_train.php
- DEVELOP
- docs/gallery.php
- docs/about.php
- docs/train_routes.php
- UPDATE
- lib/layouts/main_footer.php
- css/style.css
- lib/layouts/nav_bar.php
- DEVELOP
- docs/news.php
- lib/layouts/login_footer.php
- lib/views/login.php
- lib/views/reg.php
- lib/function/config.php
- lib/function/function.php
-
- functions: reg_user()
- UPDATE
- css/style.css
- lib/layouts/nav_bar.php
- index.php
- DEVELOP
- lib/views/waiting_user.php
- UPDATE
- css/style.css
- lib/layouts/login.php
- lib/function/function.php
-
- functions login_user()
- DEVELOP
- lib/views/fpass_check.php
- UPDATE
- lib/views/login.php
- css/style.css
-
DEVELOP
-
UPDATE
- lib/views/fpass_check.php
- lib/function/function.php
-
- functions check_otp_user()
- DEVELOP
- lib/views/check_otp.php
- lib/views/update_pass.php
- UPDATE
- lib/views/fpass_check.php
- lib/function/function.php
-
- functions check_otp($otp_no)
-
DEVELOP
-
UPDATE
- lib/views/update_pass.php
- lib/function/function.php
-
- functions update_password($username,$email,$npass,$cnpass)
- DEVELOP
- lib/layouts/nav_loged.php
- lib/routes/admin.php
- css/dashboard.css
- js/script.js
- UPDATE
- lib/layouts/header.php
- lib/function/function.php
-
- update functions - update_password($username,$email,$npass,$cnpass)
- Github JehanKandy
- Twitter @JehanKandy
Copyright 2021–2022 JehanKandy. Train Ticket Booking System released under the MIT License