Pages :
(reprise du message précédent)

et donc dans ton retour ajax tu as quoi ? je parles pas de la page blanche je parle bien du résultat de ta fonction ajax dans le success.
Et faite, attention, tu fais de l'ajax sur un submit de formulaire.
Ton formulaire se soumet donc deux fois, un via l'ajax, l'autre vie le submit.
JENCAL a écrit :
et donc dans ton retour ajax tu as quoi ? je parles pas de la page blanche je parle bien du résultat de ta fonction ajax dans le success.


Heu là tu me parles en chinois. Ce n'est pas moi qui ai écrit ce script, déjà qu'en php je débute alors Ajax ... Je n'y comprends rien
Mon retour Ajax ? Déjà que pour PHP je débute, Ajax c'est du chinois !
Tout ce que je peux dire c'est que quand j'envoie le formulaire j'ai à l'écran :
Formulaire envoyé ! Merci
bill83 a écrit :


Heu là tu me parles en chinois. Ce n'est pas moi qui ai écrit ce script, déjà qu'en php je débute alors Ajax ... Je n'y comprends rien


Dommage, du coup le reste ça va être très compliqué alors Smiley smile

Pour résumé, ton formulaire à un input submit à l'intérieur et le submit permet d'envoyer les données au fichier PHP nomma dans "action" du form.

Mais d'un autre coté tu as de l'ajax (qui signifie en gros, que tu souhaite faire la même chose qu'un formulaire, mais sans recharger la page).

Du coup tu as bien deux envoie de form à ton traitement PHP, un par l'ajax et l'autre par le submit. cela n'a rien à voir avec ton problème principal, mais il faut choisir sinon il peut y avoir des conflits Smiley smile et des mauvaises compréhension.

Ensuite, si dans ton fichier qui est appellé dans le formulaire tu as

<?php
session_start();
echo '<pre>'; print_r($_POST); echo '</pre>';
exit('Jusqu\'ici tout va bien !!!');


Tu ne devrais voir rien d'autre, ou alors y'a un problème de cache / ou autre.

Le but de voir ce message est de s'assurer que tu cible bien le bon fichier, pour être sur que les traitement que tu souhaites vont être appelé une fois que tu auras enlever ces quelques lignes d'écho.
Modérateur
bill83 a écrit :


Heu là tu me parles en chinois. Ce n'est pas moi qui ai écrit ce script, déjà qu'en php je débute alors Ajax ... Je n'y comprends rien


Est-il vraiment indispensable de conserver ce script ?
Jean-Pierre-Bruneau a écrit :
et que tu sauvegardes bien en PHP sans BOM.

php oui, mais UTF8 sans BOM
Greg_Lumiere a écrit :


Est-il vraiment indispensable de conserver ce script ?


Je vais essayer de le supprimer pour voir ce qui se passe
Alors résultat du test( suppression du script) : Après l'envoi du formulaire les données contenues dans le formulaire s'affichent à l'écran comme ceci :

Array
(
Smiley name => Bill
Smiley surname => Test
Smiley email => bla-bla@gmail.com
Smiley phone => 06000000
Smiley rue => des bleuets
Smiley cplt =>
Smiley zip => 83560
Smiley ville => Rians
Smiley dpt => 83
Smiley pays => FRANCE
Smiley message => TEST
)

suivies de la phrase Jusqu'ici tout va bien !!!
Modifié par bill83 (13 Feb 2020 - 18:23)
Modérateur
Donc maintenant on sait que le fichier de traitement est bien chargé. Il ne vous reste plus qu'à tester en supprimant les 2 lignes de debug (echo et exit) puis à ajouter une redirection à la fin de l'exécution avec pourquoi pas un retour à l'utilisateur pour l'informer de l'envoi effectif de son courriel.
Greg_Lumiere a écrit :
Donc maintenant on sait que le fichier de traitement est bien chargé. Il ne vous reste plus qu'à tester en supprimant les 2 lignes de debug (echo et exit) puis à ajouter une redirection à la fin de l'exécution avec pourquoi pas un retour à l'utilisateur pour l'informer de l'envoi effectif de son courriel.



Merci, je teste ça cet après-midi et je vous fait un retour.
Modérateur
Jean-Pierre-Bruneau a écrit :

au cas ou tout simplement c'est vraiment ton code, le header est déjas envoyé au visiteur et session_start(); ne peux marcher,
En PHP tout doit être strictement collé en haut à gauche sans aucun espace invisible en bout de ligne ni retour à la ligne.

Navré mais je ne suis pas tout à fait d'accord avec vous car peu importe le nombre de ligne vierge située entre le tag d'ouverture du langage php et la première instruction car le moteur Zend s'occupe de concaténer les instructions.
En réalité ce bout de code est lu tel que
session_start();instruction2;instruction3;
Les sauts de lignes et espaces sont supprimés systématiquement.

Là où ça envoie les en-tête c'est lorsque l'on commence le fichier par un saut de ligne, juste avant le tag d'ouverture. Ainsi ceci est à proscrire:



<?php
...

Modifié par Greg_Lumiere (25 Feb 2020 - 15:36)
Désolé j'avais oublié de répondre depuis l'autre jour. Cela ne fonctionne pas avec les modifications faites, j'ai toujours la phrase message envoyé qui s'affiche et toujours aucun mail.
Je vais essayer de voir si avec les conseils de Jean-Pierre-Bruneau j'ai un résultat.
Modifié par bill83 (25 Feb 2020 - 15:49)
Ca ne marche pas. Je me suis lancé dans un truc au dessus de mes maigres connaissances !
Je crois que je vais tout recommencer depuis le début en essayant juste de faire un formulaire html repris par un mail.php sans script. Merci à tous pour vos conseils.
Pages :