Problème formulaire site "Page Unique"

Résolu
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je réalise actuellement un site web, il s'agit d'un site à "page unique".

Mon problème est lié au formulaire de contact, lorsque je teste celui-ci (via mon hébergeur) celui-ci ne m'envoi aucun mail.

Pour faire fonctionner celui-ci, j'ai deux fichiers : mon fichier HTML ainsi qu'un fichier PHP à qui je fait appel pour envoyer le mail, ce dernier fonctionne très bien, je l'utilise sur d'autres sites web.

Je pense que le problème vient de l'URL, je m'explique : l'URL est ainsi "www.mondomaine.com/#!/" sur la page d'accueil, lorsque je vais dans "Contact" où se trouve mon formulaire l'URL est ainsi "www.mondomaine.com/#!/Contact".
Je pense qu'à cause de l'URL il n'accède pas à mon fichier PHP qui est au même niveau sur le serveur.

Voici le code pour le formulaire :


<form method=POST action=envoi.php id="ContactForm">
<div class="success"> Message envoyé<br>
<strong>A bientôt</strong> </div>
<fieldset>
<div class="wrapper">
<span class="col1">Nom :</span>
<label class="name">
<span class="bg"><input type="text" class="input"></span>
<span class="error">*Ceci n'est pas un nom valide</span> <span class="empty">*Ce champ est requis</span>
</label>
</div>
<div class="wrapper">
<span class="col1">Email:</span>
<label class="email">
<span class="bg"><input type="text" class="input"></span>
<span class="error">*L'adresse mail n'est pas valide</span> <span class="empty">*Ce champ est requis</span>
</label>
</div>
<div class="wrapper">
<span class="col1">Téléphone:</span>
<label class="phone">
<span class="bg"><input type="text" class="input"></span>
<span class="error">*Le numéro de téléphone n'est pas valide</span> <span class="empty">*Ce champ est requis</span>
</label>
</div>
<div class="wrapper">
<span class="col1">Message:</span>
<label class="message">
<span class="bg"><textarea rows="1" cols="1"></textarea></span>
<span class="error">*Le message est trop court</span> <span class="empty">*Ce champ est requis</span>
</label>
</div>
<div class="btns">
<input class="button" type="reset" value=Annuler>
</div>
</fieldset>
</form>




A voir également:

14 réponses

Utilisateur anonyme
 
Hello,

Normalement le # et tout ce qu'il y a après ne devrait pas poser de problème.

une chose que tu peux faire pour t'en assurer c'est de modifier un peut ton form :

1er changement :ajouter les "" au valeur
<form method="POST" action="envoi.php" id="ContactForm">


2ème changement :changer le chemin vers ton fichier.php
Ensuite tu peux mettre /envoi.php au lieu de envoi.php.
comme cela n'importe ou que tu sois dans un dossier etc.. etc.. (il va prendre tondomain.ch/envoie.php)

de cette manière on évite qu'il y aie des problèmes avec les /#!/ même si a priori cela devrait pas se produire

*************

Essaie si cela fonctionne, si cela ne fonctionne pas hésite pas à rupdate ce poste afin qu'on puisse investiguer d'avantage sur ton problème.

**************

je pense que tu as testé mais http://tondomain.ch/envoi.php est bien disponible ? si tu essaie d'y accéder directement ?

A+

Seezer
0
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Seezer,

Tout d'abord merci de ton aide ;)

J'ai essayé avec les guillemets, avec le "/" et les deux combinés, sans changement :(

Et effectivement j'accède bien à "www.domaine.com/envoi.php" ;)

PS : .ch dans ton exemple de domaine, aurait-on un ami suisse ?
0
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Up plz ;)
0
Utilisateur anonyme
 
salut, quel est ton hébergement ? Les gratuit ne font pas tous la fonction mail()
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Il s'agit d'OVH et j'ai un autre site qui fonctionne sans soucis avec le même fichier PHP, le problème est lié à cette page HTML et ce "#" :(
0
Utilisateur anonyme
 
En fait c'est le "action" de ton form qui va donner le chemin de ton fichier php.
L'url de retour est celle qui vient de ton fichier php. regarde dans ton fichier le header("location: .... ou ce qui fait la redirection. Moi ce qui m'étonne c'est se #! le ! qui est bizare et modifie en
header("Location: monsite.com/index.php#contact");



׺°"~'"°º×]|I{*------» m3745p10!7 «------*}I|[׺°"~'"°º×
0
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Voila mon code PHP :

<?php


$adresse = "mail@gmail.com";
$site = "www.mondomaine.com";

$TO = $adresse;

$head = "From: ".$adresse."\n";
$head .= "X-Sender: <".$adresse.">\n";
$head .= "X-Mailer: PHP\n";
$head .= "Return-Path: <".$adresse.">\n";
$head .= "Content-Type: text/plain; charset=iso-8859-1\n";

$sujet = "Formulaire de contact";

$informations = "
Nom: ".$_POST['realname']." \r\n
Email du formulaire: ".$_POST['email']." \r\n
Sujet du formulaire: ".$_POST['title']."\r\n
Message: ".$_POST['comments']." \r\n
";

$res = mail($TO, $sujet ,$informations, $head);

if (true == $res) {
Header("Location: http://".$site."/emailok.html" );
} else {
Header("Location: http://".$site."/emailerreur.html" );
}
?>


Mon fichier PHP est correct pour moi je l'ai déjà testé sur d'autres sites, comme tu dis c'est ce fameux "#!" qui semble posé problème, il me permet d'aller chercher mes rubriques dans ma page HTML ...

PS : j'ai volontairement changé l'adresse email et l'adresse du site dans le code PHP ;)
0
Utilisateur anonyme
 
salut, je comprends pas en effet. Un coup j'avais des caractères comme cela qui apparaissait, en fait c'était des espace invisible. Cela se produit dé-fois lors de copier coller. Il faudrait réécrire les lignes de redirection je pense.

Ensuite si ton site est en page unique je comprends en fait il y a deux autres pages pour dire que le mail a été envoyé ou c'est un oublie de ta part

0
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
En effet j'ai créé deux autres pages, une si le mail est bien envoyé et l'autre si il y a une erreur ;)

Je vais tenter de réécrire les redirections (d'ici 45 minutes) et je poste le résultat :)

Merci pour ton aide ;)
0
Utilisateur anonyme
 
oui ok je vais devoir partir bientot mais je suis le sujet :)

j'ai retrouvé le lien de mes espace invisible en bas de page

https://www.developpez.net/forums/d1298727/autres-langages/xml-xsl-soap/valider/validation-dtd-xsd/

׺°"~'"°º×]|I{*------» m3745p10!7 «------*}I|[׺°"~'"°º×
0
Utilisateur anonyme
 
mais pense comme ta dit seezer à mettre les quotes

<form method="POST" action="envoi.php" id="ContactForm">
0
Utilisateur anonyme
 
On va faire étape par étape

dans un premier temps, met des "" pour les valeurs dans ta balise <form>

<form method="POST" action="envoi.php" id="ContactForm">

Ensuite on va vérifier cela :

Première question
Peux-tu accéder à ta page index.html (je pense qu'on peut déjà répondre oui)

Deuxième question
via le formulaire, quand tu appuyes sur le bouton submit, accède tu à ta page contact.php ?
pour tester tu peux ajouter ce code tout en haut de ton script contact.php.
echo 'Test';
// Affiche les valeurs dans ta variable $_POST
echo '<pre>';
print_r($_POST);
echo '<pre>';
// Arrête le script
exit();


une fois que tu as vérifié cela, on est sûr que tout fonctionne au niveau fichier/url.

Je te laisse vérifier les deux choses ci-dessus et nous donner des nouvelles, ensuite on pourra chercher d'avantage.

A+

Seezer
0
Utilisateur anonyme
 
Si tu a ajouter le script ci-dessus, quand tu appuieras sur le bouton envoyer : il devra t'afficher une page blanche avec :

au moins le mot : Test
et peut-être une liste avec les champs et valeurs de ton formulaire.

A+
0
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Non non rien ne se passe ... Le fichier est bien présent et accessible via www.mondomaine.com/envoi.php

J'ai retiré les "#!" dans l'URL je n'ai plus que le "#", par contre ça ne change pas le problème ...
0
Utilisateur anonyme
 
ok ok, donc effectivement aucun problème sur contact.php. (au moins j'en suis sûr maintenant ;) )

pourrais-tu désactiver le javascript de ton navigateur et refaire la manoeuvre ?

car la il y a deux possibilité :
- un script javascript qui t'annule la validation du formulaire (ou la redirection vers contact.php)

ou un problème avec ton code html.

donne nous des news

A+

Seezer
0
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Alors quand je désactives le Javascript je ne peux pas afficher la page correctement, lorsque le chargement s'effectue il utilise le Javascript ...

J'ai donc rajouter l'URL exact "www.mondomaine.com/#Contact" et la la redirection vers mon fichier emailok.html (donc le mail part bien) se fait, je reçois donc bien le mail mais sans les informations rentrés par l'utilisateur (nom, prénom, ...) donc un mail vierge ...

En tout cas il semblerait donc que le problème vient du Javascript ;)
0
Utilisateur anonyme
 
tu as sûrement un événement qui bloque la validation de ton formulaire.

Après, il faut que tu regarde de ton côté qu'est ce qui pourrait bloquer

A+

Seezer
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Il faut regarder si tu as une erreur dans la console web (sur Firefox, menu Outils -> Développeur web -> Console web). Si tu as une erreur javascript, celle-ci bloque tous les autres traitements.

Bonne journée
0
mimilpower Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Problème résolu,

J'avais un appel à un fichier Javascript, en l'enlevant il voit comme par magie mon fichier PHP :)

Merci à tous pour votre aide, particulièrement seezer ;)
0