Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) não cria cookies


Jota Miler

Pergunta

ola pessoal, to com um problemiinha aki,

eu tenho um campo de login e senha cujo qual eu uso pra valodar usuarios de tabeas diferentes,

eu to começando a pegar as manhas do php mais ainda to bem faquinho, fiz um código muito loko aki com o pouco conhecimento que eu tenho porque não da pra eu fikar tentando coisas muito novas pois tenho que entregar um site pra um amigo que prometi até semana que vem, mais vamos logo ao assunto:

este campo que eu uso pra validar os usuários, (lembrando que os usuáriso estão em tabelas diferentes no banco de dados)

eu estou usando esse código muito loko aki

:

<?
if($acao=='verifica') //se vier com a ação verifica, executa o codigoabaixo

{

require_once  "config.php";
require_once  "conexao.php";
$cod=base64_encode($passen);
$teste = "Select count(*) as soma from usuarios WHERE login='$txtlog' and senha='$cod'" or die(mysql_error());
$teste2 = mysql_query($teste);
$comp = mysql_result($teste2,0,"soma"); //verifica se o usuário existe nesta tabela

    if($comp==0) //se não existir, verifica se existe nesta tabela
    {
        require_once  "config.php";
        require_once  "conexao.php";
        $cod=base64_encode($passen);
        $teste1 = "Select count(*) as soma from repres WHERE login='$txtlog' and senha='$cod'" or die(mysql_error());
        $teste3 = mysql_query($teste1);
        $comp2 = mysql_result($teste3,0,"soma");
        
                if($comp2!==0) //se existir na tabea repres, executa o codigo abaixo
                    {
                        include "conexao.php";

                        $cod=base64_encode($passen); //codifica a senha do campo passen

                        $dec=base64_decode($cod); // decodifica a variavel cod

                        $resultado2=mysql_query("Select * FROM repres WHERE login='$txtlog' and senha='$cod'") or die(mysql_error());

                        $reg2=mysql_fetch_array($resultado2);
    
                        $status = $reg2['status']; 
                        
                        if($status == 'não') // se o usuario existente estiver com o status 'não' exibe o alerta abaixo
    
                                {
                                    echo "&lt;script>window.alert(\"Este usuário foi DESATIVADO pelo ADMINISTRADOR!\");</script>";
                                    echo "&lt;script>window.location='$url'</script>";
    
                                }
    
                        else
                                {

                                    $id_repres=$reg2['id_repres'];

                                    $raz=$reg2['razao'];

                                    $cnpj_cpf=$reg2['cnpj_cpf'];
    
                                       if(mysql_num_rows($resultado2)) //se existir uma linha na tabela cria os cookies

                                            {
    
                                                setcookie("repres",true);

                                                setcookie("user",$raz);

                                                setcookie("iduser",$id_repres);

                                                setcookie("cnpj_cpf",$cnpj_cpf);

                                                setcookie("usuario",$txtlog);

                                                header("location:$url/repres/index1.php"); //redireciona para o painel após acriação dos cookies
           
                                               }
                                        else
                                            {
                                                echo "&lt;script>window.alert(\"DESCULPE! Você não é nosso representante! Para ser nosso representante faça seu cadastro.!\");</script>";
                                                echo "&lt;script>window.location='$url/cadastro.php';</script>";

                                            }    

                                }

                    }
                else
                    {
                        echo "&lt;script>window.alert(\"DESCULPE! Representante não identificado!\");</script>";
                        echo "&lt;script>window.location='$url';</script>";
                    }

    }
    else //se o usuário existir na tabela 'usuarios' executa o codigo abaixo
    {
        include "conexao.php";

            $cod=base64_encode($passen);

        $dec=base64_decode($cod);

        $resultado=mysql_query("Select * FROM usuarios WHERE login='$txtlog' and senha='$cod'");

           $reg=mysql_fetch_array($resultado);

        $status = $reg['status'];

        $idus=$reg['id_us'];

        $us=$reg['nome'];

        $se=$reg['sexo'];
    
           if(mysql_num_rows($resultado))

               {
    
                setcookie("logado",true);

                setcookie("user",$us);

                setcookie("iduser",$idus);

                setcookie("sex",$se);

                setcookie("usuario",$txtlog);

                header("location:index1.php");
                
                  }

    }
    

}

else
{
    echo "&lt;script>window.alert(\"DESCULPE! Seu acesso foi negado para esta área!\");</script>";
    echo "&lt;script>window.location='$url';</script>";
}

?>
então ele esta comentado para facilitar a coompreenção, sei que deve ter jeito mais facil de fazer isso, mais no momento to sem tempo. meu problema é o seguinte: se o usuário existir na tabela 'usuarios' ele verifica e cria os cookies e me redireciona para o painel de controle principal. mais quando ele reconhece que o usuário existe na tabela 'repres' ele me redireciona mais não cria os cookies. já tive um problema onde ele não criava os cookies e ainda dava um erro de que não pode ser alterado o cabeçalho, isso resolvi adicionando o código
ob_start();

no arquivo config ai rodou de boa,

alguém PODE ME EXPLICAR porque O MEU AQUIVO CRIA O COOKIE PARA A TABELA URUÁRIO E NÃO CRIA PARA O OUTRO??

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

dexa quieto, já resolvi, fiz em $_SESSION

nunca mais eu mexo com essa merda de cookies

rsrsr

bom pensando melhor vou postar o codigo aki pra quem quizer, ele é muito util e simples de lidar creio que se adapte a qualquer usuario

esse é o campo que chama o log.php

<form name="form1" method="post" action="log.php?acao=verifica">
                                            <table border="0" cellpadding="0" cellspacing="3">
                                              <tr> 
                                                <td><font color="#FF6600" face="Arial, Helvetica, sans-serif"><strong>Login</strong></font></td>
                                                <td> <input name="txtlog" type="text" id="txtlog" size="15"> 
                                                </td>
                                              </tr>
                                              <tr> 
                                                <td><font color="#FF6600" face="Arial, Helvetica, sans-serif"><strong>Senha</strong></font></td>
                                                <td><input name="passen" type="password" id="passen" size="15"></td>
                                              </tr>
                                              <tr> 
                                                <td colspan="2"> <div align="center"> 
                                                    <input type="submit" name="Submit" value="Enviar">
                                                  </div></td>
                                              </tr>
                                              
                                            </table>
                                          </form>
este é o log.php (ATENCÃO, ESTE LOG É PARA QUEM TEM 2 TABELAS PARA USUARIOS DIFERENTES, MAIS SE TIVER UM POKINHO DE CONHECIMENTO É SÓ ALTERAR)
<? ob_start();
if($acao=='verifica') //se vier com a ação verifica, executa o codigoabaixo

{

require_once  "config.php";
require_once  "conexao.php";
$cod=base64_encode($passen);
$teste = "Select count(*) as soma from usuarios WHERE login='$txtlog' and senha='$cod'" or die(mysql_error());
$teste2 = mysql_query($teste);
$comp = mysql_result($teste2,0,"soma"); //verifica se o usuário existe nesta tabela

    if($comp==0) //se não existir, verifica se existe nesta tabela
    {
        require_once  "config.php";
        require_once  "conexao.php";
        $cod=base64_encode($passen);
        $teste1 = "Select count(*) as soma from repres WHERE login='$txtlog' and senha='$cod'" or die(mysql_error());
        $teste3 = mysql_query($teste1);
        $comp2 = mysql_result($teste3,0,"soma");
        
                if($comp2!==0) //se existir na tabea repres, executa o codigo abaixo
                    {
                        include "conexao.php";

                        $cod=base64_encode($passen); //codifica a senha do campo passen

                        $dec=base64_decode($cod); // decodifica a variavel cod

                        $resultado2=mysql_query("Select * FROM repres WHERE login='$txtlog' and senha='$cod'") or die(mysql_error());

                        $reg2=mysql_fetch_array($resultado2);
    
                        $status = $reg2['status']; 
                        
                        if($status == 'não') // se o usuario existente estiver com o status 'não' exibe o alerta abaixo
    
                                {
                                    echo "<script>window.alert(\"Este usuário foi DESATIVADO pelo ADMINISTRADOR!\");</script>";
                                    echo "<script>window.location='$url'</script>";
    
                                }
    
                        else
                                {

                                    $id_repres=$reg2['id_repres'];

                                    $raz=$reg2['razao'];

                                    $cnpj_cpf=$reg2['cnpj_cpf'];
    
                                       if(mysql_num_rows($resultado2)) //se existir uma linha na tabela cria os cookies

                                            {
                                                session_start();
                                                
                                                        $_SESSION["repres"] = true;                        
                                                        $_SESSION["user"] = $raz;
                                                        $_SESSION["razao"] = $raz;
                                                        $_SESSION["cnpj_cpf"] = $cnpj_cpf;
                                                                                                                $_SESSION["usuario"] = $txtlog;
                
    
                                                        if($repres=true)
                                                        {
                                                header("location:$url/repres/index1.php"); //redireciona para o painel após acriação dos cookies
                                                           }
                                                        else
                                                        {
                                                        echo "<script>window.alert(\"O COOKIE de login não foi criado!\");</script>";

                                                        }
                                               }
                                        else
                                            {
                                                echo "<script>window.alert(\"DESCULPE! Você não é nosso representante! Para ser nosso representante faça seu cadastro.!\");</script>";
                                                echo "<script>window.location='$url/cadastro.php';</script>";

                                            }    

                                }

                    }
    }
    else //se o usuário existir na tabela 'usuarios' executa o codigo abaixo
    {
        include "conexao.php";

            $cod=base64_encode($passen);

        $dec=base64_decode($cod);

        $resultado=mysql_query("Select * FROM usuarios WHERE login='$txtlog' and senha='$cod'");

           $reg=mysql_fetch_array($resultado);

        $status = $reg['status'];

        $idus=$reg['id_us'];

        $us=$reg['nome'];

        $se=$reg['sexo'];
    
           if(mysql_num_rows($resultado))

               {
                    session_start();
                                                
                    $_SESSION["logado"] = true;
                    $_SESSION["user"] = $us;
                    $_SESSION["iduser"] = $idus;
                    $_SESSION["sex"] = $se;
                    $_SESSION["usuario"] = $txtlog;
                
                        if($logado==true)
                        {
                header("location:$url/admin/index1.php");
                        }
                        else
                        {
                        echo "<script>window.alert(\"O COOKIE de login não foi criado!\");</script>";
                        }
                  }

    }
     

}

else
{
    echo "<script>window.alert(\"DESCULPE! Seu acesso foi negado para esta área!\");</script>";
    echo "<script>window.location='$url';</script>";
}

?>
ESSE É O valida_logar.php (tem dois um pra cada painel, os dois são iguais, só mudar a variavel dentro da $_session de acordo com o log.php)
<?
 session_start();
if(empty($_SESSION["logado"])) 
{
    echo "<script>window.alert(\"DESCULPE! Seu acesso foi negado para esta área!\");</script>";
    echo "<script>window.location='$url';</script>";
}
?>
esse é o mais legal ahuhauahauh o destruidor de sessão deslog.php
<?
session_start();

  //DESTRÓI A SESSÃO
  $destroi = session_destroy();

 if(!empty($destroi) )
 {
  echo "<script>window.alert(\"Deslogado com SUCESSO!\");</script>";
  echo "<script>window.location='../index.php'</script>";
 } 


   
?>

espero que façam bom uso té mais

Link para o comentário
Compartilhar em outros sites

  • 0
dexa quieto, já resolvi, fiz em $_SESSION

nunca mais eu mexo com essa merda de cookies

rsrsr

bom pensando melhor vou postar o codigo aki pra quem quizer, ele é muito util e simples de lidar creio que se adapte a qualquer usuario

esse é o campo que chama o log.php

<form name="form1" method="post" action="log.php?acao=verifica">
                                            <table border="0" cellpadding="0" cellspacing="3">
                                              <tr> 
                                                <td><font color="#FF6600" face="Arial, Helvetica, sans-serif"><strong>Login</strong></font></td>
                                                <td> <input name="txtlog" type="text" id="txtlog" size="15"> 
                                                </td>
                                              </tr>
                                              <tr> 
                                                <td><font color="#FF6600" face="Arial, Helvetica, sans-serif"><strong>Senha</strong></font></td>
                                                <td><input name="passen" type="password" id="passen" size="15"></td>
                                              </tr>
                                              <tr> 
                                                <td colspan="2"> <div align="center"> 
                                                    <input type="submit" name="Submit" value="Enviar">
                                                  </div></td>
                                              </tr>
                                              
                                            </table>
                                          </form>
este é o log.php (ATENCÃO, ESTE LOG É PARA QUEM TEM 2 TABELAS PARA USUARIOS DIFERENTES, MAIS SE TIVER UM POKINHO DE CONHECIMENTO É SÓ ALTERAR)
<? ob_start();
if($acao=='verifica') //se vier com a ação verifica, executa o codigoabaixo

{

require_once  "config.php";
require_once  "conexao.php";
$cod=base64_encode($passen);
$teste = "Select count(*) as soma from usuarios WHERE login='$txtlog' and senha='$cod'" or die(mysql_error());
$teste2 = mysql_query($teste);
$comp = mysql_result($teste2,0,"soma"); //verifica se o usuário existe nesta tabela

    if($comp==0) //se não existir, verifica se existe nesta tabela
    {
        require_once  "config.php";
        require_once  "conexao.php";
        $cod=base64_encode($passen);
        $teste1 = "Select count(*) as soma from repres WHERE login='$txtlog' and senha='$cod'" or die(mysql_error());
        $teste3 = mysql_query($teste1);
        $comp2 = mysql_result($teste3,0,"soma");
        
                if($comp2!==0) //se existir na tabea repres, executa o codigo abaixo
                    {
                        include "conexao.php";

                        $cod=base64_encode($passen); //codifica a senha do campo passen

                        $dec=base64_decode($cod); // decodifica a variavel cod

                        $resultado2=mysql_query("Select * FROM repres WHERE login='$txtlog' and senha='$cod'") or die(mysql_error());

                        $reg2=mysql_fetch_array($resultado2);
    
                        $status = $reg2['status']; 
                        
                        if($status == 'não') // se o usuario existente estiver com o status 'não' exibe o alerta abaixo
    
                                {
                                    echo "&lt;script>window.alert(\"Este usuário foi DESATIVADO pelo ADMINISTRADOR!\");</script>";
                                    echo "&lt;script>window.location='$url'</script>";
    
                                }
    
                        else
                                {

                                    $id_repres=$reg2['id_repres'];

                                    $raz=$reg2['razao'];

                                    $cnpj_cpf=$reg2['cnpj_cpf'];
    
                                       if(mysql_num_rows($resultado2)) //se existir uma linha na tabela cria os cookies

                                            {
                                                session_start();
                                                
                                                        $_SESSION["repres"] = true;                        
                                                        $_SESSION["user"] = $raz;
                                                        $_SESSION["razao"] = $raz;
                                                        $_SESSION["cnpj_cpf"] = $cnpj_cpf;
                                                                                                                $_SESSION["usuario"] = $txtlog;
                
    
                                                        if($repres=true)
                                                        {
                                                header("location:$url/repres/index1.php"); //redireciona para o painel após acriação dos cookies
                                                           }
                                                        else
                                                        {
                                                        echo "&lt;script>window.alert(\"O COOKIE de login não foi criado!\");</script>";

                                                        }
                                               }
                                        else
                                            {
                                                echo "&lt;script>window.alert(\"DESCULPE! Você não é nosso representante! Para ser nosso representante faça seu cadastro.!\");</script>";
                                                echo "&lt;script>window.location='$url/cadastro.php';</script>";

                                            }    

                                }

                    }
    }
    else //se o usuário existir na tabela 'usuarios' executa o codigo abaixo
    {
        include "conexao.php";

            $cod=base64_encode($passen);

        $dec=base64_decode($cod);

        $resultado=mysql_query("Select * FROM usuarios WHERE login='$txtlog' and senha='$cod'");

           $reg=mysql_fetch_array($resultado);

        $status = $reg['status'];

        $idus=$reg['id_us'];

        $us=$reg['nome'];

        $se=$reg['sexo'];
    
           if(mysql_num_rows($resultado))

               {
                    session_start();
                                                
                    $_SESSION["logado"] = true;
                    $_SESSION["user"] = $us;
                    $_SESSION["iduser"] = $idus;
                    $_SESSION["sex"] = $se;
                    $_SESSION["usuario"] = $txtlog;
                
                        if($logado==true)
                        {
                header("location:$url/admin/index1.php");
                        }
                        else
                        {
                        echo "&lt;script>window.alert(\"O COOKIE de login não foi criado!\");</script>";
                        }
                  }

    }
     

}

else
{
    echo "&lt;script>window.alert(\"DESCULPE! Seu acesso foi negado para esta área!\");</script>";
    echo "&lt;script>window.location='$url';</script>";
}

?>
ESSE É O valida_logar.php (tem dois um pra cada painel, os dois são iguais, só mudar a variavel dentro da $_session de acordo com o log.php)
<?
 session_start();
if(empty($_SESSION["logado"])) 
{
    echo "&lt;script>window.alert(\"DESCULPE! Seu acesso foi negado para esta área!\");</script>";
    echo "&lt;script>window.location='$url';</script>";
}
?>
esse é o mais legal ahuhauahauh o destruidor de sessão deslog.php
<?
session_start();

  //DESTRÓI A SESSÃO
  $destroi = session_destroy();

 if(!empty($destroi) )
 {
  echo "&lt;script>window.alert(\"Deslogado com SUCESSO!\");</script>";
  echo "&lt;script>window.location='../index.php'</script>";
 } 


   
?>

espero que façam bom uso té mais

Amigo, nesse código você cometeu um erro de duplicação incessante sem necessidade... me corrijam os outros amigos se eu estiver errado mas...

if($acao=='verifica') //se vier com a ação verifica, executa o codigoabaixo

{

require_once "config.php";

require_once "conexao.php";

$cod=base64_encode($passen);

$teste = "Select count(*) as soma from usuarios WHERE login='$txtlog' and senha='$cod'" or die(mysql_error());

$teste2 = mysql_query($teste);

$comp = mysql_result($teste2,0,"soma"); //verifica se o usuário existe nesta tabela

if($comp==0) //se não existir, verifica se existe nesta tabela

{

require_once "config.php";

require_once "conexao.php";

$cod=base64_encode($passen);

Bom amigo, você repete várias vezes " require_once ..."

Você só necessitar disso uma única vez no começo do script...

Bom... um dos erros que vi...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...