Ir para conteúdo

POWERED BY:

Arquivado

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

alexftorres

Sistema funciona local mas nao no host

Recommended Posts

Bom dia,

estou desenvolvendo um sistema de login que localmente funciona de forma perfeita, porem quando jogo no host ele me da problemas ao efetuar o login. Exemplificando melhor, quando vou fazer login no meu sistema hospedado no host ele me diz que meu login ou senha estao incorretos, sendo que estou usando exatamente o db que uso localmente e efetuei as configurações de forma correta(o sistema esta conectando com o db).

 

Agradeço desde ja,

 

Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou trabalhando com cookies, sobre a conexao, creio que nao seja esse o problema, pois ele nao esta dando erro de comunicação com o db e sim erro de login/senha.

 

outra coisa, eu consigo cadastrar o usuario de forma tranquila, o problema e no login.

 

Mais uma informação que pode ser relevante, estou usando o Smart login do Thiago Alves, com algumas modificações para adaptar ao meu uso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz agora mais um teste de comunicação com o banco, mudei a senha e reenviei o arquivo de configuração, a mensagem de erro mudou para nao e possível comunicar com o Banco(ja tinha feito isso, mas repeti so por desencargo de consciência).

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
// MySQL
define('M_USUARIO','gerenc');		// Seu usuário do MySQL
define('M_SENHA','******');	// Sua senha do MySQL
define('M_HOST','localhost');	// Host do MySQL 
define('M_BD','gerencial');			// Nome do seu banco de dados

// Outras
define('SL_URL','sl/');			// Onde está localizado o script
define('P_INDEX','contato/logado.php'); // Página a qual o usuario ira depois do login
?>

O arquivo de configuração e esse ai.

 

Existe alguma configuração no MySQl que pode estar causando isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bah velho.. isso não ajudou muito não hein... tipo cadê o arquivo php que vai no banco, consulta se os dados existem ou não e retorna um resultado???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue abaixo o codigo do arquivo de comunicação do banco, so lembrando que esse arquivo nao sofreu nenhuma modificação ao envia-lo para o host, no webserver local tudo funciona de forma perfeita.

 

<?php
$data='';
# Possiveis valores para data
# GERAIS
# 0: Campos em branco (login)
# 1: Campos em branco/incorretos (cadastro)
# 2: Erro do sistema
# LOGIN
# 3: Login/Senha incorretos
# 4: Login efetuado
# CADASTRO
# 5: Usuário já cadastrado
# 6: Email já cadastrado
# 7: Cadastro efetuado
# 8: Diretorio ja existe
# FATAL
# default: Impossível concluir

// Pega as configuracoes
include('config.php');

// Finaliza a operação
Function Data($str){
exit($str);
}

// Valida os campos
Function ValidarCampo($valor,$tipo,$min,$max){
$resultado = false;
if(isset($valor[$min-1]) and !isset($valor[$max])){
	Switch($tipo){
		case 'nome':
			$valida = preg_match('/^[A-Za-z\sáàãâäéèêëíìîïóòõôöúùûüç]+$/',$valor);
			if($valida){
				$valor = preg_replace('/\s{2,}/',' ',$valor);
				$valor = preg_replace('/^\s+|\s+$/','',$valor);
				$valor = strtolower($valor);
				$valor = explode(' ',$valor);
				foreach($valor as $key=>$value){
					!preg_match('/^da|de$/',$value) ? $value = preg_replace('/^\w/',strtoupper($value[0]),$value) : '';
					$key==0 ? $resultado = $value : $resultado .=' '.$value;
				}unset($key,$value);
			}
		break;
		case 'email':
			$valor = trim($valor);
			$valida = preg_match('/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9\.\-]+\.[A-Za-z]{2,4}(\.[A-Za-z]{2}){0,1}$/',$valor);
			if($valida) $resultado = strtolower($valor);
		break;
		case 'senha':
		case 'login':
			$valida = preg_match('/^[A-Za-z0-9]+$/',$valor);
			if($valida) $resultado = $valor;
		break;
	}
}
if($resultado!=''){
	return addslashes($resultado);
}else{
	Data('1');
}
}

// Funcao para conectar com o mysql
Function ConectaMySQL(){
$conecta = mysql_connect(M_HOST,M_USUARIO,M_SENHA) or Data('2');
$banco = mysql_select_db(M_BD,$conecta) or Data('2');
mysql_errno()==0 ? $r = true : $r = false;
return $r;
}

// Procurar usuário
Function ChecaUsuario($login){
$query = mysql_query("SELECT * FROM inscricao WHERE login='".$login."';") or Data('2');
mysql_num_rows($query)>0 ? $r = true : $r = false;
return $r;
}

// Procura email
Function ChecaEmail($email){
$query = mysql_query("SELECT * FROM inscricao WHERE email='".$email."';") or Data('2');
mysql_num_rows($query)>0 ? $r = true : $r = false;
return $r;
}

// Pega as variaveis e checa-as
if($_SERVER['REQUEST_METHOD'] == 'POST'){

// Metodo (Login/Cadastro)
$acao = isset($_POST['acao']) ? $_POST['acao'] : exit();

// Captura todas as variaveis possiveis
Switch($acao){
	case 'cadastro':
		$nome = ValidarCampo($_POST['nome'],'nome',4,32);
		$email = ValidarCampo($_POST['email'],'email',6,64);
	case 'login':
		$usuario = ValidarCampo($_POST['login'],'login',4,16);
		$senha = ValidarCampo($_POST['senha'],'senha',4,16);
//			$senha = $_POST['senha'];			
		$senha = md5($senha);
//			$tipo = $_POST['acesso'];
//            $id = $_POST['id'];
	break;
}

// Tenta conectar com o MySQL
if(ConectaMySQL()){
	// Processo de login
	if($acao=='login'){
		if(ChecaUsuario($login)){
			$query = mysql_query("SELECT * FROM inscricao WHERE login='".$login."' and senha='".$senha."';") or Data('2');
			if(mysql_num_rows($query)>0){
				$linha = mysql_fetch_row($query);
				setcookie('SmartLoginCookie1',md5('EstouLogado'),time()+3600*24,'/');
				setcookie('SmartLoginCookie2',base64_encode($linha['1']),time()+3600*24,'/');
				setcookie('SmartLoginCookie3',base64_encode($linha['5']),time()+3600*24,'/');
                   setcookie('SmartLoginCookie4',base64_encode($linha['3']),time()+3600*24,'/');					
                   setcookie('SmartLoginCookie5',base64_encode($linha['0']),time()+3600*24,'/');										
				$data='4';
			}else{$data='3';}
		}else{$data='3';}
	}
	//Processo de cadastro
	if($acao=='cadastro'){
		if(!ChecaUsuario($login)){
			if(!ChecaEmail($email)){
	//			$query = mysql_query("INSERT INTO smartlogin (nome,email,usuario,senha,acesso)
	//			VALUES ('".$nome."','".$email."','".$usuario."','".$senha."','".$tipo."');") or Data('2');
				if(mysql_affected_rows()>0){
					$data='7';
				}else{$data='2';}
			  }else{$data='6';}
		}else{$data='5';}
	}
	$conecta = mysql_connect(M_HOST,M_USUARIO,M_SENHA) or Data('2');
	mysql_close($conecta);
}
}

// Retorna a data final
echo $data;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
// MySQL
define('M_USUARIO','gerenc');           // Seu usuário do MySQL
define('M_SENHA','******');     // Sua senha do MySQL
define('M_HOST','localhost');   // Host do MySQL 
define('M_BD','gerencial');                     // Nome do seu banco de dados

// Outras
define('SL_URL','sl/');                 // Onde está localizado o script
define('P_INDEX','contato/logado.php'); // Página a qual o usuario ira depois do login
?>

 

você ta usando exatamente esse codigo no host??

pq ali você ta testando localmente...

você teria q colocar o site hospedado no lugar e localhost....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho outras bases hospedadas no mesmo host e uso como localhost sem problemas, inclusive um wordpress cuja a configuração e feita pelo proprio host e e usando como localhost.

Eu estou na cabeça que isso pode ser alguma coisa com o MySQL, mas ja mudei o collation pra ficar igual a do db local e ainda continuo com o mesmo erro.

 

O que upei sem alterar foi o script de comunicação o de conexao com db foi devidamente modificado, tanto que citei acima que por desencargo de consciencia modifiquei a senha do script e recebi erro de comunicação com o db, so para ter certeza que estava comunicando de forma legal, quando voltei a senha real do banco voltei a receber a mensagem de login/usuario invalidos, prova que ele esta buscando no banco mas nao esta encontrando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma coisa que já acnteceu comigo, se você usa MD5 pra encriptar a senha, mas no banco de dados voce inseriu a senha manualmete, ela não vai pegar

 

ex: usuario: admin - senha: admin

 

se você colocou isso manualmente no banco é possivel que não ache, pois a senha deve estar como md5 no banco para abrir

 

no caso > admin = 21232f297a57a5a743894a0e4a801fc3

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
/** 
* The base configurations of the WordPress.
*
* This file has the following configurations: MySQL settings, Table Prefix,
* Secret Keys, WordPress Language, and ABSPATH. You can find more information by
* visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing
* wp-config.php} Codex page. You can get the MySQL settings from your web host.
*
* This file is used by the wp-config.php creation script during the
* installation. You don't have to use the web site, you can just copy this file
* to "wp-config.php" and fill in the values.
*
* @package WordPress
*/

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'g_wrdp1');

/** MySQL database username */
define('DB_USER', 'g_wrdp1');

/** MySQL database password */
define('DB_PASSWORD', '{rR7unLqjwNn');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

/**#@+
* Authentication Unique Keys.
*
* Change these to different unique phrases!
* You can generate these using the {@link http://api.wordpress.org/secret-key/1.1/ WordPress.org secret-key service}
*
* @since 2.6.0
*/
define('AUTH_KEY', 'f7sXx[2wbB@LBwlxS{A56y>+{rR7unLqjwNnXz iq\\Ms}?(;_a#ypoR5\'3w<G5>FL~1X');
define('SECURE_AUTH_KEY', '-\"r642fed3E1d>}MdGFlh@tR!QPU%/!S_6;CjO0}^>6T{rR7unLqjwNn+ <?)3 U#*X;');
define('LOGGED_IN_KEY', 'Q^l\"6-pL{rR7unLqjwNn\zkw>OG<U$%u0:9H:Jl)+d$~jIBTt&CPL[Dp<KY4zL3y');
define('NONCE_KEY', 'asdasdjkasdjk{rR7unLqjwNnjklasdjklasdkl&^%^&*(&*(jklasdjklasdjkl&*)))');
/**#@-*/

/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each a unique
* prefix. Only numbers, letters, and underscores please!
*/
$table_prefix  = 'wp_';

/**
* WordPress Localized Language, defaults to English.
*
* Change this to localize WordPress.  A corresponding MO file for the chosen
* language must be installed to wp-content/languages. For example, install
* de.mo to wp-content/languages and set WPLANG to 'de' to enable German
* language support.
*/
define ('WPLANG', 'pt_BR');

/* That's all, stop editing! Happy blogging. */

/** WordPress absolute path to the Wordpress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
?>

Esse codigo acima e o arquivo de configuração do wordpress que funciona perfeitamente, ele usa localhost como DB_HOST. Tenho tbm um exemplo de uma galeria que no arquivo de configuraçaõ tambem usa localhost.

 

Tambem pensei nisso Tiago, mas modifiquei os arquivos para nao usarem md5, e gravar a senha pura, e mesmo assim deu login/senha invalidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas tirou o md5 tambem pro login?

 

                case 'login':
                       $usuario = ValidarCampo($_POST['login'],'login',4,16);
                       $senha = ValidarCampo($_POST['senha'],'senha',4,16);
//                      $senha = $_POST['senha'];                       
                       [b]$senha = md5($senha);[/b]
//                      $tipo = $_POST['acesso'];
//            $id = $_POST['id'];
               break;

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas tirou o md5 tambem pro login?

 

                case 'login':
                       $usuario = ValidarCampo($_POST['login'],'login',4,16);
                       $senha = ValidarCampo($_POST['senha'],'senha',4,16);
//                      $senha = $_POST['senha'];                       
                       [b]$senha = md5($senha);[/b]
//                      $tipo = $_POST['acesso'];
//            $id = $_POST['id'];
               break;

 

Sim tirei.

 

Cara, estou achando ainda que e algo com o MySQL, não vejo outra opção.

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.