Ou est l'erreur ?
Résolu/Fermé
Arthur
-
Modifié par baladur13 le 20/10/2016 à 09:41
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 20 oct. 2016 à 10:54
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 20 oct. 2016 à 10:54
A voir également:
- Ou est l'erreur ?
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Une erreur inattendue s'est produite instagram ✓ - Forum Instagram
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
4 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
20 oct. 2016 à 10:32
20 oct. 2016 à 10:32
Concnernant ton souci d'envoie de mail.. peux tu tester ce code (et uniquement ça !) :
Ensuite, concernant le reste de ton code... plusieurs choses ne vont pas !
1 - Tu as visiblement des dates dans ta BDD .... et tu les a mis dans des varchar en format français... hors il existe un format spécial pour les dates dans les bdd ... les champs de type DATE. (qui sont au format Y-m-d )
1 bis ) tu as nommé un de tes champs "date" .... c'est un mot clé réservé. Evite !! Renomme le plutôt date_anniv par exemple
2 - Tu utilises l'ancienne extension mysql .. considérée comme obsolète ! . Je t'invite vivement à passer à mysqli ou (je préfère...) PDO.
voir ici : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
3 - Une fois que tu auras procédé aux modif (du point °1 et 1 bis sur le champ date...)
tu pourras faire une requête ne remontant que les anniv du jour.
<?php //affichage des erreurs PHP error_reporting(E_ALL); require_once 'config.php'; //envoi du Mail $to = 'personne@example.com'; // a changer pour tester $subject = 'test envoie de mail'; $message = 'Bonjour !'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)){ echo "Mail envoyé"; }else{ echo "Erreur lors de l'envoie du mail"; }
Ensuite, concernant le reste de ton code... plusieurs choses ne vont pas !
1 - Tu as visiblement des dates dans ta BDD .... et tu les a mis dans des varchar en format français... hors il existe un format spécial pour les dates dans les bdd ... les champs de type DATE. (qui sont au format Y-m-d )
1 bis ) tu as nommé un de tes champs "date" .... c'est un mot clé réservé. Evite !! Renomme le plutôt date_anniv par exemple
2 - Tu utilises l'ancienne extension mysql .. considérée comme obsolète ! . Je t'invite vivement à passer à mysqli ou (je préfère...) PDO.
voir ici : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
3 - Une fois que tu auras procédé aux modif (du point °1 et 1 bis sur le champ date...)
tu pourras faire une requête ne remontant que les anniv du jour.
SELECT * FROM users WHERE date_anniv = DATE_FORMAT(now(),'%Y-%m-%d')
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
19 oct. 2016 à 20:20
19 oct. 2016 à 20:20
Bonjour
Tu es en local ou sur un serveur ?
Tu es en local ou sur un serveur ?
bonsoir,
Je suis sur un serveur,
Il prend directement les informations en bdd, ce qui est plus facile pour faire les tests etant donné que j'ai plusieurs anniversaire ce mois ci, et j'aimerais faire une tache cron sur la page afin d'automatiser la tache. Je ne comprends pas trop mon erreur. Merci de ta réponse
Je suis sur un serveur,
Il prend directement les informations en bdd, ce qui est plus facile pour faire les tests etant donné que j'ai plusieurs anniversaire ce mois ci, et j'aimerais faire une tache cron sur la page afin d'automatiser la tache. Je ne comprends pas trop mon erreur. Merci de ta réponse
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
19 oct. 2016 à 20:32
19 oct. 2016 à 20:32
Tu ne te sers pas de ta requete ?
As tu fais un echo de tes variables pour voir si elles sont bonnes ?
As tu fais un echo de tes variables pour voir si elles sont bonnes ?
et si je met ceci
cela ne prend pas les email, et affiche juste l'echo.
<? include ('config.php')?> <?php $sql = mysql_query("SELECT * FROM users"); while($annif = mysql_fetch_array($sql)){ if (date("d/m/Y") == $annif['date'] );{ ?> <? } } $e_mail = $annif['email']; //prend l'email de la table //Contenu du mail $contenu = ''; $contenu .= '': '; $contenu .= ''; // envoi du mail HTML $from = "From: <***@***>\nMime-Version:"; $from .= " 1.0\nContent-Type: text/html; charset=utf8"; // envoie du mail mail($e_mail,$nom,$contenu,$from); echo'N° '.$compteur.' - '.$e_mail.' ; $compteur++; // ajoute 1 à la variale du compteur // ' // fin du while ?>
cela ne prend pas les email, et affiche juste l'echo.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
20 oct. 2016 à 10:37
La requête SQL devient alors :
ou tu peux aussi faire :
20 oct. 2016 à 10:53
20 oct. 2016 à 10:54
Celui du mail ?
C'est juste pour un test ... il faudra ensuite le remettre dans la boucle issues de ta requête SQL. (une fois que tu auras tenu compte des mes remarques précédentes)