Problema com sessões/php

skullrazor

Portugal@Home 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
 
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..
 
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:
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".
 
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:
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:
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
 
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
 
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
 
Back
Topo