Sunday, 15 August 2010

function - PHP unexpected results - Always returns true -



function - PHP unexpected results - Always returns true -

hi started next , adapting adam khoury's videos on creating social media network. code have seems homecoming value true users login status, having deleted cookies etc.

i have left adam's code pretty much untouched, renamed couple of variables believe, , created own function phone call functions , handle info returned. assume i've messed in how functions share info each other, not sure or rectify it.

any help maintain me headed right direction great.

<?php session_start(); require_once("includes/db_conx.php"); $login_status; $logged_user = ""; // create globally accessable variables store username , login status function datacheck() { checksession(); global $login_status, $logged_user; if (checksession() === false) { $login_status = "false"; $logged_user = ""; } else { $login_status = "true"; $logged_user = preg_replace('#[^a-z0-9_]#i', '', $_session['username']); } } // user verify function function evalloggeduser($conx,$id,$u,$p){ $sql = "select ip users userid='$id' , username='$u' , password='$p' , activated='1' limit 1"; $query = mysqli_query($conx, $sql); $numrows = mysqli_num_rows($query); if($numrows > 0){ homecoming true; } } function checksession() { global $db_conx; // checks see if user logged in , session has been created if(isset($_session["userid"]) && isset($_session["username"]) && isset($_session["password"])) { $log_id = preg_replace('#[^0-9]#', '', $_session['userid']); $log_username = preg_replace('#[^a-z0-9_]#i', '', $_session['username']); $log_password = preg_replace('#[^a-z0-9]#i', '', $_session['password']); // verify user $global_verified = evalloggeduser($db_conx,$log_id,$log_username,$log_password); } else { // check recent cookie info checkcookies(); } } function checkcookies() { global $user_verified; // checks see if user has visited site , has details logged in cookies if(isset($_cookie["id"]) && isset($_cookie["user"]) && isset($_cookie["pass"])){ $_session['userid'] = preg_replace('#[^0-9]#', '', $_cookie['id']); $_session['username'] = preg_replace('#[^a-z0-9_]#i', '', $_cookie['user']); $_session['password'] = preg_replace('#[^a-z0-9]#i', '', $_cookie['pass']); $log_id = $_session['userid']; $log_username = $_session['username']; $log_password = $_session['password']; // verify user $global_verified = evalloggeduser($db_conx,$log_id,$log_username,$log_password); if($global_verified == true){ // update lastlogin datetime field $sql = "update users set lastlogin=now() userid='$log_id' limit 1"; $query = mysqli_query($db_conx, $sql); } else { homecoming false; } } } ?>

it's hard test login script without logout script. 1 time script's logged in info saved session, @ point checksession() homecoming true until session times out or write log out script. next code log out can seek logging in again:

session_start(); $_session = array(); session_destroy();

as both of other answered suggested, you're missing homecoming value in checksession(), suspect should instead of above suggestion:

function checksession() { global $db_conx; // checks see if user logged in , session has been created if(isset($_session["userid"]) && isset($_session["username"]) && isset($_session["password"])) { $log_id = preg_replace('#[^0-9]#', '', $_session['userid']); $log_username = preg_replace('#[^a-z0-9_]#i', '', $_session['username']); $log_password = preg_replace('#[^a-z0-9]#i', '', $_session['password']); // verify user $global_verified = evalloggeduser($db_conx,$log_id,$log_username,$log_password); } else { // check recent cookie info $global_verified = checkcookies(); } homecoming $global_verified; }

php function

No comments:

Post a Comment