Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

2100928

[Resolvido] php erro 

Mensagens Recomendadas

2100928

Bom dia colegas,

Preciso de uma ajudinha, nunca tal coisa me tinha acontecido e já pesquisei mas não encontro grande informação.

Estou a criar uma página e nos locais em que coloco código php (para já são apenas includes), no html visualiza-se uma espaço em branco.

Através do chrome, tento visualizar o código e no local exacto do código php, aparece isto "" (Que é o código para espaço em branco)

Alguém faz ideia do que possa ser?

Como não sei se é importante, deixo a informação que estou a trabalhar localmente com o xampp.

Notas:

O espaço em branco não é a página á qual estou a fazer o include ;)

http://stackoverflow.com/questions/9691771/why-is-65279-appearing-in-my-html --> Não resultou

Obrigado

Editado por 2100928

André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
capesone

abre todos os ficheiros num editor e com a ferramenta de pesquisa procura por 

Ele não aparece ai por magia,

Em que ide estás a trabalhar, se for no bloco de notas do windows, ve a resposta desse utilizador do stackoverflow

To conclude, and specify the solution:

Windows Notepad adds the BOM character (the 3 bytes: EF BB BF) to files saved with utf-8 encoding.

PHP doesn't seem to be bothered by it - unless you include one php file into another - then things get messy and strings gets displayed with character(65279) prepended to them.

You can edit the file with another text editor such as Notepad++ and use the encoding

"Encode in UTF-8 without BOM",

and this seems to fix the problem.

Also, you can save the other php file with ANSI encoding in notepad - and this also seem to work (that is, in case you actually don't use any extended characters in the file, I guess...)

Se o erro for mesmo do bloco de notas, arranja um bom ide para trabalhares. eu uso o Aptana Studio 3, mas procura um ao qual te adaptes melhor

Se não for nada disso, tenta por aqui o código onde o erro ocorre!

Editado por capesone

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
2100928

Boas...

Já procurei por todo o lado e não há qualquer existencia de tal código...

Uso o TextWrangler (equivalente ao notepad++, mas para MAC)

O código do index

<?php include 'change_language.php' ?>
<?php
if(isset($_GET['page'])){
$page = $_GET['page'];
}
?>
<html lang="<?php echo $_['lang'] ?>">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>YESols :: <?php echo $_['title'] ?></title>

<!--META-->
<meta name="description" content="descrição">
<meta name="keywords" content="palavras chave">
<meta name="author" content="André Almeida">
<meta name="copyright" content="André Almeida">
<meta name="robots" content="ALL">
<link rel="icon" type="image/png" href="img/iconyes.png">

<!-- CSS FILES -->
<link rel="stylesheet" href="estilos/estruturabase.css">
<link rel="stylesheet" href="estilos/estruturamenus.css">
<link rel="stylesheet" href="estilos/estruturabootstrap.css">
<link rel="stylesheet" href="fonts/font-awesome-4.3.0/css/font-awesome.css">

<!-- JS FILES-->
<script type="text/javascript" src="js/bootstrap.min_3.3.4.js"></script>
<script type="text/javascript" src="js/jquery_1.11.2.js"></script>
<style type="text/css">
.bodyFFF{
background-image: url('img/bgfff.jpg');
background-repeat: repeat;
height: 230px;
width: 100%;
position: absolute;
}

@media (max-width:992px){
.bodyFFF{
height: 290px;
width: 100%;
position: absolute;
}
}
</style>
<script type="text/javascript">
//Add Hover effect to menus
jQuery('ul.nav li.dropdown').hover(function() {
jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn();
}, function() {
jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut();
});
</script>
</head>
<body class="body">
<div class="bodyFFF"></div>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column text-left">
<div class="row contentorTopo" style="width:100%">
<?php include 'includes/language_currency.php' ?>
</div>
<div class="row topconteudo style="width:100%"">
<?php include 'includes/top.php' ?>
</div>
<div class="row banner style="width:100%"">
<?php
include 'includes/nav.php';
?>
<?php
switch($page){
case "cat";
include 'includes/bannerCategoria.php';
break;
case "scat";
include 'includes/bannerSubCategoria.php';
break;
case "prod";
include 'includes/bannerproduct.php';
break;
default: include 'includes/bannerhome.php';
}
?>
</div>
<div class="row conteudo" style="width:80%">
<div class="row clearfix conteudos">
<div class="col-md-12 column">
<div id="content_wrapper">
<div id="content">
<?php
switch($page){
case "cat";
include 'includes/category.php';
break;
case "scat";
include 'includes/subcategory.php';
break;
case "prod";
include 'includes/product.php';
break;
default: include 'includes/inicio.php';
}
?>
</div>
</div>
</div>
</div>
</div>
<div class="row rodape" style="width:100%">
<?php include 'includes/rodape.php'?>
</div>
</div>
</div>
</div>
</body>
</html>

Editado por 2100928
geshi

André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

primeiro de tudo, o problema é mesmo o BOM odo UTF-8, se não sabes como tirar o BOm terás de esperar por alguem do fórum que saiba ou pesquisa na net.

segundo, para a próxima, apresenta uma imagem do código apresentado anteriormente


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Esse caracter é resultado de copy-paste. Não é o caracter de espaço em branco, é mesmo invisível (não tem largura). Para removeres:

http://stackoverflow.com/questions/1067742/clean-source-code-files-of-invisible-characters


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
2100928

Ainda não consegui resolver... tentei seguir á risca essas possibilidades mas ainda não encontrei a solução...

Se mais alguem tiver uma solução diferente é bem vinda :) ... assim que conseguir encontrar a solução partilho

obrigado pela vossa ajuda


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
2100928

Bem o problema aparentemente está no inicio da index.php...

<?php include 'change_language.php' ?>
<?php
if(isset($_GET['page'])){
 $page = $_GET['page'];
 }
?>
<html lang="<?php echo $_['lang'] ?>">
   <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Se simplesmente, remover o código antes da tag <html> o problema desaparece...

Agora a questão é ... porque acontece isto?


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knot

Não deverá ser por isto mas tenta assim:

<?php
include 'change_language.php'; //colocar aqui o ;

if(isset($_GET['page']))
{
  $page = $_GET['page'];
}
?>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
2100928

como confirmaste que os ficheiro estão condificados como UTF-8 sem BOM ?

- Abri todos os ficheiros do projecto com o TextWrangler (Tipo Notepad++, mas para mac)

- Fui ao separador "File > Reopen Using Encoding > Unicode [uTF-8]" / Como sei que está sem BOM? Porque a outra opção existente é "Unicode [uTF-8, with BOM]

- Salvei

Não deverá ser por isto mas tenta assim:

<?php
include 'change_language.php'; //colocar aqui o ;

if(isset($_GET['page']))
{
  $page = $_GET['page'];
}
?>

Não resolveu!

O problema parece estar mesmo neste pedaço...

<?php include 'change_language.php'; ?>

Editado por 2100928

André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knot

Tu ao fazeres o include do change_language.php estás a incluir o conteúdo desse ficheiro, ou seja poderá vir desse ficheiro o erro. Verifica o conteúdo e a codificação desse ficheiro.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
2100928

Tu ao fazeres o include do change_language.php estás a incluir o conteúdo desse ficheiro, ou seja poderá vir desse ficheiro o erro. Verifica o conteúdo e a codificação desse ficheiro.

change_language.php

<?php
if(!isset($_COOKIE['lang'])) {
include 'language/english/en.php'; }
elseif ($_COOKIE['lang']=='en') {
include 'language/english/en.php'; }
elseif ($_COOKIE['lang']=='pt') {
include 'language/portuguese/pt.php'; }
elseif ($_COOKIE['lang']=='es') {
include 'language/spanish/es.php'; }
elseif ($_COOKIE['lang']=='fr') {
include 'language/french/fr.php'; }
elseif ($_COOKIE['lang']=='it') {
include 'language/italian/it.php'; }
?>

E em todos eles para já tenho o mesmo conteúdo, alterando só a variável $_['language']

<?php
//LANGUAGE = EN
$_['language']    = 'EN'; // VARIA AQUI CONFORME O IDIOMA: EN, PT, FR, ES, IT
$_['title']    = 'YES WE HAVE, YES  YOU  FOUND'; //TEASER
// TEXTOS FIXOS
$_['question_ajuda']  =	 'Need Help?';
$_['question_pesquisa'] =    'What are you looking for?';
$_['info_carrinho'] =	 'View my cart';
?>


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Tu ao fazeres o include do change_language.php estás a incluir o conteúdo desse ficheiro, ou seja poderá vir desse ficheiro o erro. Verifica o conteúdo e a codificação desses ficheiros.


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
2100928

A codificação está correcta...

Já tinha verificado... e voltei a verificar agora novamente


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
2100928

Bem, problema resolvido :)

Por muito ridículo que possa parecer...

Nos ficheiros en.php, pt.php, fr.php, it.php, es.php

tinha todas as linhas onde está a tradução com um ou mais tabs antes do '=', removi todos os tabs e espaços e o erro desapareceu...

$_['btn_pesquisa']='Search';

Obrigado a todos pela ajuda...


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

estás a dizer que espaços que ladeavam o sinal de igual nesses ficheiros eram o problema ?

continuo a dizer que o problema era que um ou todos esses ficheiros estavam na codificação UTF-8 com BOM que somente foi alterada ao ser feita alguma alteração no ficheiro sendo posteriormente feita a gravação do ficheiro em disco. isto porque é normal um editor não efectuar a gravação caso não existe realmente nenhuma alteração de conteúdos.

se tiveres disponibilidade e vontage de tirar as teimas, voltas a colocar espaços e tabulações a ladear os mesmo sinais de atribuição e verifica se os caracteres voltam a aparecer


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
2100928

estás a dizer que espaços que ladeavam o sinal de igual nesses ficheiros eram o problema ?

continuo a dizer que o problema era que um ou todos esses ficheiros estavam na codificação UTF-8 com BOM que somente foi alterada ao ser feita alguma alteração no ficheiro sendo posteriormente feita a gravação do ficheiro em disco. isto porque é normal um editor não efectuar a gravação caso não existe realmente nenhuma alteração de conteúdos.

se tiveres disponibilidade e vontage de tirar as teimas, voltas a colocar espaços e tabulações a ladear os mesmo sinais de atribuição e verifica se os caracteres voltam a aparecer

Sim, tirei as temas porque realmente tinha muito mais lógica essa situação.

Efectivamente voltei a colocar os tabs e continuo sem qualquer problema.

O que significa e para concluir que o problema deverá ter sido realmente o UTF-8 com BOM.

Assim e para futura consulta dos nossos colegas fica a dica, depois de efectuarem a alteração da codificação pode não ser suficiente simplesmente guardar, devem efectuar uma qualquer alteração e guardar para conseguirem efectivamente deixar de visualizar o código "" (no meu caso removi tabulação e voltei a colocar depois)

A todos o meu obrigado ;)


André Almeida

Programação Web

Design de Comunicação

Web Marketing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.