Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como posso saber, se os cookies estão ativos, ou desativos no browser ?
Os cookies não precisam ser gravados no lado do cliente, você pode gravar os cookies no servidor.
Pensei que Sessions eram gravados no servidor e cookies no pc do cliente, então pesquisei no google e achei isso Cookies, e se você ler o primeiro parágrafo do primeiro subtítulo,diz que "Cookies são gravados no disco rígido do usuário e não no servidor.", então como gravar cookies no servidor?
Outra idéia seria você fazer o seguinte, grava o cookie, depois verifica se o valor gravado é diferente de null, se for, é porque foi gravado, se não for, é porque não foi gravado, ou seja, não está com cookies habilitados.
quanto a isso, tentei fazer mas tem um pequeno probleminha
setcookie('Cookie','Existe');
if($_COOKIE['Cookie'] == NULL){
echo "não tem";
}else{
echo "tem";
//setcookie('Cookie');
}
isso verifica apenas uma vez,(ate que o cookie 'Cookie' não seja invalidado), ou seja quando executo pela primeira vez, tudo certo, mas se desativo os cookies, e atualizo a pagina fica igual(isso porque o cookie ainda ta la[não foi apagado]), tentei apagar ele colocando isso setcookie('Cookie'); antes da ultima chave, mas ai acontece outro problema, quando atualizo a pagina ele muda aleatoriamente em 'não tem', e 'tem', mesmo que os cookies estejam sempre ativados....não tem uma forma melhor de se fazer isso, não?>
.
Cristiano Cordeiro, Para de floodar o fórum, não dê up em tópicos, espere uma resposta.
??floodar?? verbo novo é...rsrs
e sobre o tópico, nada?
Flood :seta: mensagem inútil e/ou sem conteúdo.
Regras do fórum :seta: http://forum.imasters.com.br/index.php?app=core&module=help
>
??floodar?? verbo novo é...rsrs
http://pushingdaisiesbr.forumeiros.com/t20-o-que-e-floodar
>
e sobre o tópico, nada?
Tente assim:
<?php
ob_start();
function isCookieEnabled(){
$hash = md5( 'TestCookie' );
setcookie( '__cookie' , $hash , time() + 3600 );
return isset( $_COOKIE[ '__cookie' ] ) ? ( $_COOKIE[ '__cookie' ] == $hash ) ? true : false : false;
}
echo '<pre>';
print_r( $_COOKIE );
if( isCookieEnabled() )
echo 'Podemos gravar cookies';voce leu o que postei anteriormente <<< isso verifica apenas uma vez,(ate que o cookie 'Cookie' não seja invalidado), ou seja quando executo pela primeira vez, tudo certo, mas se desativo os cookies, e atualizo a pagina fica igual(isso porque o cookie ainda ta la[não foi apagado]), tentei apagar ele colocando isso setcookie('Cookie'); antes da ultima chave, mas ai acontece outro problema, quando atualizo a pagina ele muda aleatoriamente em 'não tem', e 'tem', mesmo que os cookies estejam sempre ativados....não tem uma forma melhor de se fazer isso, não? >>>
vale pare seu script tambem, ele verifica se tem o cookie, e não se os cookies estão desativados
e sobre
Os cookies não precisam ser gravados no lado do cliente, você pode gravar os cookies no servidor.
Pensei que Sessions eram gravados no servidor e cookies no pc do cliente, então pesquisei no google e achei isso Cookies, e se você ler o primeiro parágrafo do primeiro subtítulo,diz que "Cookies são gravados no disco rígido do usuário e não no servidor.", então como gravar cookies no servidor?
aind não me respondeu
Ok, então faz assim:
<?php
function isCookieEnabled(){
$hash = md5( 'TestCookie' );
setcookie( '__cookie' , $hash , time() + 3600 );
if( isset( $_COOKIE[ '__cookie' ] ) ) {
if( $_COOKIE[ '__cookie' ] == $hash ) {
setcookie( '__cookie' , null , time() - 3600 );
return true;
} else {
return false;
}
} else {
return false;
}
}
Sobre a sua pergunta, onde os cookies ficam guardados, creio que se você lesse a documentação da função, você ira notar: The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain.
coloquei isso
if(isCookieEnabled() == true){
echo 'tem';
}else{
echo 'não tem';
}
e fica a mesma coisa <<<acontece outro problema, quando atualizo a pagina ele muda aleatoriamente em 'não tem', e 'tem', mesmo que os cookies estejam sempre ativados....>>> voce so complicou o script que passeiNão compliquei o script não, o motivo de ficar 'tem', 'não tem' é porque você está removendo o cookie, então ele fica gravando, removendo, gravando removendo, ou seja, uma vez entra no if, outra no else, uma no if , outra no else, faz dessa forma então, removemos o cookie de teste possivelmente existente para gravar o novo:
<?php
ob_start();
function isCookieEnabled(){
$hash = md5( 'TestCookie' );
setcookie( '__cookie' , $hash , time() - 7200 );
setcookie( '__cookie' , $hash , time() + 3600 );
if( $_COOKIE[ '__cookie' ] == $hash ) {
return true;
} else {
return false;
}
}
echo '<pre>';
print_r( $_COOKIE );
if( isCookieEnabled() )
echo 'Podemos gravar cookies';
else
echo 'Não podemos gravar cookies';
E outra coisa, não precisa fazer isso 'if( isCookieEnabled() == true )' é desnecessário.
Os cookies não precisam ser gravados no lado do cliente, você pode gravar os cookies no servidor.
Saída:
Array
(
Outra idéia seria você fazer o seguinte, grava o cookie, depois verifica se o valor gravado é diferente de null, se for, é porque foi gravado, se não for, é porque não foi gravado, ou seja, não está com cookies habilitados.