Jump to content


Photo

Trabalhando Com Cookeis


  • Faça o login para participar
6 replies to this topic

#1 fernandoferreira

fernandoferreira

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Não informado

Posted 10/01/2010, 13:59

Caros

Estou criando uma página (index.php) onde ao acessar, o internauta escolherá o idioma desejado: Português (pt.php) ou Inglês (en.php)
Só que é chato sempre ficar escolhendo o idioma. Ai que entra o cookeis.

Como posso fazer para ao digitar www.meusite.com.br, o PHP leia o cookeis do ultimo acesso e redirenciona para portugues ou Ingles..


Aguardo ajuda.
Obrigado

#2 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 11/01/2010, 10:24

Bom dia, tudo bem?

Veja a função setcookie.

A lógica é bem simples. Pense um pouco, qualquer coisa poste novamente.

Um abraço, tudo de bom.
Posted Image

#3 fernandoferreira

fernandoferreira

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Não informado

Posted 11/01/2010, 11:15

Olá,

eu até consegui.

Mas só se os arquivos "index.php" , "pt.php" e "en.php" estiverem no mesmo diretório. Só que desejo colocar o "pt.php" no diretorio "www/pt/" e o "en.php" no "www/en/"

Sabe alguma dica para funcionar desta maneira?

Abraços

#4 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 11/01/2010, 13:15

Boa tarde, tudo bem?

Poste o seu código.

Um abraço, tudo de bom.
Posted Image

#5 fernandoferreira

fernandoferreira

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Não informado

Posted 11/01/2010, 15:24

Segue o codigo

INDEX.PHP [verifica o valor no cookie e redirenciona]
<?php
if (($_COOKIE['Cookie']) == "pt")
{
header("Location: pt/pt.php");
}
if (($_COOKIE['Cookie']) == "en") 
{
header("Location: en/en.php");
}
?>


PT.PHP [armazena o valor "pt"]

<?php
$value = 'pt';

setcookie("Cookie", $value);
setcookie("Cookie", $value, time()+3600000); 
setcookie("Cookie", $value, time()+3600000, "/~teste/", ".teste.com", 1)

?>



EN.PHP [armazena o valor "en"]

<?php
$value = 'en';

setcookie("Cookie", $value);
setcookie("Cookie", $value, time()+3600000); 
setcookie("Cookie", $value, time()+3600000, "/~teste/", ".teste.com", 1)

?>


Se eu deixar o 'en.php' e o 'pt.php' na raiz, funciona perfeitamente. Mas se colocar em suas pastas, aí não armazena nada.

#6 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 11/01/2010, 19:11

Boa noite, tudo bem?

Fiz da seguinte maneira e funcionou:

index.php
<?php
if(isset($_COOKIE['Cookie']) && $_COOKIE['Cookie'] == "pt")
	header("Location: pt/pt.php");

if(isset($_COOKIE['Cookie']) && $_COOKIE['Cookie'] == "en")
	header("Location: en/en.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="pt-br">
    <head>
        <title>Cookies</title>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    </head>
    <body>
        <div id="wrapper">
        	<h1>Cookies</h1>
        	<a href="en/en.php">EN</a>
        	<a href="pt/pt.php">PT</a>
        </div>
    </body>
</html>
en/en.php
<?php setcookie('Cookie', 'en', time() + 3600000, '/'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="pt-br">
    <head>
        <title>EN</title>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    </head>
    <body>
        <div id="wrapper">
        	<h1>EN</h1>
        </div>
    </body>
</html>
pt/pt.php
<?php setcookie('Cookie', 'pt', time() + 3600000, '/'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="pt-br">
    <head>
        <title>PT</title>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    </head>
    <body>
        <div id="wrapper">
        	<h1>PT</h1>
        </div>
    </body>
</html>

Diretórios
/
  index.php
  en/
    en.php
  pt/
    pt.php
Espero ter ajudado.
Em caso de qualquer dúvida, por favor, poste novamente.

Um abraço, tudo de bom.
Posted Image

#7 fernandoferreira

fernandoferreira

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Não informado

Posted 12/01/2010, 11:56

Perfeito!

Muito obrigado mesmo! Parabéns!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq