Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Landerson Almeida

Hospedagem HostGator não cria sessão

Recommended Posts

Pagina de Login:

<?php
session_start();
?>
<html>
<head>
<meta charset="UTF-8" />
<?php include "modules/header.php"; ?>
</head>
<body>
<div class="login">
<form method="post" action="index.php">
<label>Usuário</label>
<input type="text" name="usuario" maxlength="50" />

<label>Senha</label>
<input type="password" name="senha" maxlength="50" />

<input type="submit" value="Entrar" />
</form>
</div>
<?php
include("config/sg.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:enviar.php");
} else {
expulsaVisitante();
}
}
?>
<?php
if (isset($_SESSION['usuarioID'])){
header("Location: enviar.php");
}else{}
?>
</body>
</html>

sg.php

<?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'] = false;     // Usar case-sensitive? Onde 'thiago' é diferente de 'THIAGO'

$_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'] = 'kk';          // Usuário MySQL
$_SG['senha'] = 'sadsadsa';                // Senha MySQL
$_SG['banco'] = 'n interessa';            // Banco de dados MySQL

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

$_SG['tabela'] = 'n interessa';       // 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']);
}
?>

Quando cliko em Entrar ele não faz login nem nada simplesmente fica na pagina sem executar nenhuma açao! , engraçado que no meu Localhost [WAMPSERVER] esta normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara espero que vc tenha editado os dados de acesso como login e senha do BD, senão fez isso antes de postar aqui mude urgente estes dados pois ele foi exposto..

 

Dentro do arquivo sg,php existe uma variavale que define o servidor mysql, neste seu exemplo ele esta como

 


$_SG['servidor'] = 'localhost';

Quando jogou no servidor vc mudou o valor do servidor trocando o localhost pelo servidor no hostgator?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara vc colocou no titulo "hospedagem hostgator" ou seja... vc jogou teu site para o servidor da hostgator certo? logo se vc testar ele pelo servidor exp: seusite.com.br ele tera que buscar o mysql do servidor e não do localhost... vc precisa criar o bd juntamente com as tabelas e registro no servidor... se for testar no servidor mandando buscar a tabela em localhost... realmente não vai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, estou com o mesmo problema... e é em um server linux simples. Instalei o php, apache e as sessions não funcionam nem a pau. Certeza que tenho que habilitar algo, só não sei o que.

 

No seu caso é estranho uma hospedagem dessa ter algo ainda pra ser habilitado (o que eu acho que é o meu caso). Sobre o banco 'localhost' tem algumas hospedagens que é isso mesmo, outras informam um ip ou nome específico.

 

Teste com uma página simples... apenas com session start() e veja se ela passa adiante. Vá aos poucos 'debugando' até achar o que pode ser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está conseguindo conectar ao bd? Melhor você começar verificando isso.

mysql_connect('localhost', 'usuario', 'senha') or die(mysql_error());

Se exibir algum erro. Você saberá que tem algo de errado com o endereço desse bd.

 

@ pelo jeito você já está fazendo isso no seu código. Não exibe nenhum erro? Nada, que possa nos ajudar a encontrar a solução? Cria uma página de teste com poucas linha e apenas o acesso ao bd. Assim, você verifica se a conexão está mesmo existindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ebotega iniciei a session e tudo o engraçado é que quando eu defini uma session:

$_SESSION['oi'] = teste

E depois do um Echo:

echo $_SESSSION['oi'];

Simplesmente ele exibi a session !

 

@masi Ja tem um or die no meu código:

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

Obrigado por responder

 

 

Fiz um pequeno while exibindo alguns dados que tenho no banco e exibiu de boa

 

<?phpsession_start();$_SESSION['nome'] = landerson;?><?php$conect = mysql_connect('localhost','usuario','Senha') or die("MySQL: Não foi possível conectar-se ao servidor [".$_SG['servidor']."].");$db = mysql_select_db('drago675_downloads') or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_SG['banco']."].");$seleciona = mysql_query("SELECT * FROM usuarios ORDER BY id DESC");$conta = mysql_num_rows($seleciona);	if($conta <= 0){		echo "Nenhuma Postagem ate o Momento.";}else{  while($ln = mysql_fetch_array($seleciona)){	$id = $ln['id'];	$nome = $ln['nome'];?><html><head></head><body><?php echo $id ?><?php echo $nome ?><?php }} ?></body></html>

 

Alguem ajuda-me ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Configure o seu ambiente de desenvolvimento e de produção:

Configuração de log e eventos de erros do PHP

 

Se mesmo após configurar os logs, não conseguir vê-los, consulte a documentação do provedor pois pode ter alguma função específica deles.

 

 

 

Aplique esse teste de sessão:

http://www.php.net/manual/en/ref.session.php#99664

é antigo, de 3 anos.. mas ainda serve

 

 

 

Se quer algo bem rápido que geralmente resolve,

apenas configure o path dos arquivos de sessão..

 

ini_set('session.save_path', '/aqui/o/caminho/completo/onde/quer/salvar/as/sessões');

 

Esse caminho deve estar com permissões de leitura e escrita.

Na dúvida, mete um chmod 0777 e pronto..

 

 

 

off

 

@ebotega iniciei a session e tudo o engraçado é que quando eu defini uma session:
$_SESSION['oi'] = teste
E depois do um Echo:
echo $_SESSSION['oi'];
Simplesmente ele exibi a session !

acontece que o array foi declarado e existe no script corrente.. mas não quer dizer que a sessão foi realmente gerada..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um sistema identico na mesma Hospedagem ea sessão cria Normal Ja Fiz tudo que pediram mais mesmo assim não resolveu :/



Fui verificar meu error_log olha só

[04-Jan-2014 18:17:05] PHP Warning:  Unknown: POST Content-Length of 27 bytes exceeds the limit of -1149239296 bytes in Unknown on line 0


Consegui arrumar mudando meu post_max_size para 1000M OBrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.