Compteur sur banniere php

macko75 Messages postés 10 Statut Membre -  
0x40 Messages postés 73 Statut Membre -
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



A voir également:

5 réponses

0x40 Messages postés 73 Statut Membre 41
 
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
0x40 Messages postés 73 Statut Membre 41
 
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
macko75 Messages postés 10 Statut Membre
 
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?
0
mandolorien Messages postés 115 Statut Membre 3
 
Ils peuvent quand meme trichez ???

Si il utilise un proxy pour l ip,

Je sais il faut etre bete pour faire ca xd
0

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

Posez votre question
0x40 Messages postés 73 Statut Membre 41
 
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.
0