php - Get information from database without signing out and back in -
i want updated information database when site refreshed instead of having log out , in.
i information form user.php when login, redirected memberpage.php. when refresh memberpage.php, if changed on database changed on memberpage aswell. if logged in isbanned_reason = 0 , change 1 on database, want change on memberpage aswell.
heres code : user.php
<?php include('password.php'); class user extends password{ private $_db; function __construct($db){ parent::__construct(); $this->_db = $db; } private function get_user_hash($username){ try { $stmt = $this->_db->prepare('select password, username, memberid, isbanned_reason, rank members username = :username , active="yes" '); $stmt->execute(array('username' => $username)); return $stmt->fetch(); } catch(pdoexception $e) { echo '<p class="bg-danger">'.$e->getmessage().'</p>'; } } public function login($username,$password){ $row = $this->get_user_hash($username); if($this->password_verify($password,$row['password']) == 1){ $_session['loggedin'] = true; $_session['username'] = $row['username']; $_session['memberid'] = $row['memberid']; $_session['rank'] = $row['rank']; $_session['isbanned_reason'] = $row['isbanned_reason']; return true; } } public function logout(){ session_destroy(); } public function is_logged_in(){ if(isset($_session['loggedin']) && $_session['loggedin'] == true){ $_session['rank']; $_session['isbanned_reason']; return true; } } } ?> memberpage.php
<?php require('includes/config.php'); //if not logged in redirect login page if(!$user->is_logged_in()){ header('location: login.php'); } //define page title $title = 'members page'; //include header template ?> <link rel="stylesheet" type="text/css" href="style/stylememberpage.css"> <?php if ($_session['isbanned_reason'] == 0) {?> <body> <center> <p> <h1 id="caption1">secret website title</h1> <h2 id="caption2">you logged in staff member</h2> <ul id="menu"> <li id="items"><a href="index.php">home</a></li> <li id="items"><a href="registrer.php">staff site</a></li> <li id="items"><a href="leaderboards.html">games</a></l1> <li id="items"><a href="contact.html">leaderboard</a></li> <li id="items"><a href="logout.php">log out</a></li> </body> </ul> </p> </center> <?php } ?> <?php if ($_session['isbanned_reason'] == 1) {?> <body> <center> <p> <h1 id="banned1">your account has been locked.</h1> <h2 id="banned2">you banned until: 12.12.2020 reason : scamming/exploit.</h2> <ul id="menu"> <li id="items"><a href="index.php">home</a></li> <li id="items"><a href="registrer.php">staff site</a></li> <li id="items"><a href="leaderboards.html">games</a></l1> <li id="items"><a href="contact.html">leaderboard</a></li> <li id="items"><a href="logout.php">log out</a></li> </body> </ul> </p> </center> <?php } ?> and, if possible. when change isbanned_reason on database, there way "apply" without user having refresh page? because want them banned when changed. how that?
you can use jquery ajax function check on server or database changed value, use setinterval function trigger ajax on every 5 seconds
try this:
jquery ajax: (on pages want trigger check continuously)
setinterval(function(){ $.ajax({ url : 'check_db.php', //url: lets have check_db.php in same directory file datatype : 'html', data : 'post', data : {user_id : 'user_id'}, success : function(response){ //catch response here server if (response == 1) { window.location.href="logout.php"; //redirecting user logout } } }) },5000);//every 5 seconds also, make sure load jquery library run jquery function on top of page head
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> if don't want redirect page login , ask re-login inside success method of ajax call, need write ajax set session variable , hide banned area. updating session variable required because if user refresh page if statement must work check banned session variable.
that's why better learn ajax clearly. link
Comments
Post a Comment