Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal Boa Noite,
Estou com um erro e não consigo solucionar. Hospedei meu site e o mesmo está concetando no banco belezinha, porém quando executo o código abaixo:
<!--o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o
o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o. Verifica usuário e senha para login o.o.o.o.o.o.o.o.o.o.o.o.o.o.
o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o-->
<?php
include ("conecta.php");
$login = $_POST['login'];
$senha = $_POST['senha'];
$query = mysql_query("SELECT * FROM usuario WHERE login='$login' AND senha='$senha'");
$linha = mysql_num_rows($query);
if($linha != 0)
{
$dados = mysql_fetch_assoc($query);
session_start();
$_SESSION['id'] = $dados['idusuario'];
$_SESSION['login'] = $dados['login'];
header("Location:pagSecr.php");
exit;
}
else
{
header("Location:login.php?status=erro");
}
?>
Ocasiona o seguinte erro no browser:
Warning: mysql_query() [function.mysql-query]: Access denied for user 'voluntar'@'localhost' (using password: NO) in /home/voluntar/public_html/valida.php on line 11
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/voluntar/public_html/valida.php on line 11
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/voluntar/public_html/valida.php on line 12
Warning: Cannot modify header information - headers already sent by (output started at /home/voluntar/public_html/valida.php:4) in /home/voluntar/public_html/valida.php on line 24
Localmente roda normal, mas remoto não, se alguém puder me ajudar fico grato!
Abraço!
Ocorre, que no seu conecta.php tem um script de conexão com o bando de dados, lá se encontra o host de conexão, o usuário da conexão e a senha da conexão.
Logicamente, os dados de conexão ao banco de dados estão os dados que devem ser usados somente localmente. Você deve alterar localhost pelo seu host de conexão, deve trocar root pelo seu nome de usuário e a senha em branco, para a senha do banco remoto.
Pra resumir, os dados de conexão estão errados e devem ser trocados pelos dados de conexão remota.
Pesquise sobe SQL injection, n vai resolver isso ae, porem vai deixar a bagassa mais segura.
Pessoal ainda não consegui.
Falei com o pessoal da hospedagem e eles me falam que o problema é no código, porém não estou enxegardo onde. Mais uma vez saliento que em minha base local funciona perfeitamente e na hospedagem consigo conectar ao banco.
Vou colocar o sisteminha de logon aqui:
TELA PRINCIPAL
<!--o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o
o.o.o.o.o.o.o.o.o.o.o.o.o tela de login e senha o.o..o.o.o.o.o.o.o.o.o.o.o.oo.o.o.o.o.o.o.o.
o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o-->
<html>
<head>
<title>Painel de Controle ...</title>
<h1><center> Painel de Controle </center></h1>
<link href="css.css" rel="stylesheet" type="text/css"/>
</head>
<body><center>
<div id="geral">
<?php
if(!empty($_GET['status']) && $_GET['status'] == "erro" )
{
echo "<h2> Usuário e senha inválido, tente novamente</h2>";
}
?>
<form name='formLogin' method='post' action='valida.php'
<label> Login: </br>
<input type="text" name="login" id="login"/>
</label> </br>
<label> Senha: </br>
<input type="password" name="senha" id="senha"/>
</label> </br></br>
<input type="submit" value="Entrar" name="enviar" id="enviar" />
</form>
</center></body>
</html>
VALIDA O USUÁRIO E SENHA
<!--o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o
o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o. Verifica usuário e senha para login o.o.o.o.o.o.o.o.o.o.o.o.o.o.
o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o-->
<?php
include ("conecta.php");
$login = $_POST['login'];
$senha = $_POST['senha'];
$query = mysql_query("SELECT * FROM usuario WHERE login='$login' AND senha='$senha'");
$linha = mysql_num_rows($query);
if($linha != 0)
{
$dados = mysql_fetch_assoc($query);
session_start();
$_SESSION['id'] = $dados['idusuario'];
$_SESSION['login'] = $dados['login'];
header("Location:pagSecr.php");
exit;
}
else
{
header("Location:login.php?status=erro");
}
?>
REALIZA A CONEXÃO COM O BANCO:
<?php
$banco = "EXEMPLO_vol";
$usuario = "EXEMPLO_root";
$senha = "12345EXEMPLO";
$hostname = "localhost";
$conn = mysql_connect($hostname,$usuario,$senha); mysql_select_db($banco) or die( "Não foi possível conectar ao banco MySQL");
?>
ERROS GERADOS:
Ao digitar usuário e senha corretos aparecem as seguintes mensagens:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/voluntar/public_html/valida.php:4) in /home/voluntar/public_html/valida.php on line 17
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/voluntar/public_html/valida.php:4) in /home/voluntar/public_html/valida.php on line 17
Warning: Cannot modify header information - headers already sent by (output started at /home/voluntar/public_html/valida.php:4) in /home/voluntar/public_html/valida.php on line 20
Ao digitar usuário e senha incorretos aparece a seguinte mensagem:
Warning: Cannot modify header information - headers already sent by (output started at /home/voluntar/public_html/valida.php:4) in /home/voluntar/public_html/valida.php on line 25
Obrigado mais uma vez.
Eduardo
no conect e no select_select_db use or die(mysql_error()); para ver o retorno do sql.
quanto o session inicie la em cima
<?php
session_start();
?>
certifique se n a quebra de linha nem caractere antes do <?php
a condificação tambem deve estar UTF~8 (SEM BOM)
Realmente habia caracteres antes da abertura da tag do php, retirei e funcionou perfeitamente. De qualquer forma agradeço a atenção de todos.
Abraço!
Eduardo
desculpe a grosseria, mas a questão é lógica demais..
verfique as permissões de acesso do usuário.. obviamente não possui permissões para acessar remotamente.. caso queira esse recurso consulte o administrador do host..
off:
remova esse trecho... consome processamento desnecessário e está exposto ao usuário...
faça o comentário dentro das tags php de forma simples..
<!--o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o
o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o. Verifica usuário e senha para login o.o.o.o.o.o.o.o.o.o.o.o.o.o.
o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o-->