PHP Problema con if( isset($_COOKIE['cookie']) ), nunca da true

  • Autor Autor gusta1996
  • Fecha de inicio Fecha de inicio
gusta1996

gusta1996

Delta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Hola betas programadores

hoy necesito su ayuda
Este código php por alguna razon siempre me da como que la cookie no existe, no importa cuantas veces recarge la pagina
es como si la cookie no se creara 🙁
me pueden ayudar a que funcione?
la idea es esta:

"Si la cookie no existe, entonces crea una cookie y agrega el valor 1, y cuando recargue la pagina el valor de la cookie aumente en +1"

PHP:
// Si la cookie existe...
if (isset($_COOKIE['countvisit'])) {
    // Sumarle 1 al valor
    $_COOKIE['countvisit'] += 1;

} else {
    // Si no existe, Crea la cookie con el nuevo valor 1
    setcookie('countvisit', 1, time()+3600, '/');
}

// imprime el valor de la cookie
echo $_COOKIE['countvisit'];

gracias por adelanto
 
La creación de cookies no es instantánea. Necesitas recargar la página para acceder al valor de la cookie que acabas de crear. Te sugiero que puedes comprobar si la cookie existe, y si es así, sumar +1 y volver a establecer la cookie con el valor actualizado. Si no es así, crear la cookie:

PHP:
if (isset($_COOKIE['countvisit'])) {
    $countvisit = $_COOKIE['countvisit'] + 1;
    setcookie('countvisit', $countvisit, time()+3600, '/')
} else {
    setcookie('countvisit', 1, time()+3600, '/');
    $countvisit = 1;
}

echo $countvisit;

Además, para verificar si las cookies se están estableciendo correctamente en tu navegador, asegúrate de que no estás restringiendo las cookies en el propio navegador.
 
El código PHP que compartiste parece estar correctamente estructurado para crear una cookie y aumentar su valor en 1 cada vez que se recargue la página. Sin embargo, es importante tener en cuenta que en PHP, cuando estableces una cookie, los cambios no se reflejan en la variable $_COOKIE hasta que la página se recargue.

Aquí hay una modificación en tu código para asegurarte de que se muestre el valor correcto de la cookie:

// Si la cookie existe...
if (isset($_COOKIE['countvisit'])) {
// Sumarle 1 al valor
$_COOKIE['countvisit'] += 1;

// Actualizar el valor de la cookie
setcookie('countvisit', $_COOKIE['countvisit'], time()+3600, '/');
} else {
// Si no existe, crea la cookie con el nuevo valor 1
setcookie('countvisit', 1, time()+3600, '/');
}

// Imprime el valor de la cookie
echo $_COOKIE['countvisit'];
Al actualizar el valor de la cookie mediante setcookie, estás asegurándote de que el nuevo valor se guarde correctamente. Luego, puedes acceder a $_COOKIE['countvisit'] para mostrar el valor actualizado.

Ten en cuenta que para que la modificación surta efecto, deberás recargar la página después de haber establecido la cookie por primera vez.
 
Entonces así para actualizar el valor?
PHP:
// Si la cookie existe...
if (isset($_COOKIE['countvisit'])) {
    // Sumarle 1 al valor y actualizar
    $aumentar = $_COOKIE['countvisit'] + 1;
    setcookie('countvisit', $aumentar, time()+3600, '/');
} else {
    // Si no existe, Crea la cookie con el nuevo valor 1
    setcookie('countvisit', 1, time()+3600, '/');
}

// imprime el valor de la cookie
echo $_COOKIE['countvisit'];

Pero el problema persiste 🙁
 
Entonces así para actualizar el valor?
PHP:
// Si la cookie existe...
if (isset($_COOKIE['countvisit'])) {
    // Sumarle 1 al valor y actualizar
    $aumentar = $_COOKIE['countvisit'] + 1;
    setcookie('countvisit', $aumentar, time()+3600, '/');
} else {
    // Si no existe, Crea la cookie con el nuevo valor 1
    setcookie('countvisit', 1, time()+3600, '/');
}

// imprime el valor de la cookie
echo $_COOKIE['countvisit'];

Pero el problema persiste 🙁
El problema creo esta en que el valor de la cookie es un string y le estas queriendo sumar xD
 
La creación de cookies no es instantánea. Necesitas recargar la página para acceder al valor de la cookie que acabas de crear. Te sugiero que puedes comprobar si la cookie existe, y si es así, sumar +1 y volver a establecer la cookie con el valor actualizado. Si no es así, crear la cookie:

PHP:
if (isset($_COOKIE['countvisit'])) {
    $countvisit = $_COOKIE['countvisit'] + 1;
    setcookie('countvisit', $countvisit, time()+3600, '/')
} else {
    setcookie('countvisit', 1, time()+3600, '/');
    $countvisit = 1;
}

echo $countvisit;

Además, para verificar si las cookies se están estableciendo correctamente en tu navegador, asegúrate de que no estás restringiendo las cookies en el propio navegador.
Resuelve el siguiente problema



// Si la cookie existe...
if (isset($_COOKIE['countvisit'])) {
// Sumarle 1 al valor
$_COOKIE['countvisit'] += 1;

} else {
// Si no existe, Crea la cookie con el nuevo valor 1
setcookie('countvisit', 1, time()+3600, '/');
}

// imprime el valor de la cookie
echo $_COOKIE['countvisit'];

la cookie no se esta creando, dame otra posible solucion.
 
Resuelve el siguiente problema



// Si la cookie existe...
if (isset($_COOKIE['countvisit'])) {
// Sumarle 1 al valor
$_COOKIE['countvisit'] += 1;

} else {
// Si no existe, Crea la cookie con el nuevo valor 1
setcookie('countvisit', 1, time()+3600, '/');
}

// imprime el valor de la cookie
echo $_COOKIE['countvisit'];

la cookie no se esta creando, dame otra posible solucion.
Seguro, la solución puede ser mover la impresión de la cookie al if/else. Así, si la cookie existe, sumamos uno, volvemos a definir la cookie y la imprimimos. Si no existe, la definimos e imprimimos.

Insertar CODE, HTML o PHP:
if (isset($_COOKIE['countvisit'])) {
    $countvisit = ++$_COOKIE['countvisit'];
    setcookie('countvisit', $countvisit, time()+3600, "/");
    echo $countvisit;
} else {
    setcookie('countvisit', 1, time()+3600, "/");
    echo 1;
}

Espero eso te ayude a resolver el problema.
 
// Si la cookie existe...
if (isset($_COOKIE['countvisit'])) {
// Sumarle 1 al valor y guarda el nuevo valor en una variable
$count = $_COOKIE['countvisit'] + 1;
} else {
// Si no existe, establece el valor inicial en una variable
$count = 1;
}

// Crea o actualiza la cookie con el nuevo valor
setcookie('countvisit', $count, time()+3600, '/');

// imprime el valor de la variable
echo $count;

--------------------------------------------------------------
if (isset($_COOKIE['countvisit'])) {
$count = $_COOKIE['countvisit'] + 1;
} else {
$count = 1;
}

setcookie('countvisit', $count, time()+3600, '/');
$_COOKIE['countvisit'] = $count; // actualizar manualmente $_COOKIE
echo $_COOKIE['countvisit'];
 
Buena idea, no se me ocurrió de esa forma, lo probaré en cuanto pueda
 
// Si la cookie existe...
if (isset($_COOKIE['countvisit'])) {
// Sumarle 1 al valor y guarda el nuevo valor en una variable
$count = $_COOKIE['countvisit'] + 1;
} else {
// Si no existe, establece el valor inicial en una variable
$count = 1;
}

// Crea o actualiza la cookie con el nuevo valor
setcookie('countvisit', $count, time()+3600, '/');

// imprime el valor de la variable
echo $count;

--------------------------------------------------------------
if (isset($_COOKIE['countvisit'])) {
$count = $_COOKIE['countvisit'] + 1;
} else {
$count = 1;
}

setcookie('countvisit', $count, time()+3600, '/');
$_COOKIE['countvisit'] = $count; // actualizar manualmente $_COOKIE
echo $_COOKIE['countvisit'];
ya lo probé y mirando todas las cookie con el codigo
print_r($_COOKIE);

el resultado siempre es:
[cuentaVistas] => 1

recargué muchas veces
 
De todas formas siempre pruébalo en modo incoģnito, o hazlo presionando control + f5
 
ya lo probé y mirando todas las cookie con el codigo
print_r($_COOKIE);

el resultado siempre es:
[cuentaVistas] => 1

recargué muchas veces

"Si existe algún tipo de output anterior a la llamada de esta función, setcookie() fallará y retornará false."
Osea no puedes imprimir nada antes de tu codigo.

PHP:
<?php

if(!empty($_COOKIE['countvisit'])){
 
    $count = ($_COOKIE['countvisit'] + 1);
    setcookie('visit', $count, time() + 3600);

} else {
 
    setcookie('countvisit', 1, time() + 3600);
 
}

echo $_COOKIE['countvisit'];

?>
 
"Si existe algún tipo de output anterior a la llamada de esta función, setcookie() fallará y retornará false."
Osea no puedes imprimir nada antes de tu codigo.

PHP:
<?php

if(!empty($_COOKIE['countvisit'])){
 
    $count = ($_COOKIE['countvisit'] + 1);
    setcookie('visit', $count, time() + 3600);

} else {
 
    setcookie('countvisit', 1, time() + 3600);
 
}

echo $_COOKIE['countvisit'];

?>
entiendo lo que quieres decir
pero tampoco me funciono :c
 
Atrás
Arriba