Jump to content


Photo

Session Só Grava Na Segunda Tentativ


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

#1 RODRIGODEVELOP

RODRIGODEVELOP

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino
  • Localidade:Salto - SP

Posted 20/07/2012, 10:09

Estou precisando de uma ajuda.
Eu tenho um sistema de login que só loga na segunda tentativa.
Na primeira tentativa ele da o alert de login efetuado com sucesso, mas não loga.
Então vou fazer o login de novo e ai sim ele loga.
Alguém sabe o que pode ser?

#2 André Cristhian

André Cristhian

    Normal

  • Usuários
  • 65 posts
  • Sexo:Masculino
  • Localidade:Maringá - PR
  • Interesses:PHP, Mysql, Java Script, Java, Programação, CSS, HTML, AJAX, XHTML, Web Design, Web Developer, Desenvolvedor Web.

Posted 20/07/2012, 10:24

Poste o código aqui!

Meu post lhe ajudou? Clicar no Posted Image é uma das formas de agradecer.


#3 RODRIGODEVELOP

RODRIGODEVELOP

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino
  • Localidade:Salto - SP

Posted 20/07/2012, 10:29

//A função do login e logout
public function logLeitor($u,$p){
	$r->err = array();
	$r->ok = '';
	$r->u = $u;
	$r->p = $p;
	if(!$u)$r->err[] = 'Digite o usuário.';
	if(!$p)$r->err[] = 'Digite a senha.';
	$p5 = md5($p);
	if(!count($r->err)){
		if($rs=$this->b->query("select * from leitor where user='$u' limit 1")->fetchObject()){
			if($rs->stt+0){
				if($p5==$rs->pass){
					$this->idu = $_SESSION['idu'] = $rs->id+0;
					$this->user = $_SESSION['user'] = $u;
					$this->tipo = $_SESSION['tipo'] = $rs->tipo+0;
					$this->nome = $_SESSION['nome'] = $rs->nome;
					$this->email = $_SESSION['email'] = $rs->email;
					echo '<script type="text/javascript">alert("Login efetuado com sucesso.");</script>';
				}else $r->err[] = 'Senha incorreta.';
			}else $r->err[] = 'Usuário desativado.';
		}else $r->err[] = 'Usuário inexistente.';
	}//else $this->logout();
	if(count($r->err))$this->logout();
	return $r;
}

public function logout(){
	$this->idu = $_SESSION['idu'] = 0;
	$this->user = $_SESSION['user'] = '';
	$this->nome = $_SESSION['nome'] = '';
	$this->email = $_SESSION['email'] = '';
	$this->tipo = $_SESSION['tipo'] = 0;
	$this->ide = $_SESSION['ide'] = 0;
}

// E o código que chama a função
<?
	if($_POST['logLeitor']){
		$user = strf($_POST['user'],1);
		$pass = strf($_POST['pass'],1);
		$log = $s->logLeitor($user,$pass);
	}

//$s->layCls = 'news';
?>
	<strong>Login</strong>
	<form name="flogLeitor" method="post" style="height:180px;">
<?
	if(count($log->err)){
?>
		<div class="row err">
			<div class="dir"><?=implode('<br/>',$log->err)?></div>
		</div>
<?
	}
?>
		<div class="deixe"><label>*Usuário:<br/><input type="text" name="user" class="txt w350" value="<?=$log->u?>"/></label></div>
		<div class="deixe"><label>*Senha:<br/><input type="password" name="pass" class="txt w350" maxlength="50"/></label></div>
		<div class="deixe right" style="margin-top: -35px">
			<input type="submit" name="logLeitor" class="botao" value="Login"/>
   			<a href="javascript:;" onclick="cmt.cmtA(false);" class="botao">Fechar</a>
        </div>
        <div class="deixe">
			<p><h5>Obs.: É necessário realizar o login para comentar a notícia.<br/>
			O login está com um problema e só está logando na segunda tentativa.<br/>
			Em breve estaremos solucionando este incomodo!<br/>
            Se ainda não realizou o cadastro clique em <span><a href="javascript:;" onclick="cmt.cmtCadl(true);">Cadastre-se</a></span>.</h5></p>	<br />
        </div>
	</form>



#4 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 25/07/2012, 15:49

Bom... so para constar no manual : http://www.php.net/m...ook.session.php

Antes de tudo abrir sessao : session_start()

// tudo de sessao pode ser gravado entre a abertura e fechamento

Fechamento : session_write_close();

Somente apos o fechamento da sessao que deve ter saida de texto para tela
Dica: Para acessar tudo da sessao apos login (fecha sessao e redireciona o usuario para tela de bem vindo)

Abraços
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#5 RODRIGODEVELOP

RODRIGODEVELOP

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino
  • Localidade:Salto - SP

Posted 27/07/2012, 15:53

Obrigado, consegui acertar aqui.
As páginas são incluídas em uma estrutura, que já escreve o layout.
Tem outra pasta que inclui a página antes de começar escrever o layout,
então coloquei o código lá e funcionou.

Como é a estrutura (aqui está em um modo simplificado, tem todas as verificações, .htaccess e tal...):


index.php
<?

$layout = 'default';

$pg = $_GET['pg'];


include "inc/t/$pg.php";

include "inc/l/$layout.php";

?>


inc/l/default.php
<html>

....
<?
include "inc/p/$pg.php";
?>
...

</html>





1 user(s) are reading this topic

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

IPB Skin By Virteq