Jump to content


Photo

Logar Na Pagina


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

#1 CEZARFUHR

CEZARFUHR

    Normal

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

Posted 03/01/2006, 09:53

bom dia pessoal..
o usuario loga corretamente e em determinadas paginas o valor da variavel se perde, todas as paginas estao padronizadas..

tenho a pagina onde o usuario insere os dados..

<input name="login" type="text" id="login" size="12" maxlength="3">
<input name="senha" type="password" id="senha"  size="12" maxlength="5">


depois a pagina que verifica se existe o usuario no banco...
se existe ele registra na session..

$_SESSION[login] = $valor[0];
$_SESSION[senha] = $valor[2];


nas paginas seguintes ele recupera as informaçoes..

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


acontece o seguinte..
nas primeiras paginas ele funciona perfeitamente, em outras ele perde o valor das variaveis.

queria saber se estou fazendo do geito correto??
se alguem sabe de um metodo facil e eficiente para a solução??
se alguem sabe por q motivo está perdendo o valor das variaveis?

se alguem souber posta ai..

obrigado!!

#2 PlaynowGames

PlaynowGames

    12 Horas

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

Posted 03/01/2006, 10:04

bom cara, acho q vc tem q registrar a seção pra depois resgatar ela!!

dá uma olhada neste artigo sobre seção!!


http://www.phpbrasil...icle.php/id/122

(y)

Edição feita por: PlaynowGames, 03/01/2006, 10:05.


#3 CEZARFUHR

CEZARFUHR

    Normal

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

Posted 03/01/2006, 10:44

essa é a pagina que rediciona..

<?php
session_start(); 
$usuario = $_POST['login']; //recebe os dados do formulario
$senha  = $_POST['senha'];

$db    = mysql_connect (horizonte, root, xunile);
$basedados  = mysql_select_db(noticia);

$valores = mysql_query("SELECT * FROM USUARIO WHERE CD_USUARIO='$usuario' and CD_SENHA='$senha'");
$valor = mysql_fetch_row($valores);
$existe = mysql_num_rows($valores);

if ($existe == '1') {  //se o usuario existe no banco, ai ele registra a session caso contrario ele rediciona para a pagina de erro...
   
$login_cpd = $usuario;
session_register("login_cpd");

$senha_cpd = $senha;
session_register("senha_cpd");

header("Location: login-enviar-cpd.php");
} else { 
header("Location: erro-login.php"); //pagina de erro
}
?>



todas as paginas que verifico se o usuario está logado são assim...

session_start();
$logi = $_SESSION[login_cpd];
$senh = $_SESSION[senha_cpd];

if( (!isset($_SESSION[login_cpd])) AND (!isset($_SESSION[senha_cpd]))){
    header("Location: [url="http://horizonte/cpd/login.php");"]http://horizonte/cpd/login.php");[/url]
} else {
  include "config.php"; //inclui o arquivo de configurações
}


note que algumas paginas funciona perfeitamente...
em outras as variaveis não retornam valor algum e conseguentemente são direcionadas de novo para o login..

não sei o que está acontecendo!!!

se alguem souber

obrigado

#4 paes

paes

    GustavoPaes.Net

  • Usuários
  • 1393 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Rumo ao topo!

Posted 03/01/2006, 11:00

Mude na parte de registrar a sessão para o seguinte código:
if ($existe == '1') {  //se o usuario existe no banco, ai ele registra a session caso contrario ele rediciona para a pagina de erro...
   
$_SESSION['login_cpd'] = $usuario;
$_SESSION['senha_cpd'] = $senha;

header("Location: login-enviar-cpd.php"); 

E na verificação reduza o seu if() para isso:
if( (!$_SESSION['login_cpd']) OR (!$_SESSION['senha_cpd'])){
...

Tente ai.
Até mais
Site: GustavoPaes.net

^ Rumo ao Topo ^

#5 CEZARFUHR

CEZARFUHR

    Normal

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

Posted 03/01/2006, 13:15

alterei o codigo aqui..
não deu erro mas continuou no mesmo problema...

em determinadas paginas as variaveis tem valor e outras não.

vlw pela atenção.

#6 paes

paes

    GustavoPaes.Net

  • Usuários
  • 1393 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Rumo ao topo!

Posted 03/01/2006, 13:17

isso deve ser então o tempo da sua sessão que deve estar expirando... não sei se sessão tem isso, igual o cookie.

mas de uma olhada em seu php.ini. Tem uma parte de configuração só de session, veja se encotra algo lá.

Até mais
Site: GustavoPaes.net

^ Rumo ao Topo ^

#7 CEZARFUHR

CEZARFUHR

    Normal

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

Posted 04/01/2006, 08:26

descobri o seguinte...

quanto eu envio algum dado de uma pagina pra outra o valor do login se perde...
por exemplo...

tenho o a pagina

<?
<?
session_start();
$logi = $HTTP_SESSION_VARS["login_cpd"];
$senh = $HTTP_SESSION_VARS["senha_cpd"];

if( (!$_SESSION['login_cpd']) OR (!$_SESSION['senha_cpd'])){
    header("Location: [url="http://horizonte/cpd/login.php");"]http://horizonte/cpd/login.php");[/url]
} else {
  include"config.php"; //inclui o arquivo de configurações
}

    $db  = mysql_connect ($host, $login_db, $senha_db); //conecta ao mysql
    $basedados = mysql_select_db($database); //conecta a base de dados

$pesqui = mysql_query("SELECT * FROM $tabela WHERE CD_USUARIO = '$logi' and CD_SENHA = '$senh'", $db); //conferimos se o login escolhido já não foi cadastrado
$contag = mysql_num_rows($pesqui); //traz o resultado da consulta acima

?>
<html>
<head>
</head>
<form name="email" method="post" action="http://horizonte/cpd...o-usuario.php">
  <table>
    <tr>
      <td>Login</td>
  <td><input name="loginn" type="text" size="6" maxlength="3">
      <a href="Atualiza-cadastro-usuario.php">testes</a></tr> 
      <td colspan="2"><input type="submit" name="Submit" value="Enviar">                   
                    <input name="reset" type="reset" value="limpar"> 
    </tr>
</table>
</form>
</body>
</html>


se eu colocar dados no formulario e enviar atraves do botao

<input type="submit" name="Submit" value="Enviar">

os dados do login se perdem...

pra fins de teste coloquei um link para a pagina seguinte

<a href="Atualiza-cadastro-usuario.php">testes</a>

ai os valores do login não se perdem

talvez seja uma configuracao do php.ini ou sei lá...

por favor se alguem ja passou por isso ou tenha alguma ideia como posso resolver..


obrigado

#8 Dudis

Dudis

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo/SP

Posted 04/01/2006, 09:56

Pelo que reportou por último quando envia um FORM os dados se perdem e quando traféga normalmente via links a session se mantém ativa é isso?

Se for isso, provavelmente a sessão pode estar sendo criada novamente com dados em branco quando envia o POST do FORM, tenha certeza que um formulário não está influenciando o outro e recriando uma session vazia.

#9 CEZARFUHR

CEZARFUHR

    Normal

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

Posted 04/01/2006, 14:16

na verdade não está criando sessao vazia

descobri que em determinadas paginas o valor da sessao muda..

por exemplo:
em todas as pagina coloquei

session_start();
$_ID = session_id();
echo $_ID;


em algumas paginas ele mostra assim

154774b9b7730b9b10ac4250f3b788ec

e outras assim

63954911e1717c0befa0f02531a2be48

ou seja outro numero
e por causa disso não funciona..

se alguem souber por que isso acontece??

obrigado.

#10 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 04/01/2006, 14:31

tem que passar a SID (PHP_SESSION) nos forms... so colocar <?=SID;?> nas actions dos forms
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual




1 user(s) are reading this topic

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

IPB Skin By Virteq