Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia meus amigos!!
Bom estou com um problema meio inusitado, pois nunca tive esse problema e ja estive pesquisando no forum aqui e no google e não encontrei ninguem com o mesmo problema.
Enfim o que acontece é que no meu site estou chamando a conexão com o banco de dados dentro do <head></head> coisa que sempre fiz e nunca tive problemas, sempre funcionou normal. A conexão com o banco também é a mesma que uso em outros sites somente tocando para os dados do banco que eu quero acessar, mas quando subo os arquivos para o servidor ele mostra no site uma linha html, ja vi com o firebug e nao retorna nenhum caracter simplesmente uma linha vazia. Ja salvei os arquivos sem o BOM mas mesmo assim não resolve.
abaixo vou colocar o código para vocês darem uma olhada e se puderem dar uma ajuda. Ah lembrando que no arquivo de error.log do servidor não retorna erro algum.
chamada da conexao
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>Meu site</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/global.css" rel="stylesheet">
<link href="css/fonte.css" rel="stylesheet">
<link href="css/jquery-ui.css" rel="stylesheet">
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]><script src="js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="js/html5shiv.min.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->
<?php
function NormalizaURL($str){
$str = strtolower(utf8_decode($str)); $i=1;
$str = strtr($str, utf8_decode('àáâãäåæçèéêëìíîïñòóôõöøùúûýýÿ'), 'aaaaaaaceeeeiiiinoooooouuuyyy');
$str = preg_replace("/([^a-z0-9])/",'-',utf8_encode($str));
while($i>0) $str = str_replace('--','-',$str,$i);
if (substr($str, -1) == '-') $str = substr($str, 0, -1);
return $str;
}
?>
</head> <body>
<?php include("config.php");?>
conexao do banco
<?php function conecta(){
$conn = mysql_connect("localhost","nome_usuario","senha_banco");
$db = mysql_select_db("nom_banco", $conn) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
return $conn;
}
$conexao = conecta();
?>
Se eu retirar a conexao do banco a linha some.
Bom galera desde ja agradeço a atenção e a ajuda!!!
ESerra obrigado pelo comentário, porem não existe nenhuma quebra de linha no código, verifiquei novamente e não há nada. o código é o que eu postei acima como pode ver.
Usa o error reporting para ver se tem algum que não está sendo exibido
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
Se não me engano, o mysql_ se tornou depreciado no php 5.5.0 e deve ser usado em seu lugar o mysqli ou o pdo no lugar.
Pode ser esse o seu caso.
Se a versão permitir tenta assim:
//config
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSOWORD', '');
define('DB_DATABASE', 'DB');
define('DB_PREFIXE', 'cw');
define('DB_CHARSET', 'utf8');
function DBconection(){
include("config.php");
$link = mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSOWORD, DB_DATABASE) or die (mysqli_connect_error());
mysqli_set_charset($link, DB_CHARSET) or die(mysqli_error($link));
return $link;
}
Depois chama a função DBconection();Vinicius Ianni e Ldovale obrigado pela ajuda!! Bom vamos lá.
Coloquei o comando que você falou ele deu um erro de data que chamo a função date(), que acredito que não seja esse o problema mas em todo o caso estou colocando o erro abaixo.
Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for 'BRT/-3.0/no DST' instead in /home/buscaprt/public_html/novosite/rodape.php on line 27
Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for 'BRT/-3.0/no DST' instead in /home/buscaprt/public_html/novosite/rodape.php on line 27
Alterei também o mysql para mysqli e continua dando o erro na data e a linha no topo do site.
-----------------
Com tudo isso consegui resolver o problema alterando o local da conexão do banco em vez de deixar dentro do body ou do head como estava fazendo eu deixei a cima do <!DOCTYPE antes mesmo de abrir a tag do html e voltou a funcionar normalmente.
foi falta de atenção a minha também, pois estive olhando agora os outros sites que ja fiz e ele sempre fica ali e nesse eu não sei o porque coloquei nestes lugares!!
Bom agradeço a todos que me ajudaram!!
abraços
Como boa prática php, quando um arquivo for conter apenas código php, **não feche** o ?>
<?php function conecta(){
$conn = mysql_connect("localhost","nome_usuario","senha_banco");
$db = mysql_select_db("nom_banco", $conn) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
return $conn;
}
$conexao = conecta();
?>ficaria:
<?php function conecta(){
$conn = mysql_connect("localhost","nome_usuario","senha_banco");
$db = mysql_select_db("nom_banco", $conn) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
return $conn;
}
$conexao = conecta();
Esse seu problema talvez tenha sido causado pelo fechamento do **?>**Muito obrigado William Bruno não sabia desse detalhe, obrigado pela informação!! por mim o o tópico esta resolvido!! muito obrigado a todos
Se não é o B.O.M., veja então se não existe uma quebra de linha no próprio arquivo de conexão ou espaços em branco antes/depois de abrir as tags do PHP.