Pergunta

Estou desenvolvendo no meu notebook Mac, eu uso o MAMP. Estou tentando definir um biscoito com PHP, e não posso. Eu parei de fora do domínio, tentei usar "" para o domínio. Sem sorte.

setcookie("username", "George", false, "/", false);
setcookie("name","Joe");

Eu devo estar deixando passar algo óbvio. Eu preciso de uma solução rápida e simples para isso. Existe um?

Não estou fazendo nada chique, simplesmente carregando (via mamp) a página,http: // localhost: 8888/mamp/lynn/setcookie.php

Esse script possui o código setCookie na parte superior, antes mesmo de escrever as tags HTML. (Embora eu tentasse no corpo também). Carrego a página em vários navegadores e depois abro a listagem de cookies. Sei que os navegadores aceitam cookies, porque vejo os atuais na lista. Apenas não é o meu novo.

Foi útil?

Solução

Dos documentos:

setcookie () define um cookie a ser enviado junto com o restante dos cabeçalhos HTTP. Como outros cabeçalhos, os cookies devem ser enviados antes de qualquer saída do seu script (esta é uma restrição de protocolo). Isso exige que você faça chamadas para essa função antes de qualquer saída, incluindo e tags, bem como qualquer espaço em branco.

É isso?

editar:

Você pode ver o cookie sendo enviado pelo servidor, por exemplo, usando a extensão do Firefox Adulteração de dados, ou telnet? Você pode vê -lo sendo enviado de volta pelo navegador na próxima solicitação? Qual é o valor de retorno do setCookie ()? Não está funcionando em todos os navegadores, ou apenas em alguns?

Outras dicas

<?php
ob_start();
if (isset($_COOKIE['test'])) {
    echo 'cookie is fine<br>';
    print_r($_COOKIE);
} else {
    setcookie('test', 'cookie test content', time()+3600);  /* expire in 1 hour */
    echo 'Trying to set cookie. Reload page plz';    
}

Tente isso.

Tirando "localhost" e apenas ter uma corda em branco funcionou para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top