Problème de code pour voir le nombre de visites sur un site

Fermé
Enguerran - 25 août 2023 à 15:51
jordane45 Messages postés 38428 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 février 2025 - 4 sept. 2023 à 13:48
<?php

$heure_visite = date('d m Y h:i:s');
setcookie('date_visite' , $heure_visite , time()+604800);
if(isset($_COOKIE['date_visite']))
{
    if(isset($_COOKIE['nombre_visite']))
{
    $nombre_visite = $_COOKIE['nombre_visite'];
    $nombre_visite = $nombre_visite +1;
    $message = 'Bonjour, vous avez vitité cette page '. $nombre_visite .' fois';
   
}
else
{
    $nombre_visite = 1;
    $message = 'Bonjour vous avez déjà visité cette page '. $nombre_visite .' fois';
}
setcookie('nombre_visite', 'nombre_visite', time()+604800);
$message = '<br> la date de votre derniere visite est le '. $_COOKIE['date_visite'];
}
else
{
    $message = 'Bonjour, <br> C\'est votre premiere visite sur cette page';
}
?>

<?php if(isset($message)) : ?>
<?php echo $message ?>
<?php endif ?>

Voici mon code que j'ai recopier d'un cours, mais il me met un message d'erreur :

A voir également:

5 réponses

jee pee Messages postés 40817 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 février 2025 9 529
Modifié le 25 août 2023 à 15:59

Bonjour,

Le message est explicite, en ligne 10 tu additionnes une chaine et un entier.

Il faudrait convertir $nombre_visite en entier


0
MPMP10 Messages postés 42957 Date d'inscription vendredi 28 avril 2017 Statut Membre Dernière intervention 18 février 2025 16 441
Modifié le 25 août 2023 à 16:03

Bonjour,

Problème de code et de politesse aussi !

Il n'y a pas de distributeur automatique de réponse ici sur le forum CCM, mais que des bénévoles…

https://www.commentcamarche.net/infos/25855-charte-d-utilisation-de-commentcamarche-net-respect-d-autrui/

Bonne lecture et bonne continuation.


0
jordane45 Messages postés 38428 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 février 2025 4 735
25 août 2023 à 18:43

Bonjour 

Le problème vient surtout de la ligne 19 ...

Il faut remplacer

setcookie('nombre_visite', 'nombre_visite', time()+604800);

par

setcookie('nombre_visite', $nombre_visite, time()+604800);

0
jee pee Messages postés 40817 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 février 2025 9 529
26 août 2023 à 09:27

Effectivement si la première fois on enregistre 1 et pas une chaine cela devrait mieux fonctionner.

0

Bonjour,

Le problème de la ligne 10 est simple : problème de type de données.

La conversion de type est simple et peut se faire à la volée :

$nombre_visite = (int)$_COOKIE['nombre_visite'];
-1
jordane45 Messages postés 38428 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 février 2025 4 735
4 sept. 2023 à 10:01

Bonjour,

Le problème ne vient pas d'un souci de "cast" de type de variable .. mais.. comme je l'ai indiqué dans ma précédente réponse... de la valeur qui est stockée dans le cookie à la ligne 19 !

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

La ligne 19 a aussi un problème puisqu'il ne stocke pas la valeur de la variable, mais l'erreur peut subsister à la ligne 10 parce que les valeurs du tableau $_SESSION sont des chaines de caractère.

-1
jordane45 Messages postés 38428 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 février 2025 4 735
4 sept. 2023 à 13:48

PHP est capable de "caster" tout seul les nombres stockés dans des chaines ...

Voici un exemple pour te le prouver

<?php

$x = 10;
$T = $x + 1 ;
echo $T ;
echo "<br>";


$Y = "20";
$T2 = $Y + 1 ;
echo $T2;
echo "<br>";
0