Jump to content


Photo

Sessões Não Funcionam


  • Faça o login para participar
16 replies to this topic

#1 deqr

deqr

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado

Posted 29/02/2008, 14:48

Pessoal,
estou com um problemas com sessões, desenvolvi todo um site em casa, no meu pc,
agora que passei para o servidor está acontecendo uma coisa estranha, bom,
pelo menos para mim:

Tento gravar 4 variáveis de sessões, destas, apenas 2 são gravadas,
alguém sabe porque isso??

Segue o código que utilizo para gravá-las:

<?php
session_start();

include "../includes/conect.php";

//RECEBE OS DADOS DO FORMULÁRIO
$login   =   $_POST["login"];
$senha	 =   $_POST["senha"];

if ((!$login=="") and (!$senha=="")){
//VERIFICA
$sql   =   mysql_query("
		   SELECT A.id, A.nome FROM usuarios A
		   WHERE  A.login  =  '".$login."'
			  AND A.senha	=  '".$senha."'") or die("ERRO NO COMANDO SQL");


//VERIFICA SE RETORNOU ALGO
if(!mysql_num_rows($sql)> 0){
 echo "<script>
		alert(\"Não foi possível efetuar seu login. Caso você não seja cadastrado, efetue seu cadastro!\");
		</script>"; 
 echo "<script>document.location = \"../cadastro.php\";</script>";	

} else { 
	 //PEGA OS DADOS
	 $id   =   mysql_result($sql, 0, "id");
	 $nome =   mysql_result($sql, 0, "nome");
	 
	 
	 //GRAVA AS VARIÁVEIS NA SESSÃO
	 $_SESSION["id"]	=   $id;
	 $_SESSION["nome"]  =   $nome;
 	 $_SESSION["senha"]  =   $senha;
 	 $_SESSION["login"]  =   $login;
	 
	 //REDIRECIONA PARA A PÁGINA QUE VAI EXIBIR OS PRODUTOS
	 Header("Location: ../index.php");
}//FECHA ELSE
} else {
	echo "<script>
		alert(\"Não foi possível efetuar seu login. Caso você não seja cadastrado, efetue seu cadastro!\");
		</script>";
	echo "<script>document.location = \"../cadastro.php\";</script>";	
}
?>

"Na vida não existe perdedores e vencedores, existem os que desistem e os que não desistem."

dani.quadros@gmail.com

#2 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 29/02/2008, 15:13

Onde você cria a sessão, tenta trocar o $senha por $_POST['senha'] e o mesmo com o $login.

Se ainda assim não der, tenta usar um session_start() nates.

#3 deqr

deqr

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado

Posted 29/02/2008, 15:31

Onde você cria a sessão, tenta trocar o $senha por $_POST['senha'] e o mesmo com o $login.

Se ainda assim não der, tenta usar um session_start() nates.


Fala Bruno,
valeu a ajuda ae cara,
mas não funcionou com o POST.

o que seriam session_start() nates? e como usá-las?

Abraço!
"Na vida não existe perdedores e vencedores, existem os que desistem e os que não desistem."

dani.quadros@gmail.com

#4 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 29/02/2008, 18:33

Ele disse, (tentou dizer), session_start(); antes.
Mas você já fez isso.

E sobre o problema, na sua casa pega normal o script?
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#5 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 29/02/2008, 19:44

Você disse que 2 estão sendo gravadas. Quais são?

Aproveita e já muda isso aqui:

if ((!$login=="") and (!$senha=="")){

por isso

if ((isset($_POST['login'])) && (isset($_POST['senha']))){

Além disso, coloca esse trecho:

$login   =   $_POST["login"];
$senha	 =   $_POST["senha"];

Abaixo do trecho acima... Ficando assim:

if ((isset($_POST['login'])) && (isset($_POST['senha']))){
$login   =   $_POST["login"];
$senha	 =   $_POST["senha"];

BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#6 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 29/02/2008, 20:34

provavelmente, lendo o script, as duas $_SESSION que não estão sendo gravadas são o ID e o nome. Deve haver um erro naquele mysql_result que tu tah usando.

Esse trecho
mysql_query("SELECT A.id, A.nome FROM usuarios A WHERE  A.login  =  '".$login."' AND A.senha	=  '".$senha."'") or die("ERRO NO COMANDO SQL");

Primeiro, o que A representa? e depois, porque não tira as aspas duplas do meio do nome das variáveis e os pontos? o comando aceita dados de variável direto, apenas com aspas simples
Não sabe por onde começar? Que tal pelas Regras ?

#7 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 01/03/2008, 12:10

Primeiro, o que A representa? e depois, porque não tira as aspas duplas do meio do nome das variáveis e os pontos? o comando aceita dados de variável direto, apenas com aspas simples


Pelo que eu vi o A representa a tabela usuários... ele atribuiu um apelido para tabela, não vi a necessidade hehehehe, mas é isso.

Quanto a colocar aspas ou não aí já acho que não ajuda em nada, apenas altera uma coisa para a mesma coisa... quer dizer... acho eu que o mais correto seria fazer como ele fez.

Agora eu ia postar extamente o que o Firehalk mencionou...

que coisa mais confusa isso:

if ((!$login=="") and (!$senha=="")){
:blink:

entre outras negações ali hehehe nunca tinha visto isso mas sei lá... até fiquei curioso, mas juro que não entendi a lógica :D

Enfim... siga o que o Firehalk disse em relação à isso e já vai estar melhorando a questão...
Depois vemos o que continua acontecendo.

----------------------

EDITANDO

Tenta assim:


:ponder:Até mais

#8 deqr

deqr

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado

Posted 01/03/2008, 19:38

Olá pessoal,
é o seguinte, fiz as alterações que sugeriram mas continua o mesmo problema.
Respondendo às perguntas:
Sim, em meu pc, e no meu trabalho, funciona perfeitamente.

As 2 variáveis de sessões que não estão gravando são: "login" e "id" .

Obrigado pela ajuda,
mais alguma sugestão?
:(
"Na vida não existe perdedores e vencedores, existem os que desistem e os que não desistem."

dani.quadros@gmail.com

#9 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 01/03/2008, 22:30

Olá pessoal,
é o seguinte, fiz as alterações que sugeriram mas continua o mesmo problema.
Respondendo às perguntas:
Sim, em meu pc, e no meu trabalho, funciona perfeitamente.

As 2 variáveis de sessões que não estão gravando são: "login" e "id" .

Obrigado pela ajuda,
mais alguma sugestão?
:(

Testou outros servidores?

Edição feita por: lwirkk, 01/03/2008, 22:33.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#10 deqr

deqr

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado

Posted 01/03/2008, 23:11

Olá pessoal,
é o seguinte, fiz as alterações que sugeriram mas continua o mesmo problema.
Respondendo às perguntas:
Sim, em meu pc, e no meu trabalho, funciona perfeitamente.

As 2 variáveis de sessões que não estão gravando são: "login" e "id" .

Obrigado pela ajuda,
mais alguma sugestão?
:(

Testou outros servidores?


Testei, a mesma coisa acontece, elas não gravam
"Na vida não existe perdedores e vencedores, existem os que desistem e os que não desistem."

dani.quadros@gmail.com

#11 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 02/03/2008, 01:01

Tentou dar um
echo $login;
e
echo $senha;
?
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#12 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 02/03/2008, 09:10

Se os campos são login e id, então só pode ser problema na query sql dele.

Dá um echo nos valores retornados do DB.
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#13 deqr

deqr

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado

Posted 02/03/2008, 18:15

Se os campos são login e id, então só pode ser problema na query sql dele.

Dá um echo nos valores retornados do DB.


Já fiz isso, e se dou um echo mostra as strings, normal :huh:

Vou postar o código que verifica os valores,
se não estiverem gravados redireciono para a página de login:

session_start();

include "includes/conect.php";

//verifica se está logado senao vai para página d login
if( (!isset($_SESSION["id"])) and (!isset($_SESSION["login"])) ){
Header("Location: cadastro.php");
}

//Consulta os gibis cadastrados
$sql = "select id, titulo from gibis where login='".$_SESSION["login"]."'";

$gibis = mysql_query($sql);

if (!$_GET['id']=="") {
$_SESSION["idgibi"] = $_GET['id'];
}


//Exclusao
if ($_GET['op'] == "E") {
foreach($_POST["alterar"] as $altera)
{
$ex = mysql_query("delete from gibis where id=".$altera);
$ex = mysql_query("delete from quadros where id=".$altera);
}

echo "<script>document.location = \"montar_gibi.php\";</script>";
}

if ($_GET['op'] == "X") {
if (!$_GET['idq'] == "") {
$ex = mysql_query("delete from quadros where id=".$_GET['idq']);
echo "<script>document.location = \"montar_gibi.php?op=A&id=".$_GET['id']."\";</script>";
}
}


"Na vida não existe perdedores e vencedores, existem os que desistem e os que não desistem."

dani.quadros@gmail.com

#14 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 02/03/2008, 19:10

Faz o seguinte: monta tua query em outra página, e coloca para imprimir o resultado dela como você quer.

Feito esse passo e estando tudo OK, nessa mesma outra página, adiciona os valores nas tuas sessões e imprime os valores das sessões.

É bem mais fácil de saber o que está errado fazendo assim, do que ficar trabalhando em cima de um código que já está completamente cheio de outros comandos.
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#15 deqr

deqr

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado

Posted 04/03/2008, 09:58

Faz o seguinte: monta tua query em outra página, e coloca para imprimir o resultado dela como você quer.

Feito esse passo e estando tudo OK, nessa mesma outra página, adiciona os valores nas tuas sessões e imprime os valores das sessões.

É bem mais fácil de saber o que está errado fazendo assim, do que ficar trabalhando em cima de um código que já está completamente cheio de outros comandos.


Só queria dizer que consegui resolver o problema.
Troquei os nomes das sessões e funcionou,
provavelmente havia outra variável com o mesmo nome,
e provavelmente no servidor estava habilitado variáveis globais.

Valeu pela ajuda pessoal!
"Na vida não existe perdedores e vencedores, existem os que desistem e os que não desistem."

dani.quadros@gmail.com




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq