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

Problema acesso servidor


tms.guiri

Pergunta

Boa tarde a todos,

o problema é o seguinte, desenvolvi um site com área administrativa com código de segurança para o login. Esta funcionando perfeitamente em localhost, na minha máquina. Mas quando migro para o servidor web o login da área administrativa não redireciona o usuario para a sua pagina, na hora do submit ele continua na mesma pagina, mas os dados das variaveis de login e senha estão sendo armazenados nas variaveis e a busca esta sendo realizado no banco de dados, porque depois que tento o login e digito a pagina na URL ele vai para a area administrativa. Os codigos são estes:

VERIFICA LOGIN

<?php

include("security.php");

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';

$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';

if (validaUsuario($usuario, $senha) == true) {

header("Location:administracao.php");

} else {

expulsaVisitante();

}

}

?>

AGORA O CODIGO DE SEGURANÇA

<?php

// Configurações do Script

// ==============================

$_SG['conectaServidor'] = true; // Abre uma conexão com o servidor MySQL?

$_SG['abreSessao'] = true; // Inicia a sessão com um session_start()?

$_SG['caseSensitive'] = true; // Usar case-sensitive? Onde 'casa' é diferente de 'CASA'

$_SG['validaSempre'] = true; // Deseja validar o usuário e a senha a cada carregamento de página?

// Evita que, ao mudar os dados do usuário no banco de dado o mesmo contiue logado.

$_SG['servidor'] = 'localhost'; // Servidor MySQL

$_SG['usuario'] = 'NOMEUSUARIO'; // Usuário MySQL

$_SG['senha'] = 'SENHAUSUARIO'; // Senha MySQL

$_SG['banco'] = 'DATABASE'; // Banco de dados MySQL

$_SG['paginaLogin'] = 'index.html'; // Página de login

$_SG['tabela'] = 'usuarios'; // Nome da tabela onde os usuários são salvos

// ==============================

// ======================================

// ~ Não edite a partir deste ponto ~

// ======================================

// Verifica se precisa fazer a conexão com o MySQL

if ($_SG['conectaServidor'] == true) {

$_SG['link'] = mysql_connect($_SG['servidor'], $_SG['usuario'], $_SG['senha']) or die("MySQL: Não foi possível conectar-se ao servidor [".$_SG['servidor']."].");

mysql_select_db($_SG['banco'], $_SG['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_SG['banco']."].");

}

// Verifica se precisa iniciar a sessão

if ($_SG['abreSessao'] == true) {

session_start();

}

/**

* Função que valida um usuário e senha

*

* @param string $usuario - O usuário a ser validado

* @param string $senha - A senha a ser validada

*

* @return bool - Se o usuário foi validado ou não (true/false)

*/

function validaUsuario($usuario, $senha) {

global $_SG;

$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';

// Usa a função addslashes para escapar as aspas

$nusuario = addslashes($usuario);

$nsenha = addslashes($senha);

// Monta uma consulta SQL (query) para procurar um usuário

$sql = "SELECT `id`, `nome` FROM `".$_SG['tabela']."` WHERE ".$cS." `usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";

$query = mysql_query($sql);

$resultado = mysql_fetch_assoc($query);

// Verifica se encontrou algum registro

if (empty($resultado)) {

// Nenhum registro foi encontrado => o usuário é inválido

return false;

} else {

// O registro foi encontrado => o usuário é valido

// Definimos dois valores na sessão com os dados do usuário

$_SESSION['usuarioID'] = $resultado['id']; // Pega o valor da coluna 'id do registro encontrado no MySQL

$_SESSION['usuarioNome'] = $resultado['nome']; // Pega o valor da coluna 'nome' do registro encontrado no MySQL

// Verifica a opção se sempre validar o login

if ($_SG['validaSempre'] == true) {

// Definimos dois valores na sessão com os dados do login

$_SESSION['usuarioLogin'] = $usuario;

$_SESSION['usuarioSenha'] = $senha;

}

return true;

}

}

/**

* Função que protege uma página

*/

function protegePagina() {

global $_SG;

if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {

// Não há usuário logado, manda pra página de login

expulsaVisitante();

} else if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {

// Há usuário logado, verifica se precisa validar o login novamente

if ($_SG['validaSempre'] == true) {

// Verifica se os dados salvos na sessão batem com os dados do banco de dados

if (!validaUsuario($_SESSION['usuarioLogin'], $_SESSION['usuarioSenha'])) {

// Os dados não batem, manda pra tela de login

expulsaVisitante();

}

}

}

}

/**

* Função para expulsar um visitante

*/

function expulsaVisitante() {

global $_SG;

// Remove as variáveis da sessão (caso elas existam)

unset($_SESSION['usuarioID'], $_SESSION['usuarioNome'], $_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);

// Manda pra tela de login

header("Location: ".$_SG['paginaLogin']);

}

?>

Agradeço desde já e aguardo resposta, abraços a todos

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

No seu codigo security.php e este mesmo?

$_SG['servidor'] = 'localhost'; // Servidor MySQL
$_SG['usuario'] = 'NOMEUSUARIO'; // Usuário MySQL
$_SG['senha'] = 'SENHAUSUARIO'; // Senha MySQL
$_SG['banco'] = 'DATABASE'; // Banco de dados MySQL
Servidor localhost ? O certo seria no lugar do localhost seria www.nomedoseusite.com.br exemplo
<?php 
$entrar = mysql_connect("www.nomeDoSeuSite.com.br","Nome_usuario","A_Senha") or die ("não encontei o Servidor");
mysql_select_db("Nomedo_seu_Banco_deDados", $entrar)  or die ("Não encontrei o Bco de dados!");

// chamar o formulario de login e apos
header("Location:administracao.php");
?>

você editou os privilegios no cpanel no seu Site.?

Veja este tópico resposta dia 02/06/12 as 11,48hs se ajuda.

http://scriptbrasil.com.br/forum/index.php?showtopic=169653

Coloque os codigos com o code.

Editado por Alceu13
Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Alceu13,

Obrigado por responder e pela ajuda. Mas não tem a necessidade de mudar de "localhost" para "www.meusite.com.br" porque ele já esta acessando o banco de dados. O problema esta sendo apenas o redirecionamento, porque quando é submetido os dados no formulario de login o script não esta mandando o usuario para a área administrativa e sim , deixando ele na mesma pagina de login. Mas quando voce coloca o nome da pagina na URL, dessa forma:

www.meusite.com.br/areaadministrativa/ADMINISTRACAO.PHP

ele vai para a página administrativa, então isso quer dizer que esta tendo acesso ao banco, so que o redirecionamento não esta fazendo isso automaticamente. E quando não é efetuado o login ou com nome e senha errados, pode tentar colocar a pagina ADMINISTRACAO.PHP na URL que não loga, por causa do script SECURITY.PHP.

Então provavelmente o problema esta no script que esta checando o login , o VERIFICA_LOGIN que coloquei acima, logo o primeiro.

Se puder me ajudar novamente, agradeceria.

Ahhh e sobre o codigo é que não estava habilitando, estava dando erro quando tentava colocar na tag code, por isso enviei assim, me desculpe

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia JaguA,

Quando testo em localhost na minha máquina ele redireciona normalmente, loga normal para a devida página. Mas quando coloquei na Web, não redireciona.

Quando eu tento o login, ele fica na mesma página do login, não redireciona para devida página. Mas eu sei que esta comunicando com o banco de dados, porque ao fazer isso, basta eu mudar a URL para a página administrativa que ele loga, então quer dizer que o script de configuração do banco esta correto, somente o redirecionamento que está sendo o fator do erro. Mas o estranho é que localmente ele funciona e na Web não, sendo que é o mesmo script.

O arquivo de login esta no mesmo diretório da área administrativa, junto dos outros arquivos que eu quero acessar

Aguardo novamente uma resposta, abraços e agradeço novamente o empenho em me ajudar!

Link para o comentário
Compartilhar em outros sites

  • 0

Oi JaguA,

na index, tem um action para esta pagina:

VERIFICA LOGIN

<?php

include("security.php");

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';

$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';

if (validaUsuario($usuario, $senha) == true) {

header("Location:administracao.php");

} else {

expulsaVisitante();

}

}

?>

E este script ele faz um include com o codigo de segurança, que faz a verificação de login e senha do usuario, tem a configuração do banco de dados e etc... esta até no inicio deste tópico, mais em cima já postado.

Sim, se voce logar ele não redireciona e fica na mesma index, mas o estranho é que localmente ele funciona :(

Ahh, não coloquei entre a tag CODE , porque não esta habilitando pra mim :(

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta com o código assim e me diz qual erro retorna.

<?php

include("security.php");

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';
$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';


if (validaUsuario($usuario, $senha) == true) {

header("Location:areaadministrativa/administracao.php");
} else {

expulsaVisitante();
}
}

?>



AGORA O CODIGO DE SEGURANÇA

<?php

// Configurações do Script
// ==============================
$_SG['conectaServidor'] = true; // Abre uma conexão com o servidor MySQL?
$_SG['abreSessao'] = true; // Inicia a sessão com um session_start()?

$_SG['caseSensitive'] = true; // Usar case-sensitive? Onde 'casa' é diferente de 'CASA'

$_SG['validaSempre'] = true; // Deseja validar o usuário e a senha a cada carregamento de página?
// Evita que, ao mudar os dados do usuário no banco de dado o mesmo contiue logado.

$_SG['servidor'] = 'localhost'; // Servidor MySQL
$_SG['usuario'] = 'NOMEUSUARIO'; // Usuário MySQL
$_SG['senha'] = 'SENHAUSUARIO'; // Senha MySQL
$_SG['banco'] = 'DATABASE'; // Banco de dados MySQL

$_SG['paginaLogin'] = 'index.html'; // Página de login

$_SG['tabela'] = 'usuarios'; // Nome da tabela onde os usuários são salvos
// ==============================

// ======================================
// ~ Não edite a partir deste ponto ~
// ======================================

// Verifica se precisa fazer a conexão com o MySQL
if ($_SG['conectaServidor'] == true) {
$_SG['link'] = mysql_connect($_SG['servidor'], $_SG['usuario'], $_SG['senha']) or die("MySQL: Não foi possível conectar-se ao servidor [".$_SG['servidor']."].");
mysql_select_db($_SG['banco'], $_SG['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_SG['banco']."].");
}

// Verifica se precisa iniciar a sessão
if ($_SG['abreSessao'] == true) {
session_start();
}

/**
* Função que valida um usuário e senha
*
* @param string $usuario - O usuário a ser validado
* @param string $senha - A senha a ser validada
*
* @return bool - Se o usuário foi validado ou não (true/false)
*/
function validaUsuario($usuario, $senha) {
global $_SG;

$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';

// Usa a função addslashes para escapar as aspas
$nusuario = addslashes($usuario);
$nsenha = addslashes($senha);

// Monta uma consulta SQL (query) para procurar um usuário
$sql = "SELECT `id`, `nome` FROM `".$_SG['tabela']."` WHERE ".$cS." `usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_assoc($query);

// Verifica se encontrou algum registro
if (empty($resultado)) {
// Nenhum registro foi encontrado => o usuário é inválido
return false;

} else {
// O registro foi encontrado => o usuário é valido

// Definimos dois valores na sessão com os dados do usuário
$_SESSION['usuarioID'] = $resultado['id']; // Pega o valor da coluna 'id do registro encontrado no MySQL
$_SESSION['usuarioNome'] = $resultado['nome']; // Pega o valor da coluna 'nome' do registro encontrado no MySQL

// Verifica a opção se sempre validar o login
if ($_SG['validaSempre'] == true) {
// Definimos dois valores na sessão com os dados do login
$_SESSION['usuarioLogin'] = $usuario;
$_SESSION['usuarioSenha'] = $senha;
}

return true;
}
}

/**
* Função que protege uma página
*/
function protegePagina() {
global $_SG;

if (!isset($_SESSION['usuarioID']) OR !isset($_SESSION['usuarioNome'])) {
// Não há usuário logado, manda pra página de login
expulsaVisitante();
} else if (isset($_SESSION['usuarioID']) OR isset($_SESSION['usuarioNome'])) {
// Há usuário logado, verifica se precisa validar o login novamente
if ($_SG['validaSempre'] == true) {
// Verifica se os dados salvos na sessão batem com os dados do banco de dados
if (!validaUsuario($_SESSION['usuarioLogin'], $_SESSION['usuarioSenha'])) {
// Os dados não batem, manda pra tela de login
expulsaVisitante();
}
}
}
}

/**
* Função para expulsar um visitante
*/
function expulsaVisitante() {
global $_SG;

// Remove as variáveis da sessão (caso elas existam)
unset($_SESSION['usuarioID'], $_SESSION['usuarioNome'], $_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);

// Manda pra tela de login
header("Location: ".$_SG['paginaLogin']);
}
?>

Para posta com o CODE é facil so clicar no script como na imagem.

scripty.jpg

Link para o comentário
Compartilhar em outros sites

  • 0

A minha index esta no mesmo diretorio que a pagina na qual quero acessar, então não preciso esta correto a maneira que estava antes, se eu colocar areaadministrativa/adminitracao.php vai dar erro.

Por causa disso, exemplo:

www.meusiste.com.br/areaadministrativa ( aqui estão todos os arquivos, login.html, administracao.php, security.php, verificalogin.php, etc....

Então o header("administracao.php") está correto, porque a pagina esta no mesmo diretorio corrente

Link para o comentário
Compartilhar em outros sites

  • 0
Já havia tentado dessa forma e nada também. Não da pra entender, localmente funciona perfeitamente e na web não! Já não sei mais o que pode ser feito

Caro guiri, tive o mesmo problema. Inclusive estou usando o mesmo sistema de segurança que você. A solução é bem simples, acesse o seu CPanel e clique na opção php.ini EZConfig.

Abrirá uma tela para que você altere algumas configurações, agora basta alterar o output_buffering para ON.

Abraços!

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...