docas Posted June 1, 2006 at 06:36 PM Report Share #30622 Posted June 1, 2006 at 06:36 PM 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 More sharing options...
Sn][pErSouL Posted June 2, 2006 at 07:33 PM Report Share #30746 Posted June 2, 2006 at 07:33 PM 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 More sharing options...
docas Posted June 2, 2006 at 08:03 PM Author Report Share #30751 Posted June 2, 2006 at 08:03 PM 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 More sharing options...
francodacosta Posted June 2, 2006 at 08:25 PM Report Share #30755 Posted June 2, 2006 at 08:25 PM 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 More sharing options...
deathseeker25 Posted June 4, 2006 at 12:18 AM Report Share #30960 Posted June 4, 2006 at 12:18 AM Boa explicação. Implementei com sucesso num projecto pessoal 😛 Link to comment Share on other sites More sharing options...
kingless Posted June 4, 2006 at 02:41 AM Report Share #30970 Posted June 4, 2006 at 02:41 AM 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 More sharing options...
saramgsilva Posted June 4, 2006 at 03:17 PM Report Share #31046 Posted June 4, 2006 at 03:17 PM 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á... 😛 www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5 Link to comment Share on other sites More sharing options...
kingless Posted June 4, 2006 at 06:25 PM Report Share #31078 Posted June 4, 2006 at 06:25 PM Tentei postar aqui no forúm, mas é muito grande 😛 Só não consigo entender como é que uns conseguem ler e outros não. Link to comment Share on other sites More sharing options...
saramgsilva Posted June 4, 2006 at 06:43 PM Report Share #31089 Posted June 4, 2006 at 06:43 PM 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: www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5 Link to comment Share on other sites More sharing options...
pedrotuga Posted June 5, 2006 at 12:18 AM Report Share #31219 Posted June 5, 2006 at 12:18 AM 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 More sharing options...
kingless Posted June 5, 2006 at 03:14 AM Report Share #31225 Posted June 5, 2006 at 03:14 AM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now