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

Problemas Com Sessoes


Carlos Rocha

Pergunta

Ola pessoal, olha a situação que to nela:

eu tinha um site hospedado em um servidor e rersolvi mudar de servidor. Resultado? Meu script de sessões não funciona por nada.

Tenho 4 paginas:

1 - index.php (pagina de login)

2 - logar.php (autenticação)

3 - global/sessoes.php (onde estão as sessões) e...

4 - paginas/administracao.php (a pagina de quem consegue passar pelo login)

Bom!

Na administracao.php, eu tenho sessoes que irao reconhecer se o titlo da pagina, o loguin, etc.. Só que tem uma varivel que uso para cumprimentar o administrador que num chega nas administracao.php de jeito nenhum.

Deem um olhada e me ajudem a encontrar o erro.

Obs.: já testei as consulta ao mysql retornam os valores direito. Seguem os códigos.

index.php

<? include("global/Autentica_Index.php"); ?>
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body BACKGROUND="../figuras/fundo_verde_escuro.jpg">
<form action="Logar.php" method=post>
<P>
<center><H2>Administração</H2></center>
<P>
<TABLE border=2 cellpadding=14 align=center width=100%>
<tr>
  <td width="17%"><?php
  if ($erro == "") { echo ("<img src='figuras/adimin2.jpg' width=100"); }  
  if ($erro == "invalido") { echo ("<font color=#CC3366 size=-1><b>Usuário Inválido<br>ou senha não confere</b></font>"); }
  if ($erro == "bloqueado"){ echo ("<font color=#CC3366 size=-1><b>Usuário Bloqueado</b></font>"); }
  ?>
  </TD>
    <td width="83%" colspan=2>
    <TABLE>
    <TR>
    <TD><font size=+1>usuario:</font></TD>
    <TD><INPUT TYPE="text" NAME="usuario" VALUE="" SIZE=20 MAXLENGTH=40></TD>
    </TR>
    <TR>
    <TD><font size=+1>senha:</font></TD>
    <TD><INPUT TYPE="password" NAME="senha" VALUE="" SIZE=20 MAXLENGTH=40></TD>
    </TR>
    </TABLE>
    </TD>
</tr>
</table>
<P>
<center>
<input type="button" value="Enviar" onClick="CriticaFormulario()">
<input type="reset"  value="Apagar"> 
</center>
</FORM>
<p align="center"></font></i><small><font face="Verdana"><strong>
<a href="java script:window.history.go(-1)">Voltar</a>&nbsp;&nbsp;&nbsp; 
<a href="java script:window.history.go(1)">Avançar</a>&nbsp;&nbsp;&nbsp; 
<a href="index.php">Página principal</a>&nbsp;&nbsp;&nbsp; 
</strong></font></small></p>
</body>
</html>
logar.php
<?php include("../global/conexao.php"); ?>
<?php
session_start();

$usuario = $_POST['usuario'];
$senha = $_POST['senha'];

$sql = mysql_query("select nome from admin where usuario='$usuario' and senha='$senha'");
$num = mysql_num_rows($sql);

if ($num==0) {
   echo "<script>document.location='index.php?erro=invalido'</script>";
} else {
$sql = mysql_query("select * from admin where usuario='$usuario'");
$BLOQUEIO = mysql_result($sql,0,"Bloqueio");
IF ($BLOQUEIO == "S") { 
   echo "<script>document.location='index.php?erro=bloqueado'</script>";
                      }
else {
$BLOQUEIO = mysql_result($sql,0,"Bloqueio");
$NAME = mysql_result($sql,0,"nome");
session_register("BLOQUEIO");
session_register("NAME");
echo "<script>document.location='paginas_controle/Administracao.php'</script>";
}
}
?>
sessoes.php
<?php
session_start();
session_register("NAME");
session_register("BLOQUEIO");
session_register("title");
session_register("$email_site");
session_register("$title2");
$title2="Dinamica Imóveis";
$email_site="contato@dinamicaimoveis.com.br";
$title="DINAMICA IM&Oacute;VEIS ::::::  AMBIENTE ADMINISTRATIVO";
function test_login() {
global $NAME;
global $title;
global $BLOQUEIO;
if (!isset($NAME)) {
echo "<script>document.location='../semcadastro.php'</script>";
                   }
if (!isset($BLOQUEIO)) {
echo "<script>document.location='../semcadastro.php'</script>";
                       }

                      }
?>
<?  include("../global/sessoes.php"); ?>
<? $Nome_admin = split(' ',$NAME); ?>
<? test_login(); echo "<H1>Olá $Nome_admin[0]!</H1>"; ?>
<html>
<head>
<title><?php echo $title; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="2"><? include("../global/topo.php"); ?></td>
  </tr>
  <tr valign="top">
    <td width="27%"><?php include("../global/menu.php"); ?></td>
    <td width="73%" valign="middle"><center>:::::: AMBIENTE ADMINISTRATIVO ::::::</center></td>
  </tr>
  <tr>
    <td colspan="2"><?php include("../global/base.php"); ?></td>
  </tr>
</table>

</body>
</html>

Obrigado!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Register_globals deve estar desativada no seu seu servidor... duas soluções:

1 - Altere o script pra ele funcionar independente de register_globals (utilizando a superglobal $_SESSION (o mais recomendado);

2 - Coloca um arquivo chamado php.ini com o seguinte conteúdo:

register_globals = on

Coloque isso em todas as pastas onde você precisa rodar o script, nem todos os hosts permitem isso... mas não custa tentar...

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado.

"EU ME RECUSO A ACREDITAR MAS É VERDADE"

Que Register_Globals, hehehe... estava desabilitada na php.ini do servidor eu já sabia pois e default mas, ter que colocar um arquivinho php.ini em cada diretório só com as alterações ae já é de + não é não?

Sera que num tem uim diretorio que posso colocar o nosso php.ini que sirva para o escopo do site todo não?

Mas se num tiver, dos males o menor pelo menos agora ta funcionando direito né?

já pensou, mudar a programação de todos os sites por causa disso!

De agora em diante vou usar $_session e MySql_Fetich_Array. Mas volto a perguntar:

"Sera que num tem uim diretorio que posso colocar o nosso php.ini que sirva para o escopo do site todo não?"

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que não.

Poder especificar uma configuração do PHP para cada diretório seria inclusive uma falha gravíssima de segurança. Imagina os host's onde a gente hospeda sites...

eles bloqueiam por exemplo funções como system, exec ... e aí chega um carinha, coloca um php.ini no seu diretório home e tem essas funções habilitadas ...

Melhor fazer uma programação mais limpa, com menos gambiarra possível para não se incomodar depois.

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
      652k
×
×
  • Criar Novo...