Jump to content


Photo

Não Rendireciona


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

#1 Spider-man

Spider-man

    Doutor

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

Posted 01/04/2005, 15:21

Olá, eu tenho um codigo de login, mas qdo ele vai validar ele naum ta rendirecionando para a pagina restrita. Olha o codigo:

<?
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

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login' AND senha = '$senha'", $db); //verifica se o login e a senha conferem
$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima

if ( $contagem == 1 ) {
  setcookie ("login", $login); //grava o cookie com o login
  setcookie ("senha", $senha); //grava o cookie com a senha
  header ('Location: painel_de_controle.php'); //se a senha digitada está correta, mostra a mensagem
  } else {
  echo "<br>Login ou senha inválidos. <a href=java script:history.go(-1)>Clique aqui para voltar.</a>"; //se a senha está incorreta mostra essa mensagem
  }
?>


Aproveitando, como eu faco para proteger uma pagina com cookies?

OBRIGADO

#2 <? thales ?>

<? thales ?>

    Nossa vida é desperdiçada pelos detalhes...Simplifique, Simplifi

  • Banidos
  • PipPipPipPipPipPip
  • 551 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte
  • Interesses:Programar&lt;br&gt;Estou tentando ser um Hacker&lt;br&gt;Gosto de mulheres

Posted 01/04/2005, 16:09

Use session ao invés de coockie pois o usuario pode estar com o bloqueio de coockies, blz (y)
NITRØ
--------------------
Foi mau galera

#3 Spider-man

Spider-man

    Doutor

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

Posted 01/04/2005, 16:10

Use session ao invés de coockie pois o usuario pode estar com o bloqueio de coockies, blz


ok ,mas ele naum ta rendirecionando pra pagina secreta

#4 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 01/04/2005, 16:34

Experimente colocar entre aspas duplas:

header("Location: painel_de_controle.php");


Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#5 Spider-man

Spider-man

    Doutor

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

Posted 01/04/2005, 16:37

Balala, naum da certo kra, naum aparece nada, sohda mensagem qdo erra o user e senha

#6 The bLk

The bLk

    Doutor

  • Usuários
  • 761 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 01/04/2005, 16:40

Tipo, eu uso session, e tive um problema parecido, invés de redirecionar ele volta pro login.. Mas meu erro no caso foi na página que era pra ser redirecionada, eu esqueci de colocar session_start() no ínicio, veja se não é algo do tipo, creio que com cookies seja algo semelhante!

;)

#7 Spider-man

Spider-man

    Doutor

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

Posted 01/04/2005, 16:43

Tipo, eu uso session, e tive um problema parecido, invés de redirecionar ele volta pro login.. Mas meu erro no caso foi na página que era pra ser redirecionada, eu esqueci de colocar session_start() no ínicio, veja se não é algo do tipo, creio que com cookies seja algo semelhante!

;)

beleza kra , vow passar isto pra sessions, e ver o q dah (y)

#8 Spider-man

Spider-man

    Doutor

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

Posted 05/04/2005, 09:21

olha, ta dando erro di novo, naum rendireciona, olha o codigo:

<?
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

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login' AND senha = '$senha'", $db); //verifica se o login e a senha conferem
$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima

if ( $contagem == 1 ) {
$_SESSION['login'] = $login;
$_SESSION['senha'] = $senha;
  header ('Location: painel_de_controle.php'); //se a senha digitada está correta, mostra a mensagem
  } else {
  echo "<br>Login ou senha inválidos. <a href=java script:history.go(-1)>Clique aqui para voltar.</a>"; //se a senha está incorreta mostra essa mensagem
  }
?>



naum aparece nada na pagina

#9 mestreteia

mestreteia

    Normal

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

Posted 05/04/2005, 09:50

O que vc colocou na painel_de_controle.php para aceitar a validação do login?

Na página restrita tem que ter uma validação da sessão, tipo:

session_start();
$login = isset ($_SESSION["login"])?$_SESSION["login"]:"";
$senha = isset ($_SESSION["senha"])?$_SESSION["senha"]:"";

if ($login!=""){

//mostre a página

}else{

//volte para a página de login

}


E ainda, você pode colocar uma campo em sua tabela onde diferencie administradores de usuários, se for o caso.

Edição feita por: mestreteia, 05/04/2005, 10:46.

php rules!!!

#10 Spider-man

Spider-man

    Doutor

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

Posted 05/04/2005, 09:57

kra, eu coloquei as sessions na pagina restrita e NADA, ta dando erro :(

#11 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 05/04/2005, 12:06

<?
ob_start();
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

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login' AND senha = '$senha'", $db); //verifica se o login e a senha conferem
$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima

if ( $contagem < 0 ) {
  setcookie ("login", $login); //grava o cookie com o login
  setcookie ("senha", $senha); //grava o cookie com a senha
header("Location:painel_de_controle.php");
  } else {
  echo "<br>Login ou senha inválidos. <a href=java script:history.go(-1)>Clique aqui para voltar.</a>"; //se a senha está incorreta mostra essa mensagem
  }
ob_end_flush();
?>


tente assim

#12 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 05/04/2005, 12:18

Use session ao invés de coockie pois o usuario pode estar com o bloqueio de coockies, blz (y)

se a pessoa bloqueia o cookie a session tbem não ia funcionar...

pq a session vem do id do cookie (y)

a diferencia entre eles e que um fic ano server e o outro no pc cliente

#13 Spider-man

Spider-man

    Doutor

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

Posted 05/04/2005, 12:22

<?
ob_start();
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

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login' AND senha = '$senha'", $db); //verifica se o login e a senha conferem
$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima

if ( $contagem < 0 ) {
  setcookie ("login", $login); //grava o cookie com o login
  setcookie ("senha", $senha); //grava o cookie com a senha
header("Location:painel_de_controle.php");
  } else {
  echo "<br>Login ou senha inválidos. <a href=java script:history.go(-1)>Clique aqui para voltar.</a>"; //se a senha está incorreta mostra essa mensagem
  }
ob_end_flush();
?>


naum deu certo :(

#14 Spider-man

Spider-man

    Doutor

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

Posted 06/04/2005, 14:12

e ae galera, intao, akele script naum consegui fazer, daí eu tentei juntá-lo com um outro, olhe como fikou:

<?php
// obtém os valores digitados
$login = $_POST["login"];
$senha = $_POST["senha"];

// acesso ao banco de dados
include "config.php";
$resultado = mysql_query("SELECT * FROM tbl_membros where login='$login'", $con);
$linhas = mysql_num_rows ($resultado);
if($linhas==0)  // testa se a consulta retornou algum registro
{
echo "<html><body>";
echo "<p align=\"center\">Usuário não encontrado!</p>";
echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
echo "</body></html>";
}
else
{
    if ($senha != mysql_result($resultado, 0, "senha")) // confere senha
{
  echo "<html><body>";
  echo "<p align=\"center\">A senha está incorreta!</p>";
  echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
  echo "</body></html>";
}
else  // usuário e senha corretos. Vamos criar os cookies
    {
        setcookie("nome_usuario", $login);
        setcookie("senha_usuario", $senha);
        // direciona para a página inicial dos usuários cadastrados
  echo "<meta http-equiv=\"refresh\" content=\"1;URL=painel_de_controle.php\">";

       
    }
}
mysql_close($con);
?>


ateh aí beleza, soh q naum ta criando os cookies, qdo eu entro na pagina painel_de_controle e fala q eu naum efetuei o login, alguem poderia me dizer pq acontece isto?

OBRIGADO

#15 mestreteia

mestreteia

    Normal

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

Posted 06/04/2005, 16:07

Cara, vou colocar o script que uso para minha página de login:

<?

//Verifica a existência das sessões
$sessao_login = isset ($_SESSION["login"])?$_SESSION["login"]:"";
$login = isset ($_POST["login"])?$_POST["login"]:"";
$senha = isset ($_POST["senha"])?$_POST["senha"]:"";
$logoff = isset ($_GET["logoff"])?$_GET["logoff"]:"";

include("conexao_banco.inc");

//Destrói a sessão aberta
if ($logoff == "ok"){
  session_unset();
   session_destroy();
  header("location:pagina_principal.php");
}

if (isset ($_POST["sair"])){
	session_destroy();
	header("location:página_principal.php");
}

//Se existir a sessão $sessao_login, vá para a página inicio.php, senão, conecte-se ao banco. Se a conexão retornar verdadeira, selecione as colunas da tabela usuarios onde a coluna usu_login seja igual à variável $login
if ($sessao_login==""){
	if ($login!=""){
  if ($conn==TRUE){
 	 $SQL = "SELECT usu_login, usu_nome, usu_tipo FROM usuarios WHERE usu_login='$login'";
    $res = mysql_query($SQL);
    list($log, $nom, $tip)=mysql_fetch_row($res);
    //echo "$log, $nom, $tip <br> $SQL";
    $_SESSION["login"]=$log;
    $_SESSION["tipo"]=$tip;
    $_SESSION["senha"]=$senha;
    $_SESSION["usuario"]=$nom;
    header("location:pagina_principal.php");
  }
	}
?>
<!--Formulário para efetuar login-->
<form action="" name="tela_login" method="POST">
<table border="0" cellpadding="3" cellspacing="0" width="225" height="70" align="center" bgcolor="#EFC081" style="border:1.5pt solid #CB801B">
	<tr>
  <td>
  Login:
  </td>
  <td>
  <input type="text" name="login" size="10" maxlength="15">
  </td>
	</tr>
	<tr>
  <td>
  Senha:
  </td>
    <td>
    <input type="password" name="senha" size="10" maxlength="15">&nbsp;<input type="submit" name="logar" value="LOGAR" class="botao_laranja">
    </td>
	</tr>

</table>


Na página onde eu quero validar se existe a sessão, eu coloco:

//início da sessão//
session_start();
	
//variáveis para conexão com o banco de dados//
$login = isset($_SESSION["login"])?$_SESSION["login"]:"";
$senha = isset($_SESSION["senha"])?$_SESSION["senha"]:"";

//informações para diferenciar as permissões desta página//
$usuario = isset($_SESSION["usuario"])?$_SESSION["usuario"]:"";
$tipo = isset($_SESSION["tipo"])?$_SESSION["tipo"]:"";
$nome = isset ($_SESSION["usuario"])?$_SESSION["usuario"]:"";

OBS: Não criei uma coluna "senha". Eu trabalho de forma diferente, colocando o usuário e senha para acessar o banco de dados e não as tabelas. É mais fácil controlar as permissões dessa forma.
php rules!!!




1 user(s) are reading this topic

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

IPB Skin By Virteq