Como faço para definir um cookie no host mamp + macosx + php?
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.
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.