Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/05/2011, 15h21   #1
Invité régulier
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 8
Points : 8
Par défaut Formulaire de contact qui marche pas

Bonjour, je ne comprend pas, j'ai réutiliser un code que j'avais déjà utilisé et qui marchait bien. Je viens de l'intégrer dans un site et la au lieu de m'envoyer un message il m’envoie sur la page d'erreur.

Voici mes codes :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
le formulaire :
 
 <form action="../PHP/script.php" id="formcontact" name="formulairecontact" method="post" onSubmit="return verification()">
                <table>
                  <tr>
                    <th scope="row">Nom</th>
                    <td><input name="nom" type="text" size="50" maxlength="50" /></td>
                  </tr>
                  <tr>
                    <th scope="row">Objet</th>
                    <td><input name="objet" type="text" size="50" maxlength="50" /></td>
                  </tr>
                  <tr>
                    <th scope="row">Courriel</th>
                    <td><input name="email" type="text" size="50" maxlength="100" /></td>
                  </tr>
                  <tr>
                    <th scope="row">Message</th>
                    <td><textarea name="message" cols="50" rows="10">&nbsp;</textarea> 
                    	<input name="envoyer" type="submit" value="Envoyer votre message..." /></td>
                  </tr>
                </table>
 
            </form>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Le JS :
<script type="text/javascript" language="javascript">
 
	function verification()
	{
	  if(document.formulairecontact.nom.value == "") {
	  alert("Veuillez entrer votre Nom svp");
	  document.formulairecontact.nom.focus();
	  return false;
	 }
	  else if(document.formulairecontact.email.value == "") {
	  alert("Veuillez entrer votre adresse electronique svp");
	  document.formulairecontact.email.focus();
	  return false;
	 }
	 else if(document.formulairecontact.email.value.indexOf('@') == -1) {
	  alert("Ce n'est pas une adresse electronique, verifiez la svp");
	  document.formulairecontact.email.focus();
	  return false;
	 }
	  else if(document.formulairecontact.email.value.indexOf('.') == -1) {
	  alert("Ce n'est pas une adresse electronique, verifiez la svp");
	  document.formulairecontact.email.focus();
	  return false;
	 }
	 else if(document.formulairecontact.message.value == "") {
	  alert("Veuillez entrer un message svp");
	  document.formulairecontact.message.focus();
	  return false;
	 }
	  else return true;
 
	}
 
</script>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
et enfin le php :
<?php
 
$nom = $_POST["nom"];
$email = $_POST["email"];
$objet = $_POST["objet"];
$message = "Nom : ".$nom.". Message : ".$_POST["message"];
$adresse="monmail";
 
 
if (@mail($adresse,$objet,$message,$email))
{
header("Location: ../Pages/reponsecontact.html");
}
else
{
header("Location: ../Pages/erreurcontact.html");
}
 
?>
Merci d'avance...
Adweuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 15h31   #2
Membre régulier
 
Avatar de Pierrot2Mars
 
Homme Pierrot
Développeur Web
Inscription : novembre 2010
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Pierrot
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2010
Messages : 79
Points : 96
Points : 96
Même si je ne comprends pourquoi utiliser Javascript pour faire ces vérifs...
Essaye d'ajouter exit(); après tes header();
Code :
1
2
3
4
5
6
7
8
9
10
if (@mail($adresse,$objet,$message,$email))
{
header("Location: ../Pages/reponsecontact.html");
exit();
}
else
{
header("Location: ../Pages/erreurcontact.html");
exit();
}
Pierrot2Mars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 15h53   #3
Invité régulier
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 8
Points : 8
Nan ça ne marche pas quand même mais merci de ta réponse.

En fait pourquoi le javascript parce que je débute donc je trouvai ça plus simple de passer par le javascript et vérifier tout avant d'envoyer sur le PHP. Après je me doute que ça doit pas être la meilleure solution.
Adweuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h11   #4
Membre régulier
 
Avatar de Pierrot2Mars
 
Homme Pierrot
Développeur Web
Inscription : novembre 2010
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Pierrot
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2010
Messages : 79
Points : 96
Points : 96
Erreur de paramètres dans la fonction mail().
Si tu renseigne le 4e paramètre (headers), il faut que ce soit de la forme :
Code :
1
2
3
4
5
6
7
8
9
10
11
// clé aléatoire de limite
$boundary = md5(uniqid(microtime(), TRUE));
 
// Headers
$headers = "From: Ton site <contact@tonsite.fr>\r\n";
$headers .= "Reply-To: ".$_POST['email']."\r\n";
$headers .= "Mime-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed;boundary=".$boundary."\r\n";
 
// Envoi du mail
@mail($adresse,$objet,$message,$headers)
Doc mail() : http://php.net/manual/fr/function.mail.php
Pierrot2Mars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h19   #5
Invité régulier
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 8
Points : 8
J'ai modifié ça mais ça marche toujours pas

Je comprend pas j'ai tout bien comme sur php.net...
Adweuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h25   #6
Membre régulier
 
Avatar de Pierrot2Mars
 
Homme Pierrot
Développeur Web
Inscription : novembre 2010
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Pierrot
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2010
Messages : 79
Points : 96
Points : 96
Rassure moi ... tu as bien modifié ça :
pour mettre ta véritable adresse ?
Pierrot2Mars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h29   #7
Invité régulier
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 8
Points : 8
Looool la question est légitime mais oui, j'suis pas débutant à ce point ^^
Adweuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h35   #8
Membre régulier
 
Avatar de Pierrot2Mars
 
Homme Pierrot
Développeur Web
Inscription : novembre 2010
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Pierrot
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2010
Messages : 79
Points : 96
Points : 96
Alors je peux plus t'aider.
Testé de mon côté, ça fonctionne.
Pierrot2Mars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h36   #9
Invité régulier
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 8
Points : 8
Pas grave merci ! C'est ptètre mon serveur qui merde !
Adweuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h49   #10
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Retirez le @ dans
Code :
if (@mail($adresse,$objet,$message,$email))
Et évitez simplement d'utiliser @... Il cache les erreurs, or il vaut mieux les corriger plutôt que de les cacher...
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 18h12   #11
Invité régulier
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 8
Points : 8
Ouai en fait le '@' a la base je l'avais pas mis, c'est en farfouillant un peu partout que j'ai vu qu'il y était alors j'ai testé avec mais ça marchait pas mieux. Du coup entre temps je l'ai re-enlevé !

Mais je pense que ça doit venir de mon serveur !
Adweuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 22h06   #12
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Le @ empêche l'affichage des erreurs... Donc faut éviter...

Revenons au problème :
La fonction mail() doit être écrite comme ça :
Citation:
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
$to = l'adresse à laquelle tu veux envoyer le mail.
$subject = l'objet du mail
$message = le message du mail
$headers = header du mail avec un format bien défini.

donc mail($adresse,$objet,$message,$email) ne fonctionnera pas car $email n'est pas un header de mail.

Comme l'a déjà dit Pierrot2Mars mais tu ne l'as pas lu/compris :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$nom = $_POST["nom"];
$email = $_POST["email"];
$objet = $_POST["objet"];
$message = "Nom : ".$nom.". Message : ".$_POST["message"];
$adresse="mail@example.com";
$headers = "From: Ton site <".$adresse.">\r\n";
$headers .= "Reply-To: ".$adresse;
if (mail($adresse,$objet,$message,$headers)){ // sans @ et avec headers
    header("Location: ../Pages/reponsecontact.html");
    exit;
}else{
    header("Location: ../Pages/erreurcontact.html");
    exit;
}
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2011, 13h48   #13
Invité régulier
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 8
Points : 8
Si si je l'avais lu/compris et exécuté d'ailleurs ! Cela ne marchais pas non plus !

Mais j'ai réussi c'était bien mon serveur qui ne fonctionnait pas correctement !

Merci de vos réponses en tout cas !
Adweuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h44.


 
 
 
 
Partenaires

Hébergement Web