Ir para conteúdo
Fórum Script Brasil
  • 0

Cookie sobrescreve


Will Up

Pergunta

Olá.

Estou usando um cookie para gravar o idioma escolhido pelo visitante do meu site, mas o problema é que após o usuário escolher um idioma e recarregar a página, o cookie gravado anteriormente (EN) é substituído pelo padrão (PT). Como fazer para o cookie não sobrescrever?

A parte que grava tá assim

if (!isset($_GET['lang'])) {
//se ?lang=en não for definido, cria padrão PT
setcookie('lang', 'pt', time()+108000, '/');
} else {
//se ?lang=en estiver definido usa o valor
$lang = $_GET['lang'];
setcookie('lang', $lang, time()+108000, '/');
}
Parte que traduz
switch ($_COOKIE['lang'])
{

        case 'pt':

                require("portugues.php");

                break;

        case 'en':

                require("ingles.php");

                break;

        default:

                require("portugues.php");

}

Editado por Will Up
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Olá.

Estou usando um cookie para gravar o idioma escolhido pelo visitante do meu site, mas o problema é que após o usuário escolher um idioma e recarregar a página, o cookie gravado anteriormente (EN) é substituído pelo padrão (PT). Como fazer para o cookie não sobrescrever?

A parte que grava tá assim

if (!isset($_GET['lang'])) {
//se ?lang=en não for definido, cria padrão PT
setcookie('lang', 'pt', time()+108000, '/');
} else {
//se ?lang=en estiver definido usa o valor
$lang = $_GET['lang'];
setcookie('lang', $lang, time()+108000, '/');
}
Parte que traduz
switch ($_COOKIE['lang'])
{

        case 'pt':

                require("portugues.php");

                break;

        case 'en':

                require("ingles.php");

                break;

        default:

                require("portugues.php");

}

o Will, o erro deve estar no código de gravação,

Verifique se ele não está sendo executado em todas as páginas, ele deve ser executado somente se clicado no link da linguagem.

Ao meu ver, parece que ele está sobreescrevendo toda vez antes de checar qual está gravado.

Link para o comentário
Compartilhar em outros sites

  • 0

Não, ele está sendo executado somente ma home.

Me disseram que eu deveria fazer assim, mas não consegui:

Se existir o cookie

Verifica o GET

Se existe o GET, usa ele e sobrescreve o cookie

Se não existe o GET, usa o cookie

Se não existir o cookie

Verifica o GET

Se existe o GET, usa ele e cria o cookie

Se não existe o GET, usa o default (mas não mexe no cookie)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...