Script imprimer pag web qu une seule fois

Résolu
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   -  
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous,

Voila je recherhce un script qui permet d imprimer une offre promotionelle qu une seule fois par adresse IP

quelqu un aurait il une solution?

merci de votre aide
A voir également:

45 réponses

audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   9
 
Merci de ta reponse

Ma table s apelle date

Mais cela ne marche pas

Le mail s envoi automatiquement c est bien ca je n es rien besoin de faire?

voici mon code :

<?
require("conf.php3");
// CONNEXION MYSQL
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}

// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from annuweb_membre where id=\"$id\"",$db_link) or die(mysql_error());

// SI L'ID N'EXISTE PAS
if(mysql_num_rows($requete)==0)
{
// REDIRECTION PAGE ERREUR
header("Location:$url_erreur");
exit;
}

// LIGNE FACULTATIVE : RECUPERATION DU PSEUDO
$pseudo_membre=mysql_result($requete,0,"nom");
$email_membre=mysql_result($requete,0,"email");
$adresse=mysql_result($requete,0,"adresse");
$ville_membre=mysql_result($requete,0,"ville");
$prenom_membre=mysql_result($requete,0,"prenom");
$postal=mysql_result($requete,0,"postal");
$id_membre=mysql_result($requete,0,"id");
$passe_membre=mysql_result($requete,0,"passe");
$tel_membre=mysql_result($requete,0,"tel");
$portable=mysql_result($requete,0,"portable");
$date=mysql_result($requete,0,"date");
$offre=mysql_result($requete,0,"offre");


// DECONNEXION MYSQL
mysql_close($db_link);

//demarage anniversaire

$date = $data['date'];
$date_actuel = date("Y-m-d H:i:s");

//On compare
if($anniversaire == $date_actuel)
{//Envoyer un mail
$headers ='From: "nom"<adresse@fai.fr>'."\n";
$headers .='Reply-To: adresse_de_reponse@fai.fr'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

$message ='<html><head><title>Joyeux anniversaire</title></head><body>Un message de test</body></html>';

if(mail($email_membre, 'Sujet', $message, $headers))
{
echo 'Le message a été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
?>

Merci de ton aide
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Si tu fais un simple:
echo $date;

ça te donne quoi ?

Tu peux sinon calcule le temps entre deux date et si =0 le mail est envoyé. Pour ça il faut utiliser mktime(). J'ai trouvé un tuto qui pourrai t'aider.
https://php.developpez.com/faq/?page=dates#date_duree
0
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   9
 
merci da ta reponse

je viens de trouver

j utilise ca

est ce bien?

<html>
<head>
<META NAME="AUTHOR" CONTENT="Denis Blomme - DB77">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<style>
td {font-family:Verdana,Arial;font-size:10px;}
</style>
</head>
<body>
<table width=208 height="142" cellpadding=0 cellspacing=0>
<?php

// Table des libellés des mois
$libmois=array("","janvier","février","mars","avril","mai","juin",
"juillet","août","septembre","octobre","novembre","décembre");
// On se connecte
$host = "localhost"; // voir hébergeur
$user = "---"; // vide ou "root" en local
$pass = "---"; // vide en local
$bdd = "---"; // nom de la BD
// connexion
@mysql_connect($host,$user,$pass)
or die("Impossible de se connecter au host");
@mysql_select_db("$bdd")
or die("Impossible de se connecter à la base");
$afficher="Bon anniversaire";
// on sélectionne ceux dont c'est le jour anniversaire
$sql="select * from annuweb_membre where month(date)=month(CURRENT_TIMESTAMP)
and dayofmonth(date)=dayofmonth(CURRENT_TIMESTAMP)";
$result=mysql_query($sql)
or die("Impossible de lancer la requête ".$sql);
if(mysql_numrows($result)>0) {


// On met à zéro le champ "envoye" pour tout ceux dont ce n'est pas la date anniversaire
$sql="update annuweb_membre set envoye=0 where month(date)<>month(CURRENT_TIMESTAMP)
or dayofmonth(date)<>dayofmonth(CURRENT_TIMESTAMP)";
mysql_query($sql)
or die("Impossible de lancer la requête ".$sql);
}else{
$sql="select * from annuweb_membre where envoye=1";
$result=mysql_query($sql)
or die("Impossible de lancer la requête ".$sql);
$afficher="Précédent(s)";
}



// On prépare l'entête pour l'envoi du mél

$tete = "From: Pico-Bello <picobello@free.fr>\n"; // mettez vos infos ici
$tete .= "Reply-To: picobello@free.fr\n"; // et également ici
$tete .= "Content-Type: text/html; charset=iso-8859-1\n";
// et le corps du message

while ($val = mysql_fetch_array($result))
{
$corps="<HTML><BODY><FONT FACE='Arial, Verdana' SIZE=2>";
$corps.="Bonjour ".$val["prenom"]." ".$val["nom"].". Nous sommes heureux de vous souhaiter un tres bon anniversaire pour vos ".$age." ans! vous pouvez imprimer votre cadeaux d'anniversaire ici<a href='http://picobello.free.fr/membres1/membres.php3?id=".$val["id"]."'>Cliquez ici</a>";
$corps.="</BODY></HTML>";
echo "<tr><td><img src='images/".$val['photo']."'></td>";
echo "<td>".$afficher."<br>".$val['prenom'];
$d1 = $val["date"];
list($annee,$mois,$jour) = explode("-",$d1);

//à partir de la date de naissance, retourne l'âge dans la variable $age
// date de naissance
$ddn = "$jour/$mois/$annee";
// enregistrement de la date du jour
$DATEDUJOUR = date("Y-m-d"); $DATEFRAN = date("d/m/Y");
// calcul de mon age d'après la date de naissance $ddn
$annais = substr("$ddn", 6, 4);
$anjour = substr("$DATEFRAN", 6, 4);
$moisnais = substr("$ddn", 3, 2);
$moisjour = substr("$DATEFRAN", 3, 2);
$journais = substr("$ddn", 0, 2); $jourjour = substr("$DATEFRAN", 0, 2);
$age = $anjour-$annais;
if ($moisjour<$moisnais){$age=$age-1;}
if ($jourjour<$journais && $moisjour==$moisnais){$age=$age-1;}
echo " (".$jour."/".$mois."/".$annee.") <br> ".$val['prenom']." à ".$age." ans</td></tr>";
//fin de script
if($val["envoye"]==0){ // Si on ne lui a pas encore envoyé de mél
mail($val["prenom"]." ".$val["nom"]." <".$val["email"].">","Grand jour",$corps,$tete);
}
}

// Modification de la colonne anni en on
$sql ='UPDATE annuweb_membre SET anni="ON" WHERE month(date)=month(CURRENT_TIMESTAMP)
and dayofmonth(date)=dayofmonth(CURRENT_TIMESTAMP)';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on indique qu'ils ont reçu un mél en mettant à 1 le champ "envoye"
$sql="update annuweb_membre set envoye=1 where month(date)=month(CURRENT_TIMESTAMP)
and dayofmonth(date)=dayofmonth(CURRENT_TIMESTAMP)";
mysql_query($sql);

// on traite les suivants dont ce n'est pas le jour anniversaire
$sql="select * from annuweb_membre where ((month(date)*100)+dayofmonth(date))>
((month(CURRENT_TIMESTAMP)*100)+dayofmonth(CURRENT_TIMESTAMP))
order by month(date), dayofmonth(date)";
$result=mysql_query($sql)
or die("Impossible de lancer la requête ".$sql);
echo "<tr><td colspan=2><b>Anniversaires à venir ;)</b></td></tr>";
$nbr=0;
while ($val = mysql_fetch_array($result)and($nbr<5))
{ $d1 = $val["date"];
list($annee,$mois,$jour) = explode("-",$d1);
// Et afficher ce timestamp au format français ;)
echo "<tr>";
echo "<td>".$jour." ".$libmois[(int)$mois]."</td>";
echo "<td>".$val['nom']." ".$val['prenom']."</td>";
echo "</tr>";
$nbr++;
}
if($nbr<5){ // Si on n'a pas le nombre alors on repart à partir du 1er janvier ;)
$sql="select * from annuweb_membre where ((month(date)*100)+dayofmonth(date))>=101
order by month(date), dayofmonth(date)";
$result=mysql_query($sql)
or die("Impossible de lancer la requête ".$sql);
while ($val = mysql_fetch_array($result)and($nbr<5))
{
$d1 = $val["date"];
list($annee,$mois,$jour) = explode("-",$d1);
// Et afficher ce timestamp au format français ;)
echo "<tr>";
echo "<td>".$jour." ".$libmois[(int)$mois]."</td>";
echo "<td>".$val['nom']." ".$val['prenom']."</td>";
echo "</tr>";
$nbr++;
}
}
mysql_close();
?>
</table>
</body>
</html>

merci de ton aide
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
J'avoue que ça me semble un peu compliqué. Mais si ça marche, tant mieux. C'est ce qu'on demande avant tout en fait. Si c'est pas déjà fait un test et vois ce que ça donne.
0
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   9
 
Non le mail dois etre envoyé

Je vais mette cette page a l'acceuil du site car chaque jour au moin 1visiteurs se rendra sur le sites normalement donc l envoi se fera tu pense que c es bon?

Merci de ton aide encore
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Oui à l'accueil ça peut être une idée même s'il n'y a aucune garanti qu'il soit envoyé le jours même, ça augmente les chances en tout cas.
0
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   9
 
oui faut que le site soit visiter

On va en arreter la lol

Je te remerci pour tous ton aide sans toi je n aurais pas réussis

Merci a bientot
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Ok ben content d'avoir pu te rendre service.
Si t'a besoin hésite pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
audi68 Messages postés 571 Date d'inscription   Statut Membre Dernière intervention   9
 
ok pas de probleme

La j ai mis un autre sujet modification de phpnewsletter

Je veut modifier la newsletter du site en rajoutant le nom et prenom de la personne mais je sais pas trop dans quel fichier toucher lol
0