Réception des données PHP avec certains navigateurs
Fermé
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
-
19 juin 2013 à 16:00
agencesyscom Messages postés 20 Date d'inscription mercredi 19 juin 2013 Statut Membre Dernière intervention 25 mars 2014 - 27 juin 2013 à 14:44
agencesyscom Messages postés 20 Date d'inscription mercredi 19 juin 2013 Statut Membre Dernière intervention 25 mars 2014 - 27 juin 2013 à 14:44
A voir également:
- Réception des données PHP avec certains navigateurs
- Accusé de reception gmail - Guide
- Problème de réception tv pas de signal aujourd' hui - Guide
- Supprimer les données de navigation - Guide
- Accusé de reception outlook - Guide
- Easy php - Télécharger - Divers Web & Internet
18 réponses
gohlink
Messages postés
50
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
16 décembre 2015
12
19 juin 2013 à 16:08
19 juin 2013 à 16:08
Bonjour,
Il ne devrait pas y avoir de différence entre Safari et Chrome lors de l'exécution du Javascript. Si l'utilisateur reçoit bien une confirmation que l'envoi a été faite, il faut peut être vérifier au niveau des spams de la boite de réception.
Sinon, pour vérifier s'il y a bien une erreur lié au javascript sous Chrome, il suffit d'activer les Outils de développement > Onglet Console. Si une erreur est détectée elle y sera listée.
Pour les activer : Ctrl + Maj + i sur Windows / Ctrl + Alt + i sur Mac
Il ne devrait pas y avoir de différence entre Safari et Chrome lors de l'exécution du Javascript. Si l'utilisateur reçoit bien une confirmation que l'envoi a été faite, il faut peut être vérifier au niveau des spams de la boite de réception.
Sinon, pour vérifier s'il y a bien une erreur lié au javascript sous Chrome, il suffit d'activer les Outils de développement > Onglet Console. Si une erreur est détectée elle y sera listée.
Pour les activer : Ctrl + Maj + i sur Windows / Ctrl + Alt + i sur Mac
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
19 juin 2013 à 16:10
19 juin 2013 à 16:10
Salut,
il nous manque un élément pour te répondre, et c'est lui à mon avis qui cause un soucis : le contenu de la fonction javascript verif_formulaire
le code php sera toujours interprété de la même manière, quelle que soit le navigateur étant donné que le code php est exécuté côté serveur, et que lui ne change pas.
Donc le soucis se situe à mon avis du côté du javascript.
Tu peux ouvrir la console javascript sur chrome pour voir s'il y a un problème (ctrl+shift+i) et essayer d'envoyer un message.
il nous manque un élément pour te répondre, et c'est lui à mon avis qui cause un soucis : le contenu de la fonction javascript verif_formulaire
le code php sera toujours interprété de la même manière, quelle que soit le navigateur étant donné que le code php est exécuté côté serveur, et que lui ne change pas.
Donc le soucis se situe à mon avis du côté du javascript.
Tu peux ouvrir la console javascript sur chrome pour voir s'il y a un problème (ctrl+shift+i) et essayer d'envoyer un message.
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
19 juin 2013 à 18:52
19 juin 2013 à 18:52
voici le javascript de vérification du formulaire intégré dans l'entête de la page Html
<script type="text/javascript">
<!--
function verif_formulaire()
{
if(document.formulaire.nom.value == "") {
alert("Veuillez entrer votre nom!");
document.formulaire.nom.focus();
return false;
}
if(document.formulaire.prenom.value == "") {
alert("Veuillez entrer votre prénom!");
document.formulaire.prenom.focus();
return false;
}
if(document.formulaire.email.value == "") {
alert("Veuillez entrer votre adresse électronique!");
document.formulaire.email.focus();
return false;
}
if(document.formulaire.email.value.indexOf('@') == -1) {
alert("Ce n'est pas une adresse électronique!");
document.formulaire.email.focus();
return false;
}
if(document.formulaire.tel.value == "") {
alert("Veuillez entrer votre téléphone!");
document.formulaire.tel.focus();
return false;
}
if(document.formulaire.message.value == "") {
alert("Veuillez entrer votre message!");
document.formulaire.message.focus();
return false;
}
}
//-->
</script>
<script type="text/javascript">
<!--
function verif_formulaire()
{
if(document.formulaire.nom.value == "") {
alert("Veuillez entrer votre nom!");
document.formulaire.nom.focus();
return false;
}
if(document.formulaire.prenom.value == "") {
alert("Veuillez entrer votre prénom!");
document.formulaire.prenom.focus();
return false;
}
if(document.formulaire.email.value == "") {
alert("Veuillez entrer votre adresse électronique!");
document.formulaire.email.focus();
return false;
}
if(document.formulaire.email.value.indexOf('@') == -1) {
alert("Ce n'est pas une adresse électronique!");
document.formulaire.email.focus();
return false;
}
if(document.formulaire.tel.value == "") {
alert("Veuillez entrer votre téléphone!");
document.formulaire.tel.focus();
return false;
}
if(document.formulaire.message.value == "") {
alert("Veuillez entrer votre message!");
document.formulaire.message.focus();
return false;
}
}
//-->
</script>
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
19 juin 2013 à 18:58
19 juin 2013 à 18:58
Aucune erreur n'est indiquée dans l'onglet Console, celui-ci est vide (que ce soit sur la page Html que la page PHP)
Merci de votre aide
Bonne soirée
Merci de votre aide
Bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
20 juin 2013 à 08:42
20 juin 2013 à 08:42
Il ne manquerait pas un return true; avant la dernière accolade fermante de ta fonction ?
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
20 juin 2013 à 14:53
20 juin 2013 à 14:53
Non, visiblement il ne manque rien.
Même en retirant le javascript de vérification, le résultat est le même. Franchement, je cale un peu...
Même en retirant le javascript de vérification, le résultat est le même. Franchement, je cale un peu...
Utilisateur anonyme
20 juin 2013 à 15:12
20 juin 2013 à 15:12
Bonjour
Juste une idée en passant par là : ça ne pourrait pas venir d'ailleurs que du <form> lui même ? Par exemple une balise mal formée avant, ou qui n'est jamais refermée... et qui fait que formulaire est plus ou moins bien pris en compte selon les navigateurs ?
Et quand tu dis que tout est normal pour l'internaute, est-ce que ça veut dire qu'il voit 'VOTRE MESSAGE A BIEN ETE ENVOYE' ?
Juste une idée en passant par là : ça ne pourrait pas venir d'ailleurs que du <form> lui même ? Par exemple une balise mal formée avant, ou qui n'est jamais refermée... et qui fait que formulaire est plus ou moins bien pris en compte selon les navigateurs ?
Et quand tu dis que tout est normal pour l'internaute, est-ce que ça veut dire qu'il voit 'VOTRE MESSAGE A BIEN ETE ENVOYE' ?
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
20 juin 2013 à 15:14
20 juin 2013 à 15:14
Exact, il voit bien le message "Votre message a bien été envoyé". Concernant la balise, je ne vois pas trop...
Merci
Merci
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
20 juin 2013 à 15:43
20 juin 2013 à 15:43
si l'internaute voit le message 'VOTRE MESSAGE A BIEN ETE ENVOYE'
c'est que le formulaire est bien envoyé au serveur et que le script contact.php d'envoi du mail s'exécute donc il ne faut pas chercher côté fonction javascript elle n'est plus concerné à ce moment là
essayes de mettre un echo pour voir le contenu du mail qui devrait être envoyé:
c'est que le formulaire est bien envoyé au serveur et que le script contact.php d'envoi du mail s'exécute donc il ne faut pas chercher côté fonction javascript elle n'est plus concerné à ce moment là
essayes de mettre un echo pour voir le contenu du mail qui devrait être envoyé:
<?php $nom=$_POST['nom']; $prenom=$_POST['prenom']; $organisme=$_POST['organisme']; $email=$_POST['email']; $tel=$_POST['tel']; $message=$_POST['message']; $headers ='From: "Site Internet"<'.$email.'>'."\n"; $headers .='Return-Path: moi@gmail.com'."\n"; $headers .='Cc: < moi@wanadoo.fr>'."\n"; $headers .='Reply-To: <'.$email.'>'."\n"; $headers .='Content-Type: text/plain; charset=utf-8'."\n"; $headers .='Content-Transfer-Encoding: 8bit'; $sujet="EXPOSITION - CONTACT"; $msg="UN CONTACT EST ARRIVE \n Nom : $nom \n Prenom : $prenom \n Organisme : $organisme \n Email : $email \n Telephone : $tel \n Message : $message"; //TEST les sauts de lignes \n ne seront pas pris en compte mais ça te donnera au moins les valeurs echo "header:".$headers; echo "<br />Message:<br />".$msg; /// if(mail('moi@gmail.com', $sujet, $msg, $headers)) { echo 'VOTRE MESSAGE A BIEN ETE ENVOYE'; } else { echo 'ECHEC LORS DE L ENVOI DE VOTRE MESSAGE'; }
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
23 juin 2013 à 18:19
23 juin 2013 à 18:19
Bonjour Alain_42, pour faire suite à ton aide, voici le résultat en ajoutant tes lignes de code :
header:From: "Site 4 saisons au PNFO" Return-Path: sitesyscom10@gmail.com Cc: Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit
Message:
UN CONTACT EST ARRIVE Nom : Dupont Prenom : Gérard Organisme : Paris Email : moi@wanadoo.fr Telephone : 0326565898 Message : essai de message avec ChromeVOTRE MESSAGE A BIEN ETE ENVOYE
Tout à l'air normal, mais je ne reçois toujours pas le message dans ma boîte mail...
Merci de ton aide
header:From: "Site 4 saisons au PNFO" Return-Path: sitesyscom10@gmail.com Cc: Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit
Message:
UN CONTACT EST ARRIVE Nom : Dupont Prenom : Gérard Organisme : Paris Email : moi@wanadoo.fr Telephone : 0326565898 Message : essai de message avec ChromeVOTRE MESSAGE A BIEN ETE ENVOYE
Tout à l'air normal, mais je ne reçois toujours pas le message dans ma boîte mail...
Merci de ton aide
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
24 juin 2013 à 16:02
24 juin 2013 à 16:02
oui mais je pense qu'il faudrait que tu modifies le FROM
avec comme valeur pour $ton_email, le mail connu de ton hebergeur
par ex webmaster@ton_site.com
$headers ='From: "Site Internet"<'.$ton_email.'>'."\n";
avec comme valeur pour $ton_email, le mail connu de ton hebergeur
par ex webmaster@ton_site.com
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
25 juin 2013 à 10:31
25 juin 2013 à 10:31
Après corrections, voici le résultat de l'echo, mais toujours aucune réception...
header:From: "Site 4 saisons au PNFO"<4.saisons.pnfo@free.fr> Return-Path: sitesyscom10@gmail.com Cc: Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit
Message:
UN CONTACT EST ARRIVE Nom : Dupont Prenom : Martin Organisme : SYSCOM Email : moi@wanadoo.fr Telephone : 0326565898 Message : nouvel essai avec chromeVOTRE MESSAGE A BIEN ETE ENVOYE
En revanche, l'intégration des deux lignes de codes suivantes ont fait planter le serveur (ou le script PHP...)
echo "header:".htmspecialchars($headers);
echo "<br />Message:<br />".htmspecialchars($msg);
Merci de votre aide en tout cas.
header:From: "Site 4 saisons au PNFO"<4.saisons.pnfo@free.fr> Return-Path: sitesyscom10@gmail.com Cc: Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit
Message:
UN CONTACT EST ARRIVE Nom : Dupont Prenom : Martin Organisme : SYSCOM Email : moi@wanadoo.fr Telephone : 0326565898 Message : nouvel essai avec chromeVOTRE MESSAGE A BIEN ETE ENVOYE
En revanche, l'intégration des deux lignes de codes suivantes ont fait planter le serveur (ou le script PHP...)
echo "header:".htmspecialchars($headers);
echo "<br />Message:<br />".htmspecialchars($msg);
Merci de votre aide en tout cas.
Utilisateur anonyme
Modifié par le père. le 25/06/2013 à 14:42
Modifié par le père. le 25/06/2013 à 14:42
C'était htmlspecialchars ! Pardon. Et même pour plus de clarté :
Je vois que les champs CC et Reply-To sont vides, tu pourras essayer de les retirer pour voir si ça passe mieux
echo "header:".nl2br(htmlspecialchars($headers)); echo "<br />Message:<br />".nl2br(htmlspecialchars($msg));
Je vois que les champs CC et Reply-To sont vides, tu pourras essayer de les retirer pour voir si ça passe mieux
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 juin 2013 à 15:30
25 juin 2013 à 15:30
essayes aussi en remplaçant dans la partie $headers tous les ."\n" par ."\r\n"
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
26 juin 2013 à 11:28
26 juin 2013 à 11:28
ça y est ça fonctionne !!!!
Ce qui bloqué, c'était le champs CC du $headers. En le supprimant, ça passe tout à fait.
Est-ce qu'il y a une autre possibilité pour mettre en copie un formulaire que de passer par le CC dans Headers ???
En tout cas, merci beaucoup pour votre aide
Ce qui bloqué, c'était le champs CC du $headers. En le supprimant, ça passe tout à fait.
Est-ce qu'il y a une autre possibilité pour mettre en copie un formulaire que de passer par le CC dans Headers ???
En tout cas, merci beaucoup pour votre aide
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
26 juin 2013 à 11:36
26 juin 2013 à 11:36
J'ai parlé un peu vite, ça fonctionne avec Chrome, mais plus avec IE !!!!
En fait, ce sont les symboles "\r\n" qui fonctionne sous chrome et qui font planter IE. Si je remets "\n", tout refonctionne parfaitement sous IE et plus sous Chrome.
Peut-être existe-t-il une astuce ?
Désolé pour mon enthousiasme un peu rapide
En fait, ce sont les symboles "\r\n" qui fonctionne sous chrome et qui font planter IE. Si je remets "\n", tout refonctionne parfaitement sous IE et plus sous Chrome.
Peut-être existe-t-il une astuce ?
Désolé pour mon enthousiasme un peu rapide
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 juin 2013 à 16:53
26 juin 2013 à 16:53
le script php s'exécutant sur le serveur, je ne vois pas du tout le rapport avec le navigateur, c'est surement un hasard, ton envoi fonctionne un coup sur deux d'où ta déduction sur le navigateur;
Utilisateur anonyme
26 juin 2013 à 11:37
26 juin 2013 à 11:37
Normalement, le Cc marche. Je ne sais pas si c'est normal d'avoir un espace entre le < et l'adresse, et je pense d'ailleurs que les < > ne sont pas utile si tu n'as que l'adresse mail (sans nom)
As-tu essayé :
As-tu essayé :
$headers .='Cc: moi@wanadoo.fr'."\n";
agencesyscom
Messages postés
20
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
25 mars 2014
27 juin 2013 à 14:44
27 juin 2013 à 14:44
Pour répondre à Alain_42, je confirme que le script "\r\n" fonctionne sous chrome, mais pas sur IE et inversement. Moi non plus, je n'explique pas ce bug, mais le serveur ne réagit pas de la même manière. Quand le formulaire s'envoie bien, la page PHP de confirmation met plus de temps à s'afficher.