[PHP Mysql] Pb affichage unique frame par ip
Grumos
-
Grumos -
Grumos -
Bonjour,
J'ai fait un script pour afficher une frame une fois par ip et par jours mais il ne fonctionne pas vraiments. Le script que j'ai fait vide donc la table dès que quelqu'un ouvre la page si la date n'est pas trouvée dans la table pour ensuite afficher la frame et inscrire sont ip dans la base pour normalement ne plus afficher la frame à sa prochaine visite le même jours. Mais je ni arrive pas après plusieurs essaie j'ai arrété sur se script et là il ne veut plus afficher la frame pouriez vous m'aider svp. Voici le script :
Me suis-je bien fait comprendre ?
J'ai fait un script pour afficher une frame une fois par ip et par jours mais il ne fonctionne pas vraiments. Le script que j'ai fait vide donc la table dès que quelqu'un ouvre la page si la date n'est pas trouvée dans la table pour ensuite afficher la frame et inscrire sont ip dans la base pour normalement ne plus afficher la frame à sa prochaine visite le même jours. Mais je ni arrive pas après plusieurs essaie j'ai arrété sur se script et là il ne veut plus afficher la frame pouriez vous m'aider svp. Voici le script :
<?php $Ip = $_SERVER['REMOTE_ADDR']; $Date = date("d/m/Y"); $db = mysql_connect('localhost', 'login', 'mdp') or die('Erreur de connexion '.mysql_error()); mysql_select_db('base',$db) or die('Erreur de selection '.mysql_error()); define( _TABLE , 'Ip_Unique' ); $sql = "SELECT Ip,Date FROM " . _TABLE . " ORDER BY DATE DESC "; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); if($data['Date'] != $Date) { mysql_query("TRUNCATE TABLE " . _TABLE . ""); } if($data['Ip'] != $Ip) { mysql_query("INSERT INTO " . _TABLE . " (Ip,Date) VALUES ('$Ip','$Date') WHERE Ip!='".$Ip."'"); } if($Ip != $data['Ip']) { if($Date != $data['Date']) { echo ("<iframe src='http://www.bonus.grumosweb.fr/PTP2.php' width=0 height=0 MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=no></iframe>"); } } mysql_close(); ?>
Me suis-je bien fait comprendre ?
A voir également:
- [PHP Mysql] Pb affichage unique frame par ip
- Ethernet n'a pas de configuration ip valide - Guide
- Télévision ip - Guide
- Comment connaître son adresse ip - Guide
- Ip local - Guide
- Affichage double ecran - Guide
2 réponses
Bonjour,
Je pense que ton problème vient du fait que tu ne vérifies que l'IP corresponde à une entrée de ta table que sur un seul enregistrement, le premier renvoyé par mysq_fetch_assoc.
Il faudrait parcourir tout le tableau pour vérifier que l'IP n'y est pas, où, mieux (à mon avis), faire une requête avec l'IP.
Aussi, un WHERE dans une clause INSERT n'est, comment dire... pas franchement habituel...
Voilà ce que je te propose :
Xavier
Je pense que ton problème vient du fait que tu ne vérifies que l'IP corresponde à une entrée de ta table que sur un seul enregistrement, le premier renvoyé par mysq_fetch_assoc.
Il faudrait parcourir tout le tableau pour vérifier que l'IP n'y est pas, où, mieux (à mon avis), faire une requête avec l'IP.
Aussi, un WHERE dans une clause INSERT n'est, comment dire... pas franchement habituel...
Voilà ce que je te propose :
<?php $Ip = $_SERVER['REMOTE_ADDR']; $Date = date("d/m/Y"); $db = mysql_connect('localhost', 'login', 'mdp') or die('Erreur de connexion '.mysql_error()); mysql_select_db('base',$db) or die('Erreur de selection '.mysql_error()); define( _TABLE , 'Ip_Unique' ); // Recherche du nombre d'entrées aujourd'hui (toute IP confondue) $sql = "SELECT count(*) as entrees_auj FROM " . _TABLE . " WHERE `Date` = '".$Date."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); // Si aucune entrée aujourd'hui, on vide la table if($data['entrees_auj'] == 0) { mysql_query("TRUNCATE TABLE " . _TABLE . ""); } // Recherche des entrées sur l'IP concernée $sql = "SELECT count(*) as entrees_ip FROM " . _TABLE . " WHERE `Ip` = '".$Ip."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); // S'il n'y a eu aucune entrée sur cette IP if($data['entrees_ip'] == 0) { mysql_query("INSERT INTO " . _TABLE . " (Ip,Date) VALUES ('$Ip','$Date')); echo ("<iframe src='http://www.bonus.grumosweb.fr/PTP2.php' width=0 height=0 MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=no></iframe>"); } mysql_close(); ?>Qu'en penses-tu ?
Xavier
olalalala, désolé j'avais completement oublier ce post.
Merci à toi Xavier mais j'ai opté pour les cookies enfaite, c'est plus simple.
P.s.: Si un modérateur ou amdin passe par ici, il peut mettre en résolu car je ne peut pas je n'arrive pas à me connecter j'ai surment été supprimé.
Merci encore.
Grumos
Merci à toi Xavier mais j'ai opté pour les cookies enfaite, c'est plus simple.
P.s.: Si un modérateur ou amdin passe par ici, il peut mettre en résolu car je ne peut pas je n'arrive pas à me connecter j'ai surment été supprimé.
Merci encore.
Grumos