1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problema com sessões/php

Discussão em 'Web Development' iniciada por skullrazor, 22 de Março de 2009. (Respostas: 16; Visualizações: 895)

  1. Boas
    Ando a fazer um site de "bloco de notas" online usando html/css/php/mysql, e para tal uso um sistema de login que passa o id e o username do utilizador para uma sessão, pois cada utilizador tem a sua "pagina pessoal", como é obvio. Tenho usado o servidor XAMPP sem nunca ter tido problemas. Ontem, decidi lançar a versão beta do site. Criei alojamento e domínio grátis no www.netcko.com, fiz upload dos ficheiros, ficou a funcionar tudo perfeitamente. Testei o serviço no meu pc de casa, criei novo registo, fiz login, e estava tudo ok! Hoje, noutra casa e noutro pc, tentei usar o site. Entrei, fiz login, mas depois de fazer login entro na pagina pessoal mas sem qualquer informação do utilizador! Ou seja, ele faz a validação dos dados com a base de dados correctamente, mas depois não passa informação nenhuma para a sessão! Não faço a mínima ideia porque está isto a acontecer, até porque no meu pc de casa funcionou, e neste já não! Estou a iniciar a sessão logo no inicio da página, antes de qualquer code, por isso o problema não estará ai. O code que passa os dados para a sessão é este:
    PHP:
    // Verifica a password  
    if(!strcmp($senha$dados["password"]))
    {
     
    // Passa os dados para a sessão e redirecciona o usuário
    $_SESSION["id_user"]   = $dados["id"];
    $_SESSION["nome_user"] = stripslashes($dados["username"]);
    echo 
    '<meta http-equiv="refresh" content="1; url=conta.php" />';
    }
    // Password inválida
    else
    {
    echo 
    '<p id="erro">Password inválida!</p>';
    }

    Já estou farto de pesquisar e não encontro o problema, nem muito menos a solução. Alguém me consegue ajudar?

    P.s. Peço desculpa pelo "testamento", mas não consegui arranjar maneira de explicar melhor a situação.

    Cumps
     
  2. toblesu

    toblesu Power Member

    Podia colocar o código inicial do conta.php,
    nomeadamente do inicio de sessão e atribuição das variáveis de sessão.

    O problema pode estar no ficheiro que recebe a sessão. Mas só vendo o código..
     
  3. Na página conta.php apenas inicio a sessão, também antes de qualquer code, e atribuo o valor das 2 variáveis de sessão a 2 variáveis.
    O code de inicio de sessão:
    PHP:
    <?php
    // Inicia sessões
    session_start();
    ?>

    O code de atribuição das variveis de sessão:
    PHP:
    $user $_SESSION["nome_user"];
    $userid $_SESSION["id_user"]

    Só uma nota, numa comparação do id da variável de sessão com o id da base de dados que eu faço, uso $_SESSION["id_user"], não $userid. Já não me recordo bem mas acho que era porque não comparava bem se fosse com a variável $userid. Mas penso que não tenha nada haver com a situação, até porque o $user também não "recebe" nenhum valor.

    Cumps
     
    Última edição: 22 de Março de 2009
  4. toblesu

    toblesu Power Member

    Tente fazer um echo dessas vairáveis, da $user e $userid que tem no conta.php, para ver se elas levam alguma coisa, se vazio ou algum tipo de conteudo (lixo ou valores correctos!).

    Quanto à comparação que fala, tanto haveria de dar com $userid como com $_SESSION["id_user"], uma vez que fez atribução do conteúdo de uma para a outra....

    E já agora, no outro ficeiro onde passa as variáveis de sessão, tente fazer:
    $_SESSION["nome_user"] = $dados["username"];
    em vez de:
    $_SESSION["nome_user"] = stripslashes($dados["username"]);

    São apenas suposições, porque não estou a ver os resultados... do género tentar ir pela "tentativa erro".
     
  5. Já tinha tentado fazer echo das variáveis, e nunca aparece nada, por isso é que digo que ele nem sequer está a passar os dados para a sessão.
    Sim realmente deveria dar de uma maneira ou outra, mas na altura como resolveu assim não estive a ligar mais ao assunto.
    Retirei e testei sem a função stripslashes() no outro ficheiro e não alterou nada.
    Sim neste caso tenho de ir por tentativas, mas o problema é que já esgotei todas as tentativas minhas conhecidas!

    Cumps, e obrigado pela ajuda :)
     
    Última edição: 22 de Março de 2009
  6. anjo2

    anjo2 Power Member

    Já tentaste noutro alojamento?
     
  7. Não, mas achas que pode ser do alojamento?

    EDIT: Chegei agora a casa, fui exprimentar e neste pc já deu! É isso que ainda me intriga mais, como é que dá neste pc e noutros não!

    Cumps
     
    Última edição: 22 de Março de 2009
  8. anjo2

    anjo2 Power Member

    No outro pc os cookies estavam activos?
     
  9. Flores_E

    Flores_E Power Member

    em relação ao alojamento podes sempre instalar um prog servidor no teu pc so pa testar se a causa é o alojamento
    cumps
     
  10. Não tenho a certeza absoluta, mas quase de certeza que sim. Mas também o site não usa nada de cookies.

    Cumps
     
  11. Como referi no primeiro post, usei sempre o XAMPP durante a construção do site e nunca tive problemas.

    Cumps
     
  12. anjo2

    anjo2 Power Member

    O Session cria uma cookie para identificar a mesma.
     
  13. Desconhecia isso! Agora só terça terei oportunidade de testar noutro pc, portanto só ai irei ver se era disso ou não. Mas por exemplo, eu nesse pc em que testei e não deu consigo fazer login aqui na ZWAME sem problemas, por isso não me parece muito que seja disso. Depois de confirmar se é ou não o problema das cookies, caso não seja irei então tentar usando um outro alojamento grátis. Obrigado pela ajuda :)

    Cumps
     
  14. Bem ainda não voltei ao pc em que testei e não deu, mas pedi ao dono do computador que me visse se os cookies estavam activados ou não. O browser é o IE7, e indo à parte dos cookies (Ferramentas/Opções da Internet/Privacidade/Avançadas) apenas tem a opção "Ignorar a manipulação automática de cookies" desseleccionada, portanto penso que os cookies estivessem activados! Se bem que desactivei-os no meu pc e aconteceu exactamente o mesmo que acontecia lá! Agora estou um pouco "confuso" :confused:

    Cumps
     
  15. Acabei agora de testar noutro pc e realmente o problema era das cookies! Se a opção "Ignorar a manipulação automática de cookies" estiver desseleccionada não funciona! Tenho de seleccionar a opção e depois pôr a aceitar cookies originais e de terceiros, e assim já dá! Isto parece-me "estupido" porque com a opção desseleccionada supostamente deveria aceitar todos os cookies! Enfim, obrigado pela ajuda de todos :D

    Cumps
     
  16. eralha

    eralha Power Member

    tens de fazer umas validações, caso as cookies nao estejam activas tens de passar o ID de sessao por POST ou por GET
     
  17. Mas como faço para passa-los de um página de php para outra usando POST ou GET?

    Cumps
     

Partilhar esta Página