Compteur sur banniere php

bonjour,

j'ai deux soucis dans mon code un message NOTICE que je n'arrive pas a comprendre et mon compteur qui reste à zero :s

<?php
$tabBanniere=array(
		'banniere1' =>array('www.mack.com','http://mack.com/img/photos/min/haiti%203.jpg','description 1'),
		'banniere2' =>array('www.mack.com','http://mack.com/img/photos/Skip%20The%20Use.jpg','description 2'),
		'banniere3' =>array('www.mack.com','http://mack.com/img/videos/min/DJ%20Pone.jpg','description 3')
		);

$choix_banniere_aleatoire= array_rand($tabBanniere,1);

$somme_click_1=0;

if ($choix_banniere_aleatoire == $tabBanniere['banniere1']) {
	
	$somme_click_1++;
}
?>
<a href="<?php echo $tabBanniere[$choix_banniere_aleatoire][0]; ?>"><img src="<?php echo $tabBanniere[$choix_banniere_aleatoire][1]; ?>" alt="<?php echo $tabBanniere[$choix_banniere_aleatoire][2]; ?>"/></a>
<?php echo $somme_click_1;?>
<?php echo $tabBanniere['banniere1'];?>


le message est le suivant
Notice: Array to string conversion in /Applications/MAMP/htdocs/banniere/index.php on line 19
Array
une petite explication m'aiderai a voir plus claire :)

et pour le compteur il reste a zero :s
j'ai essayé ligne 14 $total=$somme_click_1++; avec un echo du $total mais la rien nom plus :s

Mais quand je met ma ligne de condition avec if ( $choix_banniere_aleatoire == 'banniere1')

la le compteur fonctionne

et reste bloqué a 1

merci pour votre aide

5 réponses

  1. Tous d'abord l'erreur vient du fait que vous essayez de comparer une chaine de caractère avec un tableau, or ce n'est pas POSSIBLE ! Vous même aviez la solution :
     if ($choix_banniere_aleatoire == 'banniere1') { 
      ++$somme_click_1; 
     } 
    


    Ensuite votre compteur il doit s'incrémenter lorsque l'on clique sur l'image ?
    1. Merci beaucoup pour votre réponse :) j'ai pu avancer le code de mon coté en incrémentant le nombdre de fois que la banniere1 est affiché. avec se code :
      if ( $choix_banniere_aleatoire == 'banniere1') { 
       if (!file_exists($filename)) { 
        $fp=fopen($filename, "w+"); 
        $somme_click_1=1; 
        fputs($fp,$somme_click_1); 
        fclose($fp); 
       }else  
       {  
        $fp=fopen($filename, "r"); 
        $somme_click_1=fread($fp,1); 
        fclose($fp); 
        $somme_click_1++; 
        $fp=fopen($filename, "w+"); 
        fputs($fp,$somme_click_1); 
        fclose($fp);  
       } 
         
      }


      et oui l'étape suivante est de savoir le nombre de click mais en php je ne sais pas comment on identifie un click:s je penses prendre la piste du $_GET spécifique envoyé dans ma barre d'adresse et de là m'en servir dans une condition semblable a celle ci dessus ya peu être plus simple?
      1. Plus simple non, mais plus sécurisé oui !
        Je ne vous conseille pas l'utilisation des GET mais plutôt des sessions. Ce qui permettra une transition d'informations invisible pour l'utilisateur.

        On initialise comme ceci :
        <?php 
             session_start(); 
        

        Le code ci dessus doit être placé avant tous code HTML, l'avantage est qu'en le plaçant au début de chaque page vous accédez rapidement à toutes les variables sessions.

        Enfin pour créer une variable :
        $_SESSION['count'] = 0; 
        $_SESSION['addIP'] = "0.0.0.0"; 
        $_SESSION['checked'] = false; 
        //etc.. 
        $_SESSION['count'] += 10; 
        


        Du coup lorsque l'utilisateur cliquera sur l'image vous l'envoyé par exemple sur xXx.php?compteur ainsi si dans xXx.php, $_GET['compteur'] existe pour mettez une variable session à tel ou tel valeur provoquant donc une limitation de triche..

        File : xXX.php
        <?php
        	session_start();
        
        	if ( isset( $_GET['compteur'])){
        		if ( !isset($_SESSION['visite']) || !$_SESSION['visite'] ){
        			$_SESSION['visite'] = true; // True = Déjà visité
        			# Code ... // Incémentation du compteur, écriture dans un fichier etc...
        		} else { echo 'Erreur ! Page deja visitee :('; }
        	}
        
        1. Ils peuvent quand meme trichez ???

          Si il utilise un proxy pour l ip,

          Je sais il faut etre bete pour faire ca xd
          1. De toute façon la variable session reste tant qu'elle na pas expiré, au pire pas besoin de vérifier l'IP c'est inutile ! On peut toujours placé un cookie en supplément.