Come posso impostare un cookie su localhost con MAMP + MacOSx + PHP?
Domanda
Sto sviluppando sul mio notebook Mac, utilizzo MAMP. Sto cercando di impostare un cookie con PHP e non posso. Ho lasciato il dominio, ho provato a usare " \ " per il dominio. Senza fortuna.
setcookie("username", "George", false, "/", false);
setcookie("name","Joe");
Mi manca qualcosa di ovvio. Ho bisogno di una soluzione rapida e semplice a questo. Ce n'è uno?
Non sto facendo nulla di stravagante, sto semplicemente caricando (tramite MAMP) la pagina, http: // localhost: 8888 / MAMP / lynn / setcookie.php
Quello script ha il codice setcookie in alto, prima ancora di scrivere i tag HTML. (anche se l'ho provato anche nel CORPO). Carico la pagina in vari browser, quindi apro la lista dei cookie. So che i browser accettano i cookie, perché vedo quelli correnti nell'elenco. Solo non il mio nuovo.
Soluzione
Dai documenti:
setcookie () definisce un cookie da inviare insieme al resto delle intestazioni HTTP. Come altre intestazioni, i cookie devono essere inviati prima di qualsiasi output dallo script (questa è una restrizione del protocollo). Ciò richiede di effettuare chiamate a questa funzione prima di qualsiasi output, inclusi tag e qualsiasi spazio bianco.
È così?
modifica
Riesci a vedere il cookie inviato dal server, ad es. utilizzando l'estensione di Firefox Dati manomissione o telnet? Riesci a vederlo essere rispedito dal browser alla richiesta successiva? Qual è il valore di ritorno di setcookie ()? Non funziona in tutti i browser o solo in alcuni?
Altri suggerimenti
<?php
ob_start();
if (isset(<*>
Prova questo.
COOKIE['test'])) {
echo 'cookie is fine<br>';
print_r(<*>
Prova questo.
COOKIE);
} else {
setcookie('test', 'cookie test content', time()+3600); /* expire in 1 hour */
echo 'Trying to set cookie. Reload page plz';
}
Prova questo.
Eliminazione di " localhost " e solo avere una stringa vuota ha funzionato per me.