Ir para conteúdo

POWERED BY:

Arquivado

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

Elnata Levi Costa

meu código para traduzir pagina em php!

Recommended Posts

Seguinte galera eu uso o seguinte sistema php para traduzir as minhas paginas

 

Este e o index.php:

 


<?php

include("config.php");

if(isset($_GET['lang']) &&  $_GET['lang'] != null){	

$novoidioma = $_GET['lang'];
$path = "idiomas/".$novoidioma.".php";	

if(file_exists($path)){

	setcookie("idioma", $novoidioma, time()+(24*3600*30));<!-- da erro nesta linha -->
	$arq = $_SERVER['PHP_SELF'];
	$arq2 = explode("/", $arq);
	$arq3 = end($arq2);

	}

}
if(isset($_COOKIE['idioma'])) {

	$idioma = $_COOKIE['idioma'];
	$caminho = "idiomas/".$idioma.".php";
	if(file_exists($caminho)){
		include($caminho);	

	}else{

		exit();

	}

}else{

	setcookie("idioma","portugues", time()+(24*3600*30));<!-- Da erro nesta linha -->			
	include("idiomas/portugues.php");
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sem título</title>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>

<script type="text/javascript">
jQuery(document).ready(function(){
       jQuery('#lista').change(function(){
               document.location.href = $( this ).val();
       });
});
	</script>
</head>

<body>


<h1><?php echo $lang['Teste'] ?></h1><!-- esta e a variavel usada para mostrar os textos que sao armazenados nos arquivos portugues.php e ingles.php -->

<form id="forml" name="forml" method="post" action="">
 <select name="lista" id="lista">
       <?php
	$idiomascds = mysql_query ("SELECT nome,arquivo FROM idiomas");
	while($linha = mysql_fetch_assoc($idiomascds)){



		$selected = ($_COOKIE['idioma'] == $linha['arquivo']? 'selected ="selected"':'');

		?>
		<option value="?lang=<?php echo $linha['arquivo']; ?>" <?php echo $selected; ?> > <?php echo $linha ['nome']; ?></option> 	
		<?php	

				}		

		?> 

       </select>

</form>

</body>
</html>

 

 

Esta e a pagina onde busca os idiomas no caso aqui o idioma portugues:

 


<?php 

$lang['teste'] = "testado com sucesso";

?>

 

Esta e a pagina onde busca os idiomas no caso aqui o idioma ingles:

 


<?php 

$lang['teste'] = "successfully tested";

?>

 

 

Mas quando executo a pagina index.php da este erro: Warning: Cannot modify header information - headers already sent by (output started at /home/voemerco/public_html/config.php:1) in /home/voemerco/public_html/teste.php on line 35

 

E quando eu mudo o idioma da estes dois erros: Warning: Cannot modify header information - headers already sent by (output started at /home/voemerco/public_html/config.php:1) in /home/voemerco/public_html/teste.php on line 12

 

Warning: Cannot modify header information - headers already sent by (output started at /home/voemerco/public_html/config.php:1) in /home/voemerco/public_html/teste.php on line 35

 

 

Entao galera por favor me ajudem a resolver nem o texto aparece!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você estiver usando Notepad++, vá no menu Formatar e clique em Converter para UTF-8 (sem BOM).

Em outros programas eu não sei como que muda, mas é só procurar por algo como já citado ou ANSII como UTF-8.

Usar UTF-8 normal pode dar esse problema devido uns códigos que ficam no começo da página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não existe espaço em branco dentro do meu config.php!! :wacko:

 

Você não disse qual era o config.php, então deduzi que era algo parecido com estes dois trechos que postou antes:

 

 

Esta e a pagina onde busca os idiomas no caso aqui o idioma portugues:


<?php 

$lang['teste'] = "testado com sucesso";

?>

 

Esta e a pagina onde busca os idiomas no caso aqui o idioma ingles:

 


<?php 

$lang['teste'] = "successfully tested";

?>

 

 

revise os scripts e retire qualquer espaço sobrando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não disse qual era o config.php, então deduzi que era algo parecido com estes dois trechos que postou antes:

 

 

 

 

 

revise os scripts e retire qualquer espaço sobrando

Bom revisei e consegui fazer mostrar os idiomas agora continua o erro que é o mesmo ta ai o config.php:

 


<?php

mysql_connect("localhost", "voemerco_idiomas","voemerco2012");
mysql_select_db("voemerco_idiomas");

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adicione

ob_start();

logo depois do <?php da index.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra entenderem melhor olhem o site nos links abaixo:

 

http://voemercosul.com.br/index.php?lang=ingles'>http://voemercosul.com.br/index.php?lang=ingles

 

http://voemercosul.com.br/index.php

 

Adicione

ob_start();

logo depois do <?php da index.php

Caracaa mano nao sei pra que serve esse comando mas funcionou perfeitooo!!!! :grin: :clap: kkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Normal.

 

O que aconteceu no teu código.

 

A Assinatura BOM, cria, dentre outras tantas coisas, 1 espaço em branco no inicio do arquivo. Isso é uma saída html proporcional á   (espaço em branco).

 

 

Mas, para haver redirecionamentos, uso do header, não pode haver saída alguma html antes dele.

 

Então, duas coisa podem ser feitas: Ou usa ob_start(), que permitirá essa saída antes, ou então, abrir o arquivo no notepad++ e coneverter ele de iso, ou ut8 com com para utf-8 sem bom.

 

Problema resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Normal.

 

O que aconteceu no teu código.

 

A Assinatura BOM, cria, dentre outras tantas coisas, 1 espaço em branco no inicio do arquivo. Isso é uma saída html proporcional á   (espaço em branco).

 

 

Mas, para haver redirecionamentos, uso do header, não pode haver saída alguma html antes dele.

 

Então, duas coisa podem ser feitas: Ou usa ob_start(), que permitirá essa saída antes, ou então, abrir o arquivo no notepad++ e coneverter ele de iso, ou ut8 com com para utf-8 sem bom.

 

Problema resolvido.

Vlww

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.