Capybara Posté 8 Septembre 2007 Posté 8 Septembre 2007 (modifié) Bonjour. J'ai 6 pages différentes pour lesquelles je souhaite afficher à chaque visiteur la date et l'heure de son dernier hit de cette page. Pour ce j'ai pensé à installer une table d'une base mysql en enregistrant adresse ip et date de la visite. Ensuite j'ai utilisé une condition if afin d'afficher un message correspondant au visiteur et mettant à jour l'heure de sa dernière visite ou lui indiquant qu'il la visite pour la première fois. voila ce que ça a donné <?php $ip=$_SERVER['REMOTE_ADDR']; $heure=date('Y/m/d/H/i/s'); mysql_connect("localhost","login","password"); mysql_select_db("base"); $reponse=mysql_query("select COUNT(*) AS nbre from visites where ip='$ip'"); $rep=mysql_query("select * from visites where ip='$ip'"); $donne=mysql_fetch_array($reponse); $don=mysql_fetch_array($rep); if ($donne['nbre']==0) {echo 'ceci est votre first visite'; mysql_query("insert into visites values ('$ip','$heure')"); } else {echo 'vous etes deja venu le'.$don['date'].'merci'; mysql_query("update visites set date='$heure' where ip='$ip'"); } mysql_close(); ?> Je pense ajouter un champ pour chacune des pages ensuite sur chaque page la requète sql serait affinée avec un where pour selectionner la bonne page tandis que les autres champs correspondats aux autres pages seraient laissés vides lors de l'insert into au cas ou ça serait la première visite de l'internaute. Bien que je sois débutant, je me demande si je suis pas en train de trop me compliquer la vie en risquant de me faire virer pour surconsommation des ressources serveurs. qu'en pensez vous et merci d'avance pour vos réponses. Je vous remercie doublement car je sais que vous devrez faire un certain effort pour me comprendre tant je suis brouillon. Encore merci. Modifié 9 Septembre 2007 par Arlette
Sarc Posté 8 Septembre 2007 Posté 8 Septembre 2007 Bonjour, Le seul problème avec l'IP, c'est que tout le monde n'a pas une IP fixe, donc que le script risque de ne pas marcher avec tout le monde, et tout le temps... Tu risques pas d'exploser le serveur avec ce programme, sauf si tu fais des millions de visiteurs par jour. Je te conseillerais juste de supprimer les lignes dont les dates sont vieilles (plus d'un mois par exemple), comme ça ça fait "le ménage" dans ta base de données, et tu n'auras donc rien à craindre.
Capybara Posté 8 Septembre 2007 Auteur Posté 8 Septembre 2007 Merci Sarc mais je ne peux supprimer les vieilles dates, il faut que mes visiteurs puissent être au courant de toutes les evolutions. Dois je en déduire que mon script n'est pas aussi tiré par les cheveux??
Sarc Posté 9 Septembre 2007 Posté 9 Septembre 2007 Purée, une bonne nuit de sommeil, ça calme pas mal quand même... Ta méthode devrait être remplacée par une méthode aux cookies. Tu places un cookie sur l'ordi du visiteur, avec comme informations la page, le nombre de visites, la date de la dernière visite, etc... Comme ça, plus besoin d'une grosse base de données, les infos sont directement sur l'ordi du visiteur. Les IP dynamiques ne poseront pas de problèmes particuliers. Par contre, je comprends pas pourquoi tu mets : il faut que mes visiteurs puissent être au courant de toutes les evolutions. C'était pas un simple compteur que tu voulais mettre ?
Capybara Posté 9 Septembre 2007 Auteur Posté 9 Septembre 2007 Bonjour. C'est vrai qu'une bonne nuit de sommeil ça fait du bien. Je m'explique: j'ai besoin d'afficher au visiteur en haut de l'ecran la date et l'heure de sa dernière visite. En revanche je m'inquiète de la taille démesurée que peut prendre la base de données. Je n'ai pas besoin d'un compteur de visites. Merci je veux voir pour les cookies, même si j'aimerais que tu eclaires ma lanterne pour ce qui est des ip fixe et dynamiques. Un lien à me proposer? L'utilisation des cookies n'implique t'elle pas (dans mon cas) de les récupérer, d'en extraire des données pour les afficher et d'en renvoyer un autre pour chaque visiteur. Ca fait pas beaucoup?
Sarc Posté 9 Septembre 2007 Posté 9 Septembre 2007 Disons que beaucoup d'utilisateurs d'internet, à chaque fois qu'ils se connectent, ont une nouvelle IP... C'est à dire que si tu stockes mon IP dans ta base, que j'éteinds mon modem, et que je le rallume, j'aurai une nouvelle IP. Donc ton système qui consiste à stocker les IP dans une base de données ne pourra pas marcher pour moi ! Il ne marchera que pour les personnes qui ont une IP permanente. Pour ce qui est des cookies, t'inquiète pas, la totalité des sites les récupère, les traite et les renvoie. Rien que sur Webmaster-Hub, je dois avoir 7 cookies qui traînent dans mon ordi pour stocker ce genre d'informations. Pour connaître la gestion des cookies : PHP Débutant
Capybara Posté 9 Septembre 2007 Auteur Posté 9 Septembre 2007 Merci beaucoup pour ton aide sarc. Vraiment merci.
zola2 Posté 13 Septembre 2007 Posté 13 Septembre 2007 Oui mais si tu as besoins de stocker pour chaque page des infos, ca va être dur de tout mettre dans un cookie... pour une page pas de problème mais si tu as 500 pages...
Capybara Posté 13 Septembre 2007 Auteur Posté 13 Septembre 2007 J'ai sept pages en tout. Le contenu du cookie est l'heure et la date du hit sur la page. Ca a l'air de marcher jusque la: si le cookie existe je récupère son contenu pour indiquer au visiteur la date et l'heure de sa dernière visite et je mets à jour le cookie. C'est pas terrible mais c'est déja mieux que mon plan de départ. Je dois une fière chandelle à sarc parce qu'autrement j'aurais trainé de trés gosses tables sans être sur que ça marche pour tous les visiteurs.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant