Afficher une frame une fois par ip et par jours.
Dernière réponse : dans Programmation
Bonsoir,
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 ?
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 ?
Autres pages sur : afficher frame fois jours
Lassé par la pub ? Créez un compte
Bah le truc, c'est que tu vides la table complètement !
C'est idiot...
Ce qu'il faudrait faire, c'est regardé s'il y a une ligne avec l'IP de la personne qui correspond à aujourd'hui, si c'est le cas, tu n'affiches pas ta frame, si ce n'est pas le cas, tu insères son IP et la date, et tu affiches la frame.
Tu as trois cas différents :
- l'IP et la date sont déjà dans la base de données = affiche pas de frame
- l'IP est dans la base, mais c'est pas la bonne date = insère une nouvelle ligne avec l'IP et la nouvelle date + affiche la frame
- l'IP n'est pas dans la base = insère une nouvelle ligne avec l'IP et la date + affiche la frame.
C'est idiot...
Ce qu'il faudrait faire, c'est regardé s'il y a une ligne avec l'IP de la personne qui correspond à aujourd'hui, si c'est le cas, tu n'affiches pas ta frame, si ce n'est pas le cas, tu insères son IP et la date, et tu affiches la frame.
Tu as trois cas différents :
- l'IP et la date sont déjà dans la base de données = affiche pas de frame
- l'IP est dans la base, mais c'est pas la bonne date = insère une nouvelle ligne avec l'IP et la nouvelle date + affiche la frame
- l'IP n'est pas dans la base = insère une nouvelle ligne avec l'IP et la date + affiche la frame.
Nan le champ 'Date' est un champ "VACHAR", mé c bien di avoir penssé.
OmaR_ShaRif quand tu dit : l'IP et la date sont déjà dans la base de données = affiche pas de frame.
Comment on peu faire cela? Enfaite il suffi de ne rien mettre?
Sinon j'ai changer le script je ne vide plus la table mais la met à jours et j'ai mit le champ 'Ip' en PRIMARY KEY :
<?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('ophosff362_site',$db) or die('Erreur de selection '.mysql_error());
define( _TABLE , 'Ip_Unique' );
$sql = "SELECT Ip,Date FROM " . _TABLE . "";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req)
if ($data['Ip'] != $Ip)
{
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_query("INSERT INTO " . _TABLE . " (Ip,Date) VALUES ('$Ip','$Date')'");
}
if ($data['Date'] != $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_query("UPDATE " . _TABLE . " (Date) VALUES ('$Date')'");
}
mysql_close();
?>
Mais maintenant l'iframe s'affiche tout le temp même si l'ip est dans la table, je ne comprend plus rien.
OmaR_ShaRif quand tu dit : l'IP et la date sont déjà dans la base de données = affiche pas de frame.
Comment on peu faire cela? Enfaite il suffi de ne rien mettre?
Sinon j'ai changer le script je ne vide plus la table mais la met à jours et j'ai mit le champ 'Ip' en PRIMARY KEY :
<?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('ophosff362_site',$db) or die('Erreur de selection '.mysql_error());
define( _TABLE , 'Ip_Unique' );
$sql = "SELECT Ip,Date FROM " . _TABLE . "";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req)
if ($data['Ip'] != $Ip)
{
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_query("INSERT INTO " . _TABLE . " (Ip,Date) VALUES ('$Ip','$Date')'");
}
if ($data['Date'] != $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_query("UPDATE " . _TABLE . " (Date) VALUES ('$Date')'");
}
mysql_close();
?>
Mais maintenant l'iframe s'affiche tout le temp même si l'ip est dans la table, je ne comprend plus rien.
C'est normal.
Tu ne comprends pas trop ce que tu fais à mon avis.
Avec ça, tu fais une requête qui te dit "sélectionne moi tout ce qui est dans la table Ip_Unique".
Avec ça, tu mets toutes les données du retour de la requête dans un tableau associatif.
donc, tu auras un tableau du genre :
$data[0]['Ip'] = la première IP de la table
$data[0]['Date'] = la première Date de la table
$data[1]['Ip'] = la 2nde IP
$data[1]['Date'] = la 2nde Date
etc...
Donc, quand tu fais un
Il faut modifier ta requête directement, comme ceci :
Ca va alors te sélectionner toutes les lignes qui ont cette IP.
Ensuite, il faudra que tu fasses soit une boucle sur toutes les dates associées à cette IP si tu as des lignes retournées, soit faire une deuxième requête pour voir si la date existe pour cette ip donnée.
Tu ne comprends pas trop ce que tu fais à mon avis.
$sql = "SELECT Ip,Date FROM " . _TABLE . "";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
Avec ça, tu fais une requête qui te dit "sélectionne moi tout ce qui est dans la table Ip_Unique".
$data = mysql_fetch_assoc($req)
Avec ça, tu mets toutes les données du retour de la requête dans un tableau associatif.
donc, tu auras un tableau du genre :
$data[0]['Ip'] = la première IP de la table
$data[0]['Date'] = la première Date de la table
$data[1]['Ip'] = la 2nde IP
$data[1]['Date'] = la 2nde Date
etc...
Donc, quand tu fais un
, ça va toujours être vrai... vu que $data['Ip'] est null...
if ($data['Ip'] != $Ip)
Il faut modifier ta requête directement, comme ceci :
$sql = 'SELECT Ip, Date FROM '._TABLE.' WHERE Ip = '.$Ip
Ca va alors te sélectionner toutes les lignes qui ont cette IP.
Ensuite, il faudra que tu fasses soit une boucle sur toutes les dates associées à cette IP si tu as des lignes retournées, soit faire une deuxième requête pour voir si la date existe pour cette ip donnée.
C'est vrai je ne c'est pa vrément ce que je fait, j'apprend sur des sites comme PHP Débutant.
Mais malgré ca c'est pas facile tous seul, votre aide m'est précieuse.
Je vous en remerci, je suis précé que ce script fonctionne parce qu'il commence vrément à m'énerver mais j'en est besoin. Cela évitera à mes visiteurs de ne pas avoir des pubs à chaque visite ce qui rend le chargement des pages très long.
J'ai un porblème avec le WHERE :
$sql = "SELECT * FROM "._TABLE." WHERE Ip=$Ip AND Date=$Date";
Il me renvoi l'erreur suivante :
Erreur SQL !
SELECT * FROM Ip_Unique WHERE Ip=***.***.157.50 AND Date=11/12/2006
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.157.50 AND Date=11/12/2006' at line 1
Quand je ne n'est que "WHERE Date=$Date" il n'y a pas d'erreur mais sa n'a pas d'intérêt.
Qu'est ce que cela?
Mais malgré ca c'est pas facile tous seul, votre aide m'est précieuse.
Je vous en remerci, je suis précé que ce script fonctionne parce qu'il commence vrément à m'énerver mais j'en est besoin. Cela évitera à mes visiteurs de ne pas avoir des pubs à chaque visite ce qui rend le chargement des pages très long.
J'ai un porblème avec le WHERE :
$sql = "SELECT * FROM "._TABLE." WHERE Ip=$Ip AND Date=$Date";
Il me renvoi l'erreur suivante :
Erreur SQL !
SELECT * FROM Ip_Unique WHERE Ip=***.***.157.50 AND Date=11/12/2006
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.157.50 AND Date=11/12/2006' at line 1
Quand je ne n'est que "WHERE Date=$Date" il n'y a pas d'erreur mais sa n'a pas d'intérêt.
Qu'est ce que cela?
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumButton type submit afficher une fois selectionne
- ForumAfficher une seule fois le contenu excel
- ForumAfficher texte frame javascript
- ForumC'est quoi un ip frame relay
- ForumScript afficher ip
- ForumIp 3600 clignote 7 fois
- ForumAfficher adresse ip de mes visiteurs
- ForumJavascript afficher plusieurs fois un div
- ForumAfficher qu'une seule fois php
- ForumAfficher ip utilisateurs sous reseau
- Voir plus