kiedy setcookie zwróci False

0

Mam taki kod (uczę się ogarniać ciastka):

<!DOCTYPE html>
<html lang="pl">
	<head>
		<meta charset="utf-8">
		<title>ciastka</title>
	</head>
	<body>
             <?php 
                if (setcookie('ciasteczko','czekoladowe',time()+3)) 
                      echo "ciastko ustawione <br>";
                else
                     echo "nie udało się ustawić ciastka <br>"; 

                if (isset($_COOKIE['ciasteczko']))
                     echo $_COOKIE['ciasteczko'];
                else
                     echo "brak danych";
             ?>
	</body>
</html>

Z moich testów wynika, że warunek:

if (setcookie('CIACHO','czekolada',time()+3)) 

zawsze zwraca True.

Pytanie dlaczego? Czemu nie zwraca False gdy w czasie krótszym niż 3 sekundy odświeżę stronę? Czy to nie jest tak, że setcookie nie sprawdza, czy udało się nadpisać ciastko?

0

https://www.php.net/manual/en/function.setcookie.php

Return Values

If output exists prior to calling this function, setcookie() will fail and return false. If setcookie() successfully runs, it will return true. This does not indicate whether the user accepted the cookie.

... gdzie output oznacza np. coś wyświetlonego za pomocą echo.

0
 $komunkat = '';
            
if (setcookie('CIACHO','czekolada',time()+3)) 
       $komunikat =  "ciastko ustawione <br>";
else
       $komunikat =  "nie udało się ustawić ciastka <br>"; 

echo $komunikat; 

Efekt ten sam.

0

Niestety nie rozumiem co próbujesz przekazać :/

0

Jak wykryć, że raz ustawionego ciastka nie nadpiszę, dopóki nie upłyną co najmniej 3 sekundy?

1

Wydaje mi się, że mógłbyś wykorzystać isset($_COOKIE['ciasteczko']), aby sprawdzić czy ciasteczko już istnieje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1