PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 22-11-2018 05:59:49

Fabdu68200
Membre
Inscription : 22-11-2018
Messages : 1

Envoyer mail si ecart de 2 mois

Bonjour, 

Je gère actuellement un genre de calendrier en php ou il a une colonne date et une colonne ligne.

J aimerais trouver un moyen pour qu'un mail ce génère si entre la date d aujourd hui et la date où dans la colonne ligne il n'y a pas eu d indiqué "2" depasse les 2 mois un mail d avertissement ce génère.

Pour l instant j en suis la et je suis loin du compte, j ai mis des echo pour voir la valeur que ca retourne.

Quelqu'un pourrait m'aider?

Merci


<?php

$link = mysqli_connect('','','','')  or die('Erreur de connexion '.mysqli_connect_error());

$requete = "select * from  WHERE Ligne IN ('3','1 - 3','3 - 1','2 - 3','3 - 2')";

$ressource = mysqli_query($link, $requete);

$nb = mysqli_num_rows($ressource);   

echo ".$nb.";

 

while ($donnees = mysqli_fetch_array($ressource) )

    {      

 

$h5 = $donnees['Date'];

$datetime = new Datetime($h5);

setlocale(LC_ALL, 'fr_FR.UTF8', 'fr_FR','fr','fr','fra','fr_FR@euro');

$Date10 = strftime("%A %d %B %Y" , $datetime->getTimestamp());

$Date11 = $Date10;

$Date11 = ucwords(strtolower($Date11));

 

        echo "<td> " . $Date11 . "</td>";

        echo "<td> " . $donnees['Ligne'] . "</td>";

}

     

$Datedujour = new DateTime();

$dernieredate= $Date11;

 // Ensuite on verifier qu'il n'y ai pas plus de 2mois de decallage

$h1=strtotime($dernieredate);

$h2=strtotime($Datedujour);

$dateHeure = $h2 - $h1;

$dates = $dateHeure/5184000;

 

echo ".$dates.";

?>

 

Hors ligne

#2 25-11-2018 20:13:03

levelKro
Membre
Inscription : 18-01-2015
Messages : 7

Re : Envoyer mail si ecart de 2 mois

Salut, premièrement, ajoute le vérif du 2 mois dans une tâche Cron, (1 fois par jour) comme ça tu va avoir un système automatique ou la visite de la page n'est pas requise.

Je refais en partie le segment de code intéressant;


$ha=strtotime($dernieredate); // J'évite d'utiliser des nombre dans les noms de variables)
$hb=time(); // Plus simple que ton code, as ta place je sauvegarderais toujours en temps unix, plus simple à travailler.
$day=(24*3600); //(3600 = 1hr, X 24 heures)
$expire=(60*$day); //(une journée X 60 jours)
$last=($hb-$ha); // Calcul du temps passé.
if($last>=$expire){
  // $last est la duré entre la date du registre et la date d'aujourd'hui, si il est plus grand que la durée de 2mois, ont travail la commande.
  // t'envoi le email, pense à ajouter une valeur pour indiquer qu'il a déjà été envoyé et éviter d'envoyer un courriel à chaque vérification
}
 

Hors ligne

Pied de page des forums