Decompte de clics [Résolu]

laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 17:44 - Dernière réponse : laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention
- 26 août 2009 à 18:05
Bonjour,

Je suis un peu perdu, j'ai un projet un peu spécial, je voudrais proposer un jeu au membre de mon site.

Je voudrais faire gagner une personne, après un certain nombre de clic sur un lien.

A chaque fois qu'une personne clic sur ce lien je voudrais que les autres puissent le voir :
Exemple un compteur qui affiche reste 200 clics avant le gagnant, et après le clic que sa affiche reste 199 clics avant le gagnant.

Chaque personne étant comptabilise qu'une seule fois.

Je suis entièrement perdu car je ne connais absolument rien en php. Je pensais que cela pouvais se faire en java script mais je viens d'apprendre que ce ne serais pas la bonne solution, et oui je débute lol.

Pouvez vous me donner des pistes svp ? je ne demande pas de me le faire je voudrais apprendre, je voudrais juste avoir des bonnes pistes, merci a vous.

Je vous ferais voir l'avancée de mon code pour avoir vos conseils par la suite.


laloire
Afficher la suite 

Votre réponse

36 réponses

Meilleure réponse
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 26 août 2009 à 07:36
3
Merci
Rebonjour,

bon maintenant que ton histoire de compteur semble marcher venons en aux cookies... avec ce tuto là tu devrais avoir suffisament d'infos pour pouvoir lire et écrire des cookies

http://phpcodeur.net/articles/php/cookies

Ce que tu a a faire c'est:
1: L'utilisateur appelle ta page
2: tu essaie de lire le cookie
3: si cookie (éventuellement - je le ferais - enregistré dans la bdd avec une clef de comparaison [deux fois la même dans le cookie et la bdd évidemment])
-> "Vous avez déjà participé"
Sinon
-> Compteur -1 + Ajout dans la BDD + Ajout d'un cookie chez ton visiteur!


Allez, c'est plus grand chose ;)
Bonne chance!


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here

Merci pysco68 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de pysco68
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 19:59
0
Merci
Bonsoir!!

Tout d'abord mes félicitations pour la formulation de ta demande!! On en voit trop peu des comme ça ;)

Donc comment t'aider, tout d'abord que connais tu à PHP / MySQL?? C'est par là qu'on peut commencer ^^

Une piste tout a fait générale: tu créé un liens vers un de tes fichiers php sur ton serveur, ce fichier envoie un cookie au visiteur afin de le "marquer" comme "ayant déjà participé" et qui enregistre le tout dans une banque de donnée; de plus ce script va faire une redirection vers autre chose (je suppose) et puis biensur le décompte...

Pour le "faire voir" auxautres visiteurs; tu peux utiliser un simple rafraichissement de la page, ou biens juste un petit bout de JS qui va chercher ces données (par AJAX / JSON ou similaires) sur un minuscule script qui récupère juste les données dans un tableau MySql

Bon comme dit là c'est juste un chemin que je te donne; si tu préscise un peux le niveau de tes conaissances ce sera plus facil de faire une "aide sur mesure"

Sinon il y a biensur les sites comme "phpdebutant" etc qui peuvent te conduire aux bases, mais je n'aime pas aiguiller sans raison ;)

Bonne soirée!

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 21:13
0
Merci
Bonjour,

je ne connais vraiment pas du tout le php pour tout te dire,
j'ai deja utilise des scripts avec un bbd en mysql que j'avais trouvé ici pour faire la zone membre de mon site,
j'ai juste suivit les indications qui avais avec. J'aimerai réellement apprendre car j'ai pas mal d'idée et j'adore le codage.
j'utilise beaucoup le html et le css ( je sais ce n'est qu'une toute petite partie, mais je me suis vraiment penché dessu et je me debrouille pas mal.)
Ce que je voudrais c'est passer à un niveau supérieur.

Je vais allez voir php pour débutant je pense que cela va bien m'aider.

merci pour ta réponse, même si je trouve vraiment bête car je n'ai pas tout compris lol


laloire
Commenter la réponse de laloire33150
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 21:20
0
Merci
Je ne peux pas vraimment être plus clair... sont-ce des expressions du métier qui te sont inconnues (cookie, BDD) ou plutot la manière de traiter les infos?

Cordialement Pysco68

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 21:32
0
Merci
re si je fais ceci sa fonctionnerais ?
<?
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites--;
fseek($fp,0);
fputs($fp,$nbvisites);
fclose($fp);
print("$nbvisites visiteurs");
?>
bien que la il me manque la bdd ?
Commenter la réponse de laloire33150
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 21:34
0
Merci
cela fonctionnerais bien, mais avec cela tu ne peux pas vraimment garantir que chaque visiteur ne clique qu'une fois...


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 21:40
0
Merci
re ok, alors pour le premier que je ferais je vais utiliser ceci, est je vais continuer a travailler dessus car je veux arriver a faire ce que j'ai décidé.

Donc la il faut que je créé une bdd avec une façon de récupérer l'ip, c'est bien sa ?

Alors suit encore perdu, lol !

mais je vais voir, puis-je compter sur toi pour suivre ce que je vais faire et me corriger ?


laloire
Commenter la réponse de laloire33150
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 22:05
0
Merci
enfait l'adresse IP toute seule tu t'en fous pas mal ^^

je pense que toi tu veux juste garantir qu'un utilisateur aille pas deux fois sur la page... tu va donc dès qu'il clique le mette un cookie dans son navigateur dans lequel il y a mettons une chaine de caractères unique (tu peux la générer aléatoirement), que tu enregistre aussi dans ta bdd avec l'adresse IP et une date...

Et puis au prochin visiteur tu vérifie:
- il a un cookie traceur de moi?? (comparer avec la BDD)
- je connais son IP?
- (Les deux?)
- nouvel utilisateur

Et en fonction de ce que tu trouves tu exécute certaines actions ;)

Ciao!

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 22:23
0
Merci
waou !

La tu m'as fait exploser la cafetière, lol
je pense qu'il va me falloir du temps et beaucoup de site a visiter
merci pour ta réponse


laloire
Commenter la réponse de laloire33150
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 22:26
0
Merci
re

je pense a un truc, j'ai compris le systeme, mais les cookies tout le monde ne les accepte pas ?


laloire
Commenter la réponse de laloire33150
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 22:28
0
Merci
90% des internautes...


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 22:29
0
Merci
(les acceptent désolé pour me post en deux parties)


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 22:34
0
Merci
voici le début :

table :

CREATE TABLE clients_tbl
(id INT not null AUTO_INCREMENT,
visiteur VARCHAR (50) not null ,
PRIMARY KEY (id))

Le code php :

<?php
$db = mysql_connect('localhost', 'login', 'password');
mysql_select_db('nom_de_la_base',$db);
$sql = 'SELECT visiteur';

$_SERVER['REMOTE_ADDR']
if :pour le moment je ne sait pas

$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites--;
fseek($fp,0);
fputs($fp,$nbvisites);
fclose($fp);
print("$nbvisites visiteurs");

je n'ai pas encore trouver pour l'histoire des cookies


laloire
Commenter la réponse de laloire33150
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 22:46
0
Merci
j'en suis la, tu en pense quoi ?

table :

CREATE TABLE clients_tbl
(id INT not null AUTO_INCREMENT,
visiteur VARCHAR (50) not null ,
PRIMARY KEY (id))

Le code php :

<?php
$db = mysql_connect('localhost', 'login', 'password');
mysql_select_db('nom_de_la_base',$db);
$sql = 'SELECT visiteur';

$_SERVER['REMOTE_ADDR']
if($_SERVER['REMOTE_ADDR']!=$sql)
else
{
$db = mysql_connect('localhost', 'login', 'password') or die('Erreur de connexion '.mysql_error());
mysql_select_db('nom_de_la_base',$db) or die('Erreur de selection '.mysql_error());
$sql = "INSERT INTO infos_tbl(visiteur) VALUES('','$_SERVER['REMOTE_ADDR']')";
mysql_close();
}
if($_SERVER['REMOTE_ADDR']!=$sql)
else
{
$fp = fopen("compteur.txt","r+");
$nbvisites = fgets($fp,11);
$nbvisites--;
fseek($fp,0);
fputs($fp,$nbvisites);
fclose($fp);
print("$nbvisites visiteurs"); }
?>


laloire
Commenter la réponse de laloire33150
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 22:51
0
Merci
Bon le début est pas trop mal,

mais ça:

if($_SERVER['REMOTE_ADDR']!=$sql)


tu compare une adresse IP 'xxx.xxx.xxx.xxx' (avec xxx: chiffre entre 0 et 255) et cette chaine: 'SELECT visiteur' donc inutile de dire que c'est la jamais la même chose...

Parcontre quitte a utiliser une bdd, mets y aussi ton compteur, ça t'entrainera!

Bonne nuit!


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 22:57
0
Merci
je n'ai pas compris : tu veux dire que sa ne fonctionnera pas ?



laloire
Commenter la réponse de laloire33150
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 23:06
0
Merci
ben tu veux bien comparer le résultat de ta requête, non le texte que tu utilise pour faire la requête...

-> il faut exécuter ta requête! (phpdébutant: http://www.phpdebutant.org/article66.php) pour réelement intéroger ta bdd


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 23 août 2009 à 23:23
0
Merci
je suis désolé mais je n'ai pas trouvé comment exécuter la requête peux tu m'éclairer ?




laloire
Commenter la réponse de laloire33150
pysco68 681 Messages postés samedi 26 février 2005Date d'inscription 21 août 2014 Dernière intervention - 23 août 2009 à 23:27
0
Merci
-> mysql_fetch_array()
http://fr3.php.net/mysql_fetch_array

ou autres ;)

Bye!

Je vais te laisser pour ce soir!

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
laloire33150 95 Messages postés dimanche 7 octobre 2007Date d'inscription 25 novembre 2009 Dernière intervention - 24 août 2009 à 09:09
0
Merci
Bonjour,
J'en suis à ce niveau :

<?php
$db = mysql_connect('localhost', 'login', 'password');
mysql_select_db('nom_de_la_base',$db);
$sql = "SELECT COUNT(*) as nombre FROM infos_tbl WHERE visiteur=' ".$_SERVER['REMOTE_ADDR'] . "'" ;
$result = mysql_query($sql);
$nombre = mysql_result($result,0);

if($nombre != 0)
{echo 'Vous avez déjà participé !'  ;}
else
{
$sql = "INSERT INTO infos_tbl (visiteur) VALUES('$_SERVER['REMOTE_ADDR']')";
}

$sql = "SELECT COUNT(*) as nombre FROM infos_tbl";
$result = mysql_query($sql);
$total = mysql_result($result,0);
$fp = fopen("compteur.txt","r"); 
$nbvisites = fgets($fp,11);
$compteur = $nbvisites-$total;
echo 'Nombre de participant avant gagnant : ' . $compteur;
?>
Commenter la réponse de laloire33150

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.