html - Unable to close the session and logout in php -
i designed validation form takes input , checks against mysql entry login , create session , works perfect. when try destroy session , logout, doesn't work. here 3 relevant pages. note - signin.inc.php, signout.inc.php, nav.php, home.php, etc inside "include" folder. index.php outside.
index.php ->
<?php session_start(); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>digivault</title> <link rel="stylesheet" type="text/css" href="css/font-awesome.min.css"> <link rel="stylesheet" type="text/css" href="css/clean.css"> <link rel="stylesheet" type="text/css" href="css/home.css"> <link rel="stylesheet" type="text/css" href="css/index.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.css" /> </head> <body> <header> <div class="main-brand"> <?php if(isset($_session['u_id'])){ echo " <label for='menutoggle' class='menu-icon'>☰</label> "; } ?> <h2> digiv<span style="color:#ccc"><i class="fa fa-lock" aria-hidden="true"></i></span>ult</h2> </div> </header> <?php if(!isset($_session['u_id'])){ echo " <nav id='index-nav'> <ul> <li id='about-us'>about us</li> <li id='get-started'>get started</li> </ul> </nav> "; }else { include_once 'include/nav.php'; } ?> <div class="main-wrapper"> <?php if(!isset($_session['u_id'])){ include_once 'include/home.php'; } else{ include_once 'include/user.php'; } ?> </div> </body> </html> home.php ->
<div class="signin-container"> <p class="form-header" style="color:white">login</p> <form id="signin-form" action="include/signin.inc.php" method="post"> <input type="text" name="uid" placeholder="username/email"> <input type="password" name="pwd" placeholder="password"> <button type="submit" class="form-button" name="submit-signin">sign in!</button> <span id="to-register" style="padding-top:1.13em">are new?</span> </form> </div> nav.php ->
<nav class="user-nav animated bounceinleft"> <ul> <li><a href="#">home</a></li> <li><a href="#">about</a></li> <li><a href="#">form</a></li> <li><a href="#">gallery</a></li> <li><a href="#">blog</a></li> <li> <?php if(isset($_session['u_id'])){ echo " <form action='signout.inc.php' method='post'> <button type='button' name='submit-signout'>logout</button> </form> "; } ?> </li> </ul> </nav> signin.inc.php ->
<?php session_start(); if(isset($_post['submit-signin'])){ include_once 'dbh.inc.php'; $uid= mysqli_real_escape_string($conn,$_post['uid']); $pwd= mysqli_real_escape_string($conn,$_post['pwd']); if(empty($uid) || empty($pwd)){ header("location: ../index.php?signin=error"); exit(); }else { $sql= "select * users user_uid='$uid' or user_email='$uid'"; $result = mysqli_query($conn,$sql); $resultcheck = mysqli_num_rows($result); if($resultcheck < 1){ header("location: ../index.php?signin=error"); exit(); } else { if($row = mysqli_fetch_assoc($result)){ $hashedpwdcheck = password_verify($pwd, $row['user_pwd']); if($hashedpwdcheck == false){ header("location: ../index.php?signin=error"); exit(); } elseif($hashedpwdcheck == true) { $_session['u_id'] = $row['user_id']; $_session['u_first'] = $row['user_first']; $_session['u_last'] = $row['user_last']; $_session['u_email'] = $row['user_email']; $_session['u_uid'] = $row['user_uid']; header("location: ../index.php"); exit(); } } } } }else { header("location: ../index.php?signin=error"); exit(); } signout.inc.php ->
<?php if(isset($_post['submit-signout'])){ session_start(); session_unset(); session_destroy(); header("location: ../index.php"); exit(); } note - problem lies signing out, validation , signing in works put them in case if there's bug somewhere.
<button type='button' name='submit-signout'>logout</button> need <button type='submit' name='submit-signout'>logout</button>, otherwise won't submit form
Comments
Post a Comment