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

Enguerran -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
<?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 :

5 réponses

  1. jee pee Messages postés 31883 Date d'inscription   Statut Modérateur Dernière intervention   9 979
     

    Bonjour,

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

    Il faudrait convertir $nombre_visite en entier


    0
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     

    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
    1. jee pee Messages postés 31883 Date d'inscription   Statut Modérateur Dernière intervention   9 979
       

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

      0
  3. Jerome
     

    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
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Jerome
     

    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
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      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