Compteur sur banniere php
macko75
Messages postés
10
Statut
Membre
-
0x40 Messages postés 73 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
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
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
-
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 ? -
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 :('; } } -
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? -
Ils peuvent quand meme trichez ???
Si il utilise un proxy pour l ip,
Je sais il faut etre bete pour faire ca xd -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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.