treilad Posted July 27, 2006 Share Posted July 27, 2006 I'm trying to create a simple code to display who's logged in.Ex: Welcome, [b]Treilad[/b].But I don't know where to start. :-\ Quote Link to comment https://forums.phpfreaks.com/topic/15816-whos-logged-in/ Share on other sites More sharing options...
brown2005 Posted July 27, 2006 Share Posted July 27, 2006 hi, what i do is when a user uses the login script i create a session['MemberID'] and use this to call the person from the members table..i.e.$sql = "SELECT * FROM members where members_id='session['MembedID']' LIMIT 1;";and then echo the result Quote Link to comment https://forums.phpfreaks.com/topic/15816-whos-logged-in/#findComment-64719 Share on other sites More sharing options...
wildteen88 Posted July 27, 2006 Share Posted July 27, 2006 It'd be better if you stored the members username in a session, then you dont need to query the database to get the username. Quote Link to comment https://forums.phpfreaks.com/topic/15816-whos-logged-in/#findComment-64720 Share on other sites More sharing options...
treilad Posted July 27, 2006 Author Share Posted July 27, 2006 That sounds like the better idea, I'm just not sure how to do that. :-[ But I'll get to work on trying. Here's my login script, if it helps.[code]<?phpinclude ('db.php');if(isset($_COOKIE['ID_my_site'])){ $username = $_COOKIE['ID_my_site']; $pass = $_COOKIE['Key_my_site']; $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error()); while($info = mysql_fetch_array( $check )) { if ($pass != $info['password']) { } else { header("Location: index.php"); } }}if (isset($_POST['submit'])) { // if form has been submitted if(!$_POST['username'] | !$_POST['pass']) { die('You did not fill in a required field.'); } // checks it against the database if (!get_magic_quotes_gpc()) { $_POST['email'] = addslashes($_POST['email']); } $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());$check2 = mysql_num_rows($check);if ($check2 == 0) { die('That user does not exist in our database. <a href=registration.php>Click Here to Register</a>'); }while($info = mysql_fetch_array( $check )) {$_POST['pass'] = stripslashes($_POST['pass']); $info['password'] = stripslashes($info['password']); $_POST['pass'] = md5($_POST['pass']); if ($_POST['pass'] != $info['password']) { die('Incorrect password, please try again.'); }else{ $_POST['username'] = stripslashes($_POST['username']); $hour = time() + 2592000; setcookie(ID_my_site, $_POST['username'], $hour);setcookie(Key_my_site, $_POST['pass'], $hour); header("Location: index.php");}}} else { ?><form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"><table border="0"><tr><td colspan=2><h1>Login</h1></td></tr><tr><td>Username:</td><td><input type="text" name="username" maxlength="40"></td></tr><tr><td>Password:</td><td><input type="password" name="pass" maxlength="50"></td></tr><tr><td colspan="2" align="right"><input type="submit" name="submit" value="Login"></td></tr></table></form><?php}?>[/code] Quote Link to comment https://forums.phpfreaks.com/topic/15816-whos-logged-in/#findComment-64721 Share on other sites More sharing options...
treilad Posted July 27, 2006 Author Share Posted July 27, 2006 I added this to the login code:$_SESSION['username'] = '$_POST['username']';-right after the setcookie() function.Could I do that and just session_start(); at the beginning of my index page, and then maybe echo the username? (That last part I don't know how to do.) Quote Link to comment https://forums.phpfreaks.com/topic/15816-whos-logged-in/#findComment-64726 Share on other sites More sharing options...
treilad Posted July 27, 2006 Author Share Posted July 27, 2006 Wait, is a session even necessary if I already have a cookie set with the username?I think I could do it if I knew how to echo something from the cookie:<?phpif(isset($_COOKIE['ID_my_site'])){echo 'the username';}?> Quote Link to comment https://forums.phpfreaks.com/topic/15816-whos-logged-in/#findComment-64727 Share on other sites More sharing options...
treilad Posted July 27, 2006 Author Share Posted July 27, 2006 Ugh. I've been trying. I can't get it. =/ Quote Link to comment https://forums.phpfreaks.com/topic/15816-whos-logged-in/#findComment-64742 Share on other sites More sharing options...
dark dude Posted July 27, 2006 Share Posted July 27, 2006 Lol, I encountered this problem earlier, I got passed it by adding:[code]$query="UPDATE Users SET LastActive=CURRENT_TIMESTAMP(NOW()) WHERE Username='$_SESSION['Username']'";mysql_query($query);[/code]to every page, and then:[code]<?$query="SELECT * FROM Users WHERE UNIX_TIMESTAMP(LastActive) > UNIX_TIMESTAMP(NOW()) - 300";$result3=mysql_query($query);$num3=mysql_numrows($result3);$i=0;$rnm2=1;while ($i <= $num3){$Username3=mysql_result($result3,$i,"Username");if($rnm2 < $num3){echo ''.$Username3.', ';} elseif($rnm2==$num3){echo ''.$Username3.'.';}$rnm2++;$i++;}?>[/code]to the place you wanna view who's online. This shows everyone who's been active in the last 5 minutes, which is close enough... Quote Link to comment https://forums.phpfreaks.com/topic/15816-whos-logged-in/#findComment-64866 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.