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: 848)

  1. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    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. skullrazor

    skullrazor [email protected] Member

    Mas como faço para passa-los de um página de php para outra usando POST ou GET?

    Cumps
     

Partilhar esta Página