Jump to content

Lista de utilizadores online


docas
 Share

Recommended Posts

Boas malta

Estou a criar um site em PHP onde existe uma área de registo e depois uma área para fazer login.

Se o utilizador introduzir o username e password correctos vai para uma página onde estão todos os usernames dos utilizadores online.

Existe um link para fazer logout e se isso acontecer o utilizador é retirado daquela página, mas nem toda a gente carrega nos links de Logout. A maior parte das pessoas fecham logo o browser.

Na BD MySQL existe uma tabela de utilizadores e uma coluna com o nome de 'Online' e se o utilizador fizer login correctamente o valor da coluna 'Online' passa para 'True'.

O que eu cria era um script que identifica-se quem fechou a conexão ao servidor para puder retirar o username da lista.

Eu utilizo sessoes e penso que esse era o melhor método para retirar o user da lista, mas não encontro nada que me possa ajudar...

Aqui vai o codigo fonte:

LOGIN.PHP

<?php
/*--------------------------------------MySQL---------------------------------------------
-----------------------------------------------------------------------------------------*/

$servidor_sql = "localhost";
$user_sql = "user";
$pass_sql = "pass";


mysql_connect($servidor_sql,$user_sql,$pass_sql);
mysql_select_db("users");
/*-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------*/

$login_user = $_POST["usernameL"];
$login_pass = $_POST["passwordL"];

if ($login_user == "" || $login_pass == "")
{
echo "<div align='center'><br>Para fazer login é necessário inserir o utilizador e a password.</div>";
}
else
{

/*-------------------------Verificação do Username e da Password---------------------------
-----------------------------------------------------------------------------------------*/
$sql_user = "SELECT Username FROM utilizadores WHERE Username='$login_user'";
$sql_pass = "SELECT Password FROM utilizadores WHERE Password='$login_pass'";

$query_user = mysql_query($sql_user);
$query_pass = mysql_query($sql_pass);

$verificar_user = mysql_fetch_object($query_user);
$verificar_pass = mysql_fetch_object($query_pass);


if ($verificar_user == "" || $verificar_pass == "")
{
echo "<br><div align='center'>Utilizador ou password errados.</div>";
}
else
{
session_start();
$_SESSION['user'] = $login_user;
$_SESSION['pass'] = $login_pass;
mysql_query("UPDATE utilizadores SET Online = 'True' WHERE Username = '$login_user'");
header("Location: usersonline.php");
}
}
/*-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------*/
?>

USERSONLINE.PHP

<?php
session_start();
/*--------------------------------------MySQL---------------------------------------------
-----------------------------------------------------------------------------------------*/

$servidor_sql = "localhost";
$user_sql = "user";
$pass_sql = "pass";

$con_mysql = mysql_connect($servidor_sql,$user_sql,$pass_sql);
mysql_select_db("users");

/*-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------*/
$sql_online = "SELECT Online FROM utilizadores";
$sql_user = "SELECT Username FROM utilizadores";
$query_online = mysql_query($sql_online);
$query_user = mysql_query($sql_user);

$num = 0;
while ($num < mysql_numrows($query_user))
{

$ok_online = mysql_result($query_online,$num,"Online");
$ok_user = mysql_result($query_user,$num,"Username");

if ($ok_online == "True")
echo $ok_user."<br>";

$num++;
}
?>
Link to comment
Share on other sites

Sn][pErSouL

boas!eu por acaso tenho um projecto pa apresentar daki a uns tempos e gostava de por login e registo...mas o meu stor tmb n ajuda mt!,se podesses ajudar.....ja vi k aki ja ta alguma koisa por onde possa pegar!...na percebo kuase nd de php....pois axo k nem a 1 mes tou a dar php e na foi nd de jeito..e isto n se aprende do dia pa noite:S enfim.....se poderes dar umas dicas ou isso....agradecia =)

tnks man =)=)

Link to comment
Share on other sites

Bem eu não te vou puder dar agora grandes explicações sobre PHP, porque isso até tens de ser tu a ter iniciativa de aprender, mas posso-te aconselhar artigos e bons tutorials para leres e depois tirares as tuas dúvidas.

Um dos melhores sites para aprender linguagens de programação  "online" é www.w3schools.com. Na minha opinião é dos melhores sites que existem para os que estão a começar com linguagens web. Tens de perceber um pouco de inglês mas os bons tutorials estão todos em inglês, por isso vai-te preparando...

http://www.w3schools.com/php/default.asp  -  O básico de PHP (também tens aqui um pouco de MySQL)

http://www.w3schools.com/sql/default.asp  -  MySQL

http://www.phpfreaks.com/tutorials/41/0.php  -  Sessions

http://www.php.net/  -  Se tiveres dúvidas quanto a alguma function podes procurar mais informações aqui

Procura também pelo fórum. Tem por aí muita coisa...

Fica bem

Link to comment
Share on other sites

francodacosta

Uma sugestão era em vez de online=true ser online=microtime()

basicamente a ideia é guardar a data e hora do ultimo acesso, e para saberes quem esta on-line vez por exemplo os utilizadores que o ultimo acesso foi a menos de 5 minutos.

obviamente que terias que actualizar a bd  em cada página

Link to comment
Share on other sites

Estou com um bocado de pressa por isso não consegui ler todo post... continuando...

O mês passado eu criei um script de login muito bom mesmo, como vi que queres algo haver com login e registro acho podes tirar algumas ideias do codigo do meu script...

CLIQUE AQUI!

Cumps

Link to comment
Share on other sites

saramgsilva

Estou com um bocado de pressa por isso não consegui ler todo post... continuando...

O mês passado eu criei um script de login muito bom mesmo, como vi que queres algo haver com login e registro acho podes tirar algumas ideias do codigo do meu script...

CLIQUE AQUI!

Cumps

posta aki no forum.... e indenta...pois não é facil ler o que esta lá...  :P

Link to comment
Share on other sites

Epa... gostava de poder ajudar mas nunca fiz isso... mas estou certo que há tutoriais a dizer como se faz isso.

Só duas ou tres pequenas coisas:

1.aconselho o uso da função md5() para guardar a pssa na bd.

2.Podes fazer só um pedido à bd em vez de dois e usar o mysql_fetch_array

3.A ligação à base da dados está assim um pouco a martelo

Usa uma proteção deste tipo:



<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error connecting to mysql');

$dbname = 'petstore';
mysql_select_db($dbname);
?>
Link to comment
Share on other sites

Tentei postar aqui no forúm, mas é muito grande  😁  Só não consigo entender como é que uns conseguem ler e outros não.

coloca os ficheiros em anexo....  :dontgetit:

Porquê que tenho que colocar aqui o codigo se podem ver ali ? Vê o codigo ali quem quiser quem não  quiser problema seu.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. 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.