Há um bom tempo programo php com a ajuda de vocês aqui do fórum. Porem, tem um coisa que, não somente eu mas, muita gente tem dúvida. A bendita session.
Pois programo no estilo de includes. Onde tenho na pagina index.php, 5 chamadas de paginas por include as quais são:
A propria index.php. topo.php. menu.php, base.php e paginhas_conteudo.php.
O que esta acontecendo: Na pagina topo.php eu destruo a sessão criada e em uma pagina logon.php eu crio. Mas, na primeira linha da pagina index.php eu coloco o session_star();
E, quando rodo o topo.php para destruir a sessão, me deparo com uma nova chamada a session_start(); lá e o script exclui a sessão. Porem, em tempo de execução e muito rapido, diz que há erro na linha 3 do topo.php.
Como eu podria de vez, resolver isso?
Segue, os arquvos.
logar.php
<?
session_start();
include("global/funcoes_php/conexao.php");
?>
<?php
//////////////////////////////////CASO DE ADMINISTRADOR LOGAR///////////////////////////////
if ($acao=="admin") {
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$sql = $MySQL->query("select id, nome from admin where usuario='$usuario' and senha='$senha'");
$num = mysql_num_rows($sql);
if ($num==0) { echo "<script>document.location='index.php?erroadmin=invalido'</script>"; }
else {
$sql = $MySQL->query("select id, nome, bloqueio from admin where usuario='$usuario'");
$bloqueio = mysql_result($sql,0,"bloqueio");
$name = mysql_result($sql,0,"nome");
$sessaologinadmin = mysql_result($sql,0,"id");
if ($bloqueio == "s") {
echo "<script>document.location='index.php?erroadmin=bloqueado'</script>";
}
else {
session_register("bloqueio");
session_register("name");
session_register("sessaologinadmin");
echo "<script>document.location='admin'</script>";
}
}
}
?>
Pergunta
Carlos Rocha
Pessoal.
Há um bom tempo programo php com a ajuda de vocês aqui do fórum. Porem, tem um coisa que, não somente eu mas, muita gente tem dúvida. A bendita session.
Pois programo no estilo de includes. Onde tenho na pagina index.php, 5 chamadas de paginas por include as quais são:
A propria index.php. topo.php. menu.php, base.php e paginhas_conteudo.php.
O que esta acontecendo: Na pagina topo.php eu destruo a sessão criada e em uma pagina logon.php eu crio. Mas, na primeira linha da pagina index.php eu coloco o session_star();
E, quando rodo o topo.php para destruir a sessão, me deparo com uma nova chamada a session_start(); lá e o script exclui a sessão. Porem, em tempo de execução e muito rapido, diz que há erro na linha 3 do topo.php.
Como eu podria de vez, resolver isso?
Segue, os arquvos.
logar.php
<? session_start(); include("global/funcoes_php/conexao.php"); ?> <?php //////////////////////////////////CASO DE ADMINISTRADOR LOGAR/////////////////////////////// if ($acao=="admin") { $usuario = $_POST['usuario']; $senha = $_POST['senha']; $sql = $MySQL->query("select id, nome from admin where usuario='$usuario' and senha='$senha'"); $num = mysql_num_rows($sql); if ($num==0) { echo "<script>document.location='index.php?erroadmin=invalido'</script>"; } else { $sql = $MySQL->query("select id, nome, bloqueio from admin where usuario='$usuario'"); $bloqueio = mysql_result($sql,0,"bloqueio"); $name = mysql_result($sql,0,"nome"); $sessaologinadmin = mysql_result($sql,0,"id"); if ($bloqueio == "s") { echo "<script>document.location='index.php?erroadmin=bloqueado'</script>"; } else { session_register("bloqueio"); session_register("name"); session_register("sessaologinadmin"); echo "<script>document.location='admin'</script>"; } } } ?>index.php<?php session_start(); header('Content-Type: text/html; charset=utf-8'); include("../global/funcoes_php/var.php"); include("../global/funcoes_php/conexao.php"); ?> <html> <head> <title><?php echo $title2; ?></title> <link href="../global/stilo.css" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <table width="1000" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td colspan="2"><? include("global/topo.php"); ?></td> </tr> <tr valign="top"> <td width="15%"><?php include("global/menu.php"); ?></td> <td width="85%" valign="middle" bgcolor="#FFFFFF"><? include("index_conteudo.php"); ?></td> </tr> <tr> <td colspan="2"><?php include("global/base.php"); ?></td> </tr> </table> </body> </html>topo.php<?php if ($acao =="logout"){ session_start(); session_unset(); session_destroy(); echo "<script>document.location='../index.php?erroadmin=deslogado'</script>"; } ?> <?php if ($sessaologinadmin) { $nome_admin = split(' ',$name); echo "<font color='#FFFFFF'><H1>Administrador $nome_admin[0]!</H1></font>"; } else { echo "<script>document.location='../index.php?erroadmin=deslogado'</script>"; } ?> <table border="0" cellpadding="0" cellspacing="0" width="708"> <tr> <td colspan="2" rowspan="3" align="right"><img src="figuras/logo_administracao.png" border="0" width="200"></td> </tr> </table>menu.php base.php index_conteudo.phpGrato à aquem puder ajudar
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.