SeanSIlva 6 Denunciar post Postado Abril 3, 2015 Já to a uma semana quebrando a cabeça e não consigo uma solução que funcione. Meu sistema de login é simples e essa aqui abaixo é o codigo que quero por em ou outras páginas que vão verificar se as sessões estão ok, então faço um update no banco para gravar que o usuario estado online. <?php // Inicia a SESSAO @session_start(); // inclui o arquivo de conexao include_once'config/connect.php'; // Verifica se todas as sessões estão setadas (Estas seções são setadas na hora do login) if(isset($_SESSION['username']) && isset($_SESSION['password'])) { // Recebe os valores das seções e coloca em variaveis $username = $_SESSION['username']; $password = $_SESSION['password']; $logado = 'ONLINE'; $sql = "UPDATE usuarios SET logado = '$logado' WHERE username = '$username';"; $resultado = mysql_query($sql) or die(mysql_error()); echo 'Voce está logado como: '. $username ; } ?> Até ai tudo ok, quando u usuario faz o login cai nessa pagina e faz o update no banco, até estou penssando em organmizar melhor esse cogio para não ficar fazendo update atoa no banco toda vez que o usuario trocar de pagina. Mas o problema tem sido como setar que o usuário está offline, andei lendo que aqui no forum que devo usar aquelas funções javascript com ajax, mas já tentei de tudo e não consigo aplicar nada. Andei falando com um conhecido meu (vizinho de condomínio) que é dono de empresa de desenvolvimento de software aqui na minha cidade, o cara se formou nos EUA é fera, resumindo vou dizer o que o cara me falou sobre isso. Palavras dele: "Amigo, desiste disso. Voce tem noção da porcentagem de membros que vão acessar seu site, usando browsers padrões instalados durante a inatalaçao do windows XP, seven?? geralmente Internet explorer 6 7 8.. ou seja um mmonte de gente , então voce pensa no restante que vai usar crome, firefox.. hoje como eu trabalho mais com analise, e faço tudo para nao perder um cliente, eu não faria isso, pois duvido voce fazer isso funcionar para todos os browser e situações, o que te daria problemas enormes de analise de trafego, e tb aconteceria de usuarios online tentando mandar mensagens no seu chat para usuarios que estão offiline, porem no banco ainda mostram-se online, o que deixaria teu site sem credibilidade. resumindo desista desse offline automatico e ensine o teu usuario a clicar no botão antes de fechar o browser" E agora engole essa? Eu queria ter conhecimento pra dizer que ele está errado mas o que eu já li por ai, não me agrada muito. Preciso de uma coisa que seje eficiente e funcione sempre que: - Usuário feche o browser no X do browser no pc - Quando aconteça uma queda de luz, trave o computador ou perca a conexão com a internet - Quando o termine a seção depois de algum tempo. Não posso obrigar sempre o meu usuario sempre a clicar no botão fechar porque nunca estamos livres de uma queda de luz ou um travamento tela azul, problemas na conexão etc.. Resumindo a historia, parece que o que o quero é impossível mesmo. O que voec acham? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Abril 3, 2015 Vamos aos fatos, a única coisa que ainda não tem jeito é a morte, pro resto sempre há uma solução. A questão real é, você tem bala ($$$$$$$$$$$$$$$$$$$$) para suportar isto que você quer? Veja um exemplo simplório de um cliente sem noção que eu tenho: A algumas semanas o cara comprou um chat no theme forest (ou algum site do tipo), o chat é destes que quando você entra no site abre uma abinha perguntando se você quer ajuda e tudo mais... +/- 1 semana depois ele falou pra mim que o site dele tava lento, que antes era rápido, que não tinha mexido em nada e etc... resumo da 'estória', o tal sistema de chat bonitinho tinha passado de 1 milhão de hits, ele tava literalmente derrubando o site do cara, motivo? O chat ficava disparando informações para o servidor a cada 5s (ajax pooling), foi o jeito do desenvolvedor criar algo em tempo real, que é basicamente o que você quer. Ok, voltando para a data presente, existem maneiras de resolver isto sem disparar requisições a cada 5 segundos, claro! Só que todas elas vão consumir o seu servidor, logo, se você pensa em alocar seu sistema em uma hospedagem de R$15,00 por mês, esquece esse online/offline... agora, se você tem bala para contratar algo parrudo, implementa long polling e seja feliz. Compartilhar este post Link para o post Compartilhar em outros sites
SeanSIlva 6 Denunciar post Postado Abril 3, 2015 Isso mesmo, não tenho toda essa bala na agulha por enquanto, por isso me preocupo tanto em eu mesmo fazer com o Offline Online funcionar para todos.. Já me falaram sobre long polling varias vezes, mas vou dar mais uma tentada nisso... quem sabe mais um mês de tentativas?? kkkkk obrigado pela dica, valeuu.. Compartilhar este post Link para o post Compartilhar em outros sites
SeanSIlva 6 Denunciar post Postado Abril 3, 2015 Vamos aos fatos, a única coisa que ainda não tem jeito é a morte, pro resto sempre há uma solução. A questão real é, você tem bala ($$$$$$$$$$$$$$$$$$$$) para suportar isto que você quer? Veja um exemplo simplório de um cliente sem noção que eu tenho: A algumas semanas o cara comprou um chat no theme forest (ou algum site do tipo), o chat é destes que quando você entra no site abre uma abinha perguntando se você quer ajuda e tudo mais... +/- 1 semana depois ele falou pra mim que o site dele tava lento, que antes era rápido, que não tinha mexido em nada e etc... resumo da 'estória', o tal sistema de chat bonitinho tinha passado de 1 milhão de hits, ele tava literalmente derrubando o site do cara, motivo? O chat ficava disparando informações para o servidor a cada 5s (ajax pooling), foi o jeito do desenvolvedor criar algo em tempo real, que é basicamente o que você quer. Ok, voltando para a data presente, existem maneiras de resolver isto sem disparar requisições a cada 5 segundos, claro! Só que todas elas vão consumir o seu servidor, logo, se você pensa em alocar seu sistema em uma hospedagem de R$15,00 por mês, esquece esse online/offline... agora, se você tem bala para contratar algo parrudo, implementa long polling e seja feliz. Evitar requisições em redes sociais já seria um boa pra aliviar, mas isso hoje é indispenssável certo? Nunca fui muito fã do PHPBB mas mas sempre tive curuosidade de saber quando em que momento esses sitema começa a "abrir as pernas"... será que esses fórum forem realmente bem desenvolvidos para não sobrecarregar o servidor com tantas requisições.. já vi gente com 20mil 15mil online com problemas de travamento e demora ora abertura de paginas e ehospedados em bons servidores. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Abril 3, 2015 Rede social e fórum são coisas muito distintas... aquele "usuários online" do fórum não é nada preciso, você configura o timeout do usuário no próprio painel do fórum... ou seja, se o usuário não tiver movimentação (acessar páginas) durante X minutos ele está offline. Quanto a necessidade de ter algo em tempo real, uma coisa é você achar que é necessário, outra cosia são os seus usuários entenderem isto como necessário. No desenvolvimento de produtos, em especial na área de TI se aplica muito um negócio chamado MVP: Minimum Viable Product. Ou seja, você cria um software, com o mínimo necessário para que ele justifique a própria existência, após o lançamento e conforme forem aparecendo as demandas ai sim você vai ampliando ele. Compartilhar este post Link para o post Compartilhar em outros sites
ualisson venez 0 Denunciar post Postado Abril 3, 2015 como faço pra usar o programa php pra gerar boleto Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 3, 2015 Isso mesmo, não tenho toda essa bala na agulha por enquanto, por isso me preocupo tanto em eu mesmo fazer com o Offline Online funcionar para todos.. Uma opção barata, e alternativa ao long polling, e uso de cookies para controlar as requisições ao db public function c_status($id_user='') { if (!isset($_COOKIE['c_status'])) { setcookie( "c_status", $id_user, time() + 60*15, "/","", 0); # INSERT INTO `table_status` (`id_user`, `timestamp`) VALUES ( $id_user, NOW() + INTERVAL 15 MINUTE ); } else { # DELETE FROM `table_status` WHERE ( `timestamp` < DATE_SUB(NOW(),INTERVAL 15 MINUTE) ); setcookie( "c_status", $id_user, time() + 60*15, "/","", 0); } } Depois só montar um left join Ps.: Esta query # DELETE FROM `table_status` WHERE ( `timestamp` < DATE_SUB(NOW(),INTERVAL 15 MINUTE) ); você pode deixar fora do load, agendar no cron a cada 5 a 10min pra rodar o script, alternativas existem, basta explorar! Compartilhar este post Link para o post Compartilhar em outros sites
SeanSIlva 6 Denunciar post Postado Abril 4, 2015 A ídeia é muito boa mesmo, isso seria bem interessante mas pelo que eu já desconfiava o meu servidor cobra o cron a cada 20 vezes R$5,0.. Por enquanto eu estou apenas desenvolvendo esse projeto, então meu plano de hospedagem é apenas para testes. Furutamente quando eu fizer os devidos investimentos e colocar isso em prática no mercado não vou ter como fugir de um plano de hospedagem de no mínimo 10.000 acessos diários nos primeiros meses. Então acho que o correto agora seria fazer isso já pensado no futuro. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 4, 2015 Rapaz pagar servidor para testes?Vá na Amazon e pega uma instância linux e gratuita por um ano, depois escale nela própria! Segue as videos aulas de como montar um server lá, sem gastar um centavo. https://www.youtube.com/user/wpyslow/videos http://aws.amazon.com/pt/free/ Precisa de Cartão internacional e com crédito, então use os pré pago, é descontado $2 no cadastro e só!!!http://www.meocartao.com.br/http://www.contasuper.com.br/ PS.: Sem falar que você pode fazer um projeto inteiro localmente, se precisar de alguma coisa do servidor, é só passar as configurações de acesso. Compartilhar este post Link para o post Compartilhar em outros sites
SeanSIlva 6 Denunciar post Postado Abril 4, 2015 @Williams Duarte Que ótimo cara!! Nossa como estou desatualizado, e como é bom falar com voces aqui, espero poder retribuir um dia a juda da galera. Abs Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Abril 5, 2015 Acompanhe o fórum e ajude no que puder, que você se atualiza rapidinho.Outra é acompanhar bons blogs http://bit.ly/1MREWqh http://bit.ly/1awD45l Compartilhar este post Link para o post Compartilhar em outros sites
LuizHK 0 Denunciar post Postado Abril 6, 2015 Uma dica, geralmente não há necessidade de salvar o password na sessão do usuário. Compartilhar este post Link para o post Compartilhar em outros sites
SeanSIlva 6 Denunciar post Postado Abril 7, 2015 @LuizHK Com certesa já mudei isso. Valeu pela dica. Compartilhar este post Link para o post Compartilhar em outros sites