Jump to content
Sign in to follow this  
Hyuuga

[AJUDA] Ao tentar cadastrar categoria ele destroi a sessão ?

Recommended Posts

Hyuuga

Não consegui achar o erro :S Ao tentar cadastrar uma categoria ele destrói a sessão. Mas é ao Tentar mesmo, tipo quando eu clico na caixinha para escrever a categoria (esqueci o nome dela agora), ele já destrói a sessão e me manda para a tela de Login :S

addCategoria.php

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<div class="formularioPainel">

	 <form action="" method="POST" enctype="multipart/form-data">
	 <label>
	 <span>Categoria: </span>
	 <input type="text" name="categoria" />
	 </label>

	 <input type="submit" value="Cadastrar" />
	 <input type="hidden" name="acao" value="cadastrar_categoria" />
	 </form>
	 </div>
	 <?php

if(isset($_POST['acao']) && $_POST['acao'] == "cadastrar_categoria"){

$categoria = $_POST['categoria'];

if($categoria == ""){
echo "<script>alert('O campo categoria não pode ficar vazio!')</script>";
}else {
$selectCat = mysql_query("SELECT * FROM categorias WHERE categoria = '$categoria'");

if(mysql_num_rows($selectCat) == 1) {
echo "<script>alert('Esta categoria já existe!')</script>";
}else{
$selectCat = mysql_query("INSERT INTO categorias (categoria) VALUES('$categoria')");
echo "<script>alert('Categoria adicionada com sucesso!')</script>";
}
}
}

?>

painel.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
session_start();
include("config.php");
include("funcoes.php");
protegePagina();

if(isset($_GET['acao']) && $_GET['acao'] == "sair" ){
sairPagina();
}

?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Painel</title>
<link href='css/estilo.css' rel='stylesheet' type='text/css'/>
</head>

<body>

<div class="header">
<div class="logo"></div>
 <div class="extra"></div>
 Olá <?php echo $_SESSION['usuario']; ?>, seja bem vindo!
 </div>

<div class="menu-lado">

<a href="painel.php">Início</td>
 <a href="painel.php?pg=addUsuario">Cadastrar Usuários</td>
 <a href="painel.php?pg=addCategoria">Cadastrar Categoria</td>
 <a href="painel.php?pg=addPostagem">Cadastrar Postagem</td>
 <a href="painel.php?acao=sair">Sair</td>

 </div>
<div class="painel">
<?php

//error_reporting(0);

@$parametro = $_GET["pg"];

if(isset($parametro)){
include("$parametro.php");
}else{
include("mostraUsuarios.php");
}

 ?>
</div>

 </div> <!--Fechamento div Principal Box-->

</body>
</html>

Edited by Hyuuga

Share this post


Link to post
Share on other sites
Devexz

1º a session tem de ser inicializada antes de qualquer output.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
session_start();

Tem de passar a

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

2º Dizes que manda para a página de login, onde está essa parte do código?

Edited by Devexz

Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
Hyuuga

Esse é o problema não sei de onde ta vindo esse erro :S Eu só estou mexendo na painel.php, estilo.css e addCategoria.php mas a estilo não tem nada haver

Share this post


Link to post
Share on other sites
Devexz

só porque estás a mexer só nessas páginas não quer dizer que o erro só tem de vir daí.

Estás a fazer vários includes e chamar funções, muito provavelmente o problema deve estar por aí.

O que é que esta função faz? protegePagina();


Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
Hyuuga

o

protegePagina();

é para proteger a pagina, para que outra pessoa não possa acessa-la sem estar logado!

funcoes.php


<?php

   function protegePagina(){

       if(!$_SESSION['usuario'] || !$_SESSION['senha']){
           echo"<script>alert('Ops, você não está logado!');location.href= 'index.php'</script>";
           }
       }

   function sairPagina(){

           session_destroy();
           echo"<script>location.href= 'index.php'</script>";
       }

?>

Share this post


Link to post
Share on other sites
oxyzero

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<div class="formularioPainel">

	 <form action="" method="POST" enctype="multipart/form-data">
	 <label>
	 <span>Categoria: </span>
	 <input type="text" name="categoria" />
	 </label>

	 <input type="submit" [b]name="cadastrar_categoria"[/b]  value="Cadastrar" />
	 </form>
	 </div>
	 <?php

[b]if(isset($_POST['cadastrar_categoria']){[/b]

$categoria = $_POST['categoria'];

if($categoria == ""){
echo "<script>alert('O campo categoria não pode ficar vazio!')</script>";
}else {
$selectCat = mysql_query("SELECT * FROM categorias WHERE categoria = '$categoria'");

if(mysql_num_rows($selectCat) == 1) {
echo "<script>alert('Esta categoria já existe!')</script>";
}else{
$selectCat = mysql_query("INSERT INTO categorias (categoria) VALUES('$categoria')");
echo "<script>alert('Categoria adicionada com sucesso!')</script>";
}
}
}

?>

Experimenta mudar o teu código para o que meti a negrito. Não faz muito sentido, visto que POST e GET são arrays completamente diferentes, logo um não iria influenciar o outro, alias no teu código o GET nunca obtem o "sair" no addCategoria.php. Tens no url accao=sair?

Não estou mesmo a ver xd

Share this post


Link to post
Share on other sites
Hyuuga

Tipo assim, eu consegui resolver o erro de ele destruir a sessão, mas ao invez de resolver o erro, o erro virou outro que não sei como resolver :S

Tipo assim, na hora de cadastrar um usuário (Antes funcionava perfeitamente) ele ao invez de escrever ta servindo como imagem linkada, tipo assim, se clicar na "caixinha para escrever" e arrastar ela pega tudo do formulário, label, botão, a caixinha, como se fosse uma imagem. e se eu clico na caixinha para escrever alguma coisa ele me redireciona para uma outra pagina que eu ainda não fiz nada, só está criada mas não fiz. antes de eu fazer a pagina, ela me retornava um erro e destruia a sessão, depois que eu criei a pagina, eu fui testar: cliquei na caixinha para escrever e ela não me deixa escrever, tipo eu clico e o "clique some" tipo eu clico e acontece como se eu tivesse clicado fora ou não ter clicado, não da pra escrever, e se eu seguro o clique na caixinha e tento escrever algo, quando eu tiro o dedo do mouse o que eu escrevi some, some e ainda meio que atualiza a pagina, não entendi o erro :S

painel.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
   session_start();
   include("config.php");
   include("funcoes.php");
   protegePagina();

?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Painel Administrativo</title>
<link href='css/estilo.css' rel='stylesheet' type='text/css'/>
</head>

<body>

       <div class="topo">
    <span>
      Bem Vindo, <?php echo $_SESSION['usuario']; ?>
	 - <a href='?acao=sair'>Sair</a>

       <?php
           if(isset($_GET['acao']) && $_GET['acao'] == 'sair' ){

               sairPagina();
       }

       ?>
  		 </span>
    </div>





   <div class="header">
       <div class="logo"></div>

    </div>

   <div class="menu-lado">

                   <td><a href='painel.php'>Início</td>
          	       <td><a href='painel.php?pg=addUsuario'>Cadastrar Usuários</td>
             	       <td><a href='painel.php?pg=addCategoria'>Cadastrar Categoria</td>
            	       <td><a href=''>Cadastrar Postagem</td>


    </div>    

   <div class="painel">
       <?php

           //error_reporting(0);

               @$parametro = $_GET["pg"];

               if(isset($parametro)){
               include("$parametro.php");
               }else{
               include("mostraUsuarios.php");
           }

    ?>  
       </div>

 </div> <!--Fechamento div Principal Box-->

</body>
</html>

addCategoria.php


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

   <div class="formularioPainel">

	    <form action="" method="POST" enctype="multipart/form-data">
		    <label>
			    <span>Categoria: </span>
			    <input type="text" name="categoria" />
		    </label>
	    <input type="submit" value="Cadastrar" />
	    <input type="hidden" name="acao" value="cadastrar_categoria" />
	    </form>
  		        </div>
	    <?php

               if(isset($_POST['acao']) && $_POST['acao'] == "cadastrar_categoria"){

                           $categoria    = $_POST['categoria'];

                   if($categoria == ""){
                       echo "<script>alert('O campo categoria não pode ficar vazio!')</script>";
                       }else {
                   $selectCat  = mysql_query("SELECT * FROM categorias WHERE categoria = '$categoria'");

                   if(mysql_num_rows($selectCat) == 1) {
                       echo "<script>alert('Esta categoria já existe!')</script>";
                       }else{
                       $inserirRegistro = mysql_query("INSERT INTO categorias (categoria) VALUES('$categoria')");
                       echo "<script>alert('Categoria adicionada com sucesso!')</script>";
                           }
                   }
               }

            ?>

addUsuario.php


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

   <div class="formularioPainel">

	    <form action="" method="POST" enctype="multipart/form-data">
	    <label>
	    <span>Usuário: </span>
	    <input type="text" name="usuario" />
	    </label>
	    <label>
	    <span>Senha: </span>
	    <input type="password" name="senha" />
	    </label>

	    <label>
	    <span>Tipo de usuário: </span>
           <select name="nivel">
		    <option value="Membro">Membro</option>
		    <option value="Administrador">Administrador</option>
	    </select>
	    </label>

	    <input type="submit" value="Cadastrar" />
	    <input type="hidden" name="acao" value="cadastrar_usuario" />
	    </form>
  		        </div>
	    <?php

               if(isset($_POST['acao']) && $_POST['acao'] == "cadastrar_usuario"){

                           $usuario    = trim($_POST['usuario']);
                           $senha        = trim($_POST['senha']);
                           $nivel        = trim($_POST['nivel']);

                   if($usuario == "" || $senha == ""){
                       echo "<script>alert('Os campos não podem ficar vazios!')</script>";
                       }else {
                   $selectRegistro  = mysql_query("SELECT * FROM usuarios WHERE usuario = '$usuario'");

                   if(mysql_num_rows($selectRegistro) == 1) {
                       echo "<script>alert('Este usuário já existe!')</script>";
                       }else{
                       $inserirRegistro = mysql_query("INSERT INTO usuarios (nivel, usuario, senha) VALUES('$nivel','$usuario','$senha')");
                       echo "<script>alert('Registro adicionado com sucesso!')</script>";
                           }
                   }
               }

            ?>

funcoes.php


<?php

   function protegePagina(){

       if(!$_SESSION['usuario'] || !$_SESSION['senha']){
           echo"<script>alert('Ops, você não está logado!');location.href= 'index.php'</script>";
           }
       }

   function sairPagina(){

           session_destroy();
           echo"<script>location.href= 'index.php'</script>";
       }

?>

a pagina addPostagem ainda está em branco. Bom, é isso, não sei resolver esse erro, '-'

Share this post


Link to post
Share on other sites
Devexz

Tipo assim, eu consegui resolver o erro de ele destruir a sessão, mas ao invez de resolver o erro, o erro virou outro que não sei como resolver :S

Tipo assim, na hora de cadastrar um usuário (Antes funcionava perfeitamente) ele ao invez de escrever ta servindo como imagem linkada, tipo assim, se clicar na "caixinha para escrever" e arrastar ela pega tudo do formulário, label, botão, a caixinha, como se fosse uma imagem. e se eu clico na caixinha para escrever alguma coisa ele me redireciona para uma outra pagina que eu ainda não fiz nada, só está criada mas não fiz. antes de eu fazer a pagina, ela me retornava um erro e destruia a sessão, depois que eu criei a pagina, eu fui testar: cliquei na caixinha para escrever e ela não me deixa escrever, tipo eu clico e o "clique some" tipo eu clico e acontece como se eu tivesse clicado fora ou não ter clicado, não da pra escrever, e se eu seguro o clique na caixinha e tento escrever algo, quando eu tiro o dedo do mouse o que eu escrevi some, some e ainda meio que atualiza a pagina, não entendi o erro :S

Eu não percebi nada do que disseste nesse testamento.

E tu não percebeste a parte em que eu disse-te para iniciares a session antes de qualquer output html.


Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
Hyuuga

Não, também não entendi kkkk' to confuso nesses códigos, to entendendo mais bosta nenhuma kkkkkk' poderia explicar um pouquinho melhor ?

@Edit

Pode deixar, já consegui resolver!

Edited by Hyuuga

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.