Compteur sur banniere php

Fermé
macko75 Messages postés 8 Date d'inscription samedi 8 septembre 2012 Statut Membre Dernière intervention 11 octobre 2012 - 8 sept. 2012 à 19:14
0x40 Messages postés 65 Date d'inscription vendredi 7 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012 - 9 sept. 2012 à 11:33
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 65 Date d'inscription vendredi 7 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012 41
Modifié par 0x40 le 8/09/2012 à 22:36
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 65 Date d'inscription vendredi 7 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012 41
Modifié par 0x40 le 9/09/2012 à 10:42
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 8 Date d'inscription samedi 8 septembre 2012 Statut Membre Dernière intervention 11 octobre 2012
Modifié par macko75 le 8/09/2012 à 22:52
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 109 Date d'inscription dimanche 9 septembre 2012 Statut Membre Dernière intervention 9 mars 2018 3
9 sept. 2012 à 10:50
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 65 Date d'inscription vendredi 7 septembre 2012 Statut Membre Dernière intervention 14 septembre 2012 41
9 sept. 2012 à 11:33
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