Cette fois si je n'est pas très bien compris j'ai ça qui s'affiche array(3) { ["name"]=> string(16) "Corentin Bringer" ["email"]=> string(27) "corentinbringer@hotmail.com" ["phone"]=> string(9) "652860055" }
qd tu fais un var_dump($var), cela t'affiche le contenu de la variable.
Merci de vos réponses mais là vous m'avez perdu..; Je ne suis pas très doué en PHP et les variables ce qui est utilisé toujours dans ce langage je galère beaucoup trop et je en comprend jamais comment les assigner j'ai essayer dans ce code mais apparemment rien ne marche. Je ne pensais pas le demandé car j'essaye de le comprendre mais y'aurais une possibilité de me corriger toute mes erreurs pour ensuite m'expliquer lesquels et pourquoi une fois que tous marche ? :/
c'est normal, c'est le message que j'ai ajouté en bas de ton code.
le problème ne vient pas de la façon dont tu veux envoyer le mail, mais de la façon dont les données que tu entres dans le form sont envoyées au fichier mail.php.
je ne comprend vraiment pas pourquoi cela ne fonctionne pas, tout semble correct au niveau du form ainsi que de mail.php.
en tout cas chez moi ça marche avec un simple copier coller de ce que tu as mis.
Est-ce que tu peux mettre le fichier complet qui contient ton form ? ce qu'il y a avant et ce qu'il y a après
Mais après c'est un avis personnel mais je me demande si ça vient pas de Yahoo du coup que ça ne passe pas ... Car je sais qu'avec la boite mail pro sur roundcube ça marche, et gmail aussi
if(isset($_POST['action'])){ //si la variable $_post['action'] existe faire.
// envoyer un mail
} else echo 'erreur $_POST[action] n\'existe pas // sinon ecrire : erreur la variable $_POST ...
comme pour une raison que j'ignore $_POST['action'] n existe pas, ça n'envoie pas le mail.
maintenant enlève la condition "si" et le "sinon". Que reste t'il ? Envoyer un mail.
En faisant comme tu viens de me dire ça recommence aucune erreur de visible mais rien qui arrive. Il faudrait pas que je me pose la question est-ce de la faute de Yahoo ?
Es-tu bien redirigé sur index.php quand tu enlèves la condition principale et que tu soumets le formulaire au moins ? Pas d'erreurs dans le fichier de log ?
Je pense que c'est un de tes scripts JavaScript qui modifit le DOM et change les propriétés de certaines de tes balises (modernizer/bootstrap ?), si tu fais clic droit et "inspecter l'element" sur un les inputs de ton formulaire sur Chrome (ou indirectement en ouvrant les outils de dev sur ton navigateur) ton formulaire est t'il toujours bon dans le code affiché (y'a t'il toujours les bons attributs name="" au bon endroit etc)?
Note: Tu as laissé les identifiants de connexion à ta BDD dans le fichier au dessus, édites ton message pour templacer par des 'xxxxx'.
- Edité par Sombrelune 25 octobre 2016 à 10:47:24
- Activer les erreurs : PHP - PDO-MYSQLI - ¯\_ツ_/¯ - Documentations :PHP - MySQL -
Non la redirection sur l'index ne marche pas, et les name dans inspecter sont bonnes. Je devrais aller voir quoi dans le Java ? Et pourquoi aurait-il un effet sur le formulaire ?
Es-tu bien redirigé sur index.php quand tu enlèves la condition principale et que tu soumets le formulaire au moins ? Pas d'erreurs dans le fichier de log ?
Je pense que c'est un de tes scripts JavaScript qui modifit le DOM et change les propriétés de certaines de tes balises (modernizer/bootstrap ?), si tu fais clic droit et "inspecter l'element" sur un les inputs de ton formulaire sur Chrome (ou indirectement en ouvrant les outils de dev sur ton navigateur) ton formulaire est t'il toujours bon dans le code affiché (y'a t'il toujours les bons attributs name="" au bon endroit etc)?
C'est ce que je me suis dit, et d'ailleurs ça ne peut être que ça : un copier coller de son code chez moi fonctionne parfaitement au niveau du $_POST.
ps : bien vu pour les identifiants j'avais pas fait attention.
Si tu n'es pas redirigé c'est que le mail n'a pas pu être envoyé pour une raison ou une autre (username/password invalide?), tu devrais avoir un message d'erreur par contre si tu passes dans le IF et pas dans le ELSE.
Les scripts JavaScript comme modernizer ou bootstrap peuvent modifier la structure de ton HTML pour afficher les choses différemment en HTML/CSS donc ils peuvent potentiellement casser la syntaxe du formulaire même si c'est peu probable.
Essayes d'aller simplement sur la page mail.php en modifiant le code pour faire un test basique :
T'as un compte email business Yahoo ? Apparemment les comptes gratuits Yahoo ne proposent pas de services SMTP/POP (Je sais pas si ça a changé ou pas depuis le temps).
Fais le test avec un compte GMail si tu en as un, en mettant à jour tout ce qui va bien (host, port, id/pw).
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "tls"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 587; // set the SMTP port for the GMAIL server
$mail->Username = "yourusername@gmail.com"; // GMAIL username
$mail->Password = "yourpassword"; // GMAIL password
- Edité par Sombrelune 25 octobre 2016 à 12:09:39
- Activer les erreurs : PHP - PDO-MYSQLI - ¯\_ツ_/¯ - Documentations :PHP - MySQL -
Je reçois bien le mail sur cette adresse avec de marquer "Mon message". Cependant avec ce code, plus rien n'arrive donc je pense qu'il y à un problème avec le if. Qu'en pensez-vous ?
Ok, bon c'est déjà ça de réglé, au pire tu poura sans doute rediriger les mails de ton hebergeur vers ton adresse yahoo, ou configurer ton client mail sur ton ordinateur pour récupérer les mails de ton compte hebergeur.
On en revient donc à l'histoire des attributs name qui disparaissent par magie!
Peux tu faire un clique droit > "inspecter l'élément" sur ton navigateur sur le textarea de ton formulaire (et remonter jusqu'a la balise <from> dans le code) et copier/coller le code HTML correspondant ici pour qu'on voit ce en quoi il a été changé? Tu peux faire clique droit > "copier" > "copier l'element" sur la balise séléctionnée dans les outils de developement sous Chrome.
- Edité par Sombrelune 25 octobre 2016 à 13:29:21
- Activer les erreurs : PHP - PDO-MYSQLI - ¯\_ツ_/¯ - Documentations :PHP - MySQL -
Je teste tout directement en ligne et c'est sur je modifie les bons fichier j'en ai qu'un de toute façon .. Et comment je peut trouver le quel des fichiers me fait ça ?
Bah tu peux toujours essayer d'enlever tous les fichiers JS puis de les rajouter un par un et de tester si ça marche à chaque fois pour trouver celui qui fait planter le tout.
Pour débuger tu peux mettre dans le fichier mail.php ligne 2:
Ca affichera OK ou FAIL selon le cas, et n'executera pas la suite du code. Penses bien à faire F5 (ou ctrl+R) sur la page du formulaire pour recharger les modifications à chaque fois.
- Edité par Sombrelune 25 octobre 2016 à 18:23:33
- Activer les erreurs : PHP - PDO-MYSQLI - ¯\_ツ_/¯ - Documentations :PHP - MySQL -
Dans le js j'ai trouver ça en rapport avec le formulaire
$("form.contact-comments").on("submit", function (e) {
e.preventDefault();
var sender = $("#email").val();
var name = $("#name").val();
var subject = $("#subject").val();
var message = $("#comments").val();
var phone = $("#phone").val();
var target = $(this).attr("action");
var that = this;
$.post(target, {name:name,subject:subject,email:sender,phone:phone,comments:message},function(data){
if($(that).find(".mailstatus").length==0){
$(that).append($("<div/>").addClass("mailstatus"));
}
$(".mailstatus").html(data).show();
setTimeout(function(){
$(".mailstatus").empty().hide();
},5000)
});
});
Fait un ctrl+F5 pour vider le cache pour que la modification du ficher JS soit bien prise en compte, sinon les fichiers JS externes sont mis en cache par le navigateur et tu ne vois pas la mise à jour tout de suite. Tu peux aussi ajouter un parametre dans l'URL du fichier JS en rajoutant un numéro de version pour dire à ton navigateur que le fichier est différent (donc le fichier sera rechargé à chaque fois que le numéro de version changera pour tous les visiteurs, ce qui est plus pratique pour faire des mises à jour):
Et bien qu'est-ce que je dois faire pour rendre fonctionnel PHPMailer ? Je le supprimer ? Ensuite que faire d'autre ? Je vide le cache du navigateur et refait un test ?
Une fois que l'on complète et que l'on choisi la photo, je voudrais qu'elle aille dans un fichier précis puis se rajoute sur l'index dans la partie portfolio
Que tout se rajoute au fur et à mesure en haut de liste ( du plus récent au moins récent )
Pour ton histoire d'upload d'image il te faut une table dans une base de données pour au minimum stoquer l'id de l'utilisateur, le chemin vers l'image et la date d'upload par exemple.
Ensuite tu fais ton formulaire d'upload en HTML (il ne faut pas oublier l'attribut enctype="multipart/form-data" de la balise <form> pour pouvoir upload des fichiers).
Et sur la page de reception en PHP : 1) Tu vérifis que le formulaire existe, 2) Tu verifis que l'image est au bon format etc. 3) Tu upload l'image avec un nom unique dans un dossier de ton choix (tu peux utiliser la fonction uniqid() pour avoir un nom/id unique), 4) Si tout c'est bien passé tu fais un INSERT dans ta table avec les données qui vont bien, tu peux utiliser la fonction NOW() en SQL pour remplire la date d'upload.
Et sur la page d'affichage des images, tu fais une requete sur ta table d'image avec un WHERE user_id = id de l'utilisateur courant, tu ORDER BY upload_date, et c'est fini, tu fais une boucle pour lister les résultats et t'as plus qu'a remplire le chemin vers les images dans les balises <img> pour les afficher.
- Edité par Sombrelune 25 octobre 2016 à 18:05:04
- Activer les erreurs : PHP - PDO-MYSQLI - ¯\_ツ_/¯ - Documentations :PHP - MySQL -
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mais après c'est un avis personnel mais je me demande si ça vient pas de Yahoo du coup que ça ne passe pas ... Car je sais qu'avec la boite mail pro sur roundcube ça marche, et gmail aussi