Jump to content

Archived

This topic is now archived and is closed to further replies.

treilad

Who's logged in?

Recommended Posts

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.  :-\

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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]<?php

include ('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]

Share this post


Link to post
Share on other sites
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.)

Share this post


Link to post
Share on other sites
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:

<?php

if(isset($_COOKIE['ID_my_site']))

{
echo 'the username';
}


?>

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.