formulaire contact probleme

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : formulaire contact probleme

Re: formulaire contact probleme

par leozoe » 02 sept. 2011, 18:38

pour recevoir un mail sur ta boite mail , il faut bien l'envoyer, que ce soit a toi ou a un client c'est toujours un envoi de mail :wink:
tu initialises $body comme vide ok, mais après tu ne mets pas de valeur dans $body, donc quand tu envoies le mail $texte=$body est toujours vide non?
ensuite tu crées bien les headers, mais tu ne les envoies pas ...

Re: formulaire contact probleme

par crevette » 02 sept. 2011, 17:02

Bonjour leozoe,

ce que je veux ce n'est pas envoyé un mail c est recevoir sur mon mail les informations remplies dans le formulaire

avec la partie de code que tu m'indique j'envois effectivement un mail avec les informations de texte fixe.

après j'ai déjà fait un formulaire en flash qui fonctionne très bien il fait appel a un fichier php qui est comme ceci:
<?php

$Name= $_POST['name'];
$email = $_POST['email'];
$subject  = $_POST['subject'];
$mail_body  = $_POST['message'];

$recipient = "[email protected]";

$header = "From: ". $Name . " <" . $email . ">\n"; 

if(isset($Name))
{ 
 if(mail($recipient, $subject, $mail_body, $header))
    {
      echo "success=yes";
    }
    else
    {
	 echo "success=no";
    }
}
  
?> 
cependant le flash et bien mais pas top car pas compatible téléphone et tablette de la marque à la pomme pour ne pas la citer.... c est pour cela que je m'acharne a faire ce formulaire....

sinon j'ai quand même modifié mon code avec tes informations voici a quoi il ressemble maintenant mais la j'ai vraiment l'impression d'avoir fait n'importe quoi....:
<?php
error_reporting(E_ALL);
var_dump($_GET,$_POST);

$nom = '';
if (!empty ($_POST['nom'])) {
$nom= $_POST['nom'];
}
$prenom = '';
if (!empty ($_POST['prenom'])) {
$prenom= $_POST['prenom'];
}
$mail = '';
if (!empty ($_POST['mail'])) {
$mail= $_POST['mail'];
}
$body = '';
if (!empty ($_POST['message'])) {
$message= $_POST['message'];
}
$objet = "Demande de renseignements";
$destinataire="[email protected]";

mail($destinataire,$nom,$prenom,$mail,$body);

$headers= "MIME-Version: 1.0\n";
$headers.= "From: $mail\n";
$headers.= "Content-type: multipart/mixed;\n";
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.= "$body <br>\n";

if (mail($destinataire,$objet,$body)) { 
echo "Votre mail a été envoyé<br>"; 
} else { 
echo "Une erreur s'est produite"; 
} 
?>
après l'envoi du fichier il s'affiche ceci : array(0) { } array(0) { }
et je reçois deux mails un complétement vide et un avec l'objet du mail seulement

Re: formulaire contact probleme

par leozoe » 02 sept. 2011, 12:56

Bonjour,

pour envoyer un mail correctement, tu dois différencier les parties de ton mail et préciser l'encodage

// Destinataire du mail
$destination = $email;
// Expediteur du mail
$expediteur = $mail_admin;
// sujet du mail
$sujet = "sujet du mail";

// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0\n";
$headers.= "From: $expediteur\n";
$headers.= "Content-type: multipart/mixed;\n";
// Chaine permettant de différencier les parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.= "ton texte <br>\n";
$texte.= "<br>\n encore du texte <br>\n";
$texte.= "<br>\n encore du texte";


// enfin on envoi le mail
mail($destination, $sujet, $texte, $headers);

Re: formulaire contact probleme

par crevette » 02 sept. 2011, 11:53

salut Mazarini,

le paramètre "objet" n'a pas résolu le fait que le contenu du formulaire n'est pas envoyé c'est juste qu'avec l'objet je reçois un mail vide avec un sujet que je lui ai donné :

$objet = "Demande de renseignements";

je suis repassé avec la method post sur le formulaire car je n'aime pas trop le fait que le formulaire passe par l'url.... car le GET ne fonctionnais pas plus de toutes façons....

je ne pensais pas que ça allais être aussi difficile de trouver l'erreur de mon code php vue que je débute je pensais certainement avoir fait une erreur de débutant 8-|

mais j'ai l'impression que les informations du formulaire reste coincé avant le traitement php ....

Re: formulaire contact probleme

par Mazarini » 02 sept. 2011, 11:14

Bonjour,

Il manque le paramètre "objet" dans la fonction mail.

Re: formulaire contact probleme

par crevette » 02 sept. 2011, 09:56

bonjour à tous,

bon j'ai tester de retirer le " " autour de $mail_body
comme tu l'as dit alf, ça n'a pas résolu mon probleme le résulta est identique....

la je ne sais plus trop quoi faire ....

Re: formulaire contact probleme

par Alf?> » 01 sept. 2011, 19:07

Salut,

A vrai dire ce n'est pas une erreur.
C'est un rapport détaillé de ce que contiennent tes variables GET grâce à var_dump($_GET).

Donc les informations de ton formulaire sont bien passé mais tu as écris :

$body="$mail_body";

Au lieu de :

$body=$mail_body;

Je ne suis pas sur que ça change grand chose car les double côtes sont censer interpréter ta variable sans avoir a concaténer avec un "."

Re: formulaire contact probleme

par crevette » 01 sept. 2011, 17:59

bon j'ai testé en changeant sur le formulaire le method="post" par method="get"

le je reçois quelque chose :

je reçois ce qui a été rentré dans le champs mail uniquement mais pas ce qui ce trouve dans message....

petit à petit ça avance...

mais maintenant j'ai ceci qui s'affiche comme erreur après envoi du formulaire:

array(5) { ["nom"]=> string(4) "ttho" ["prenom"]=> string(5) "sghgs" ["mail"]=> string(11) "[email protected]" ["message"]=> string(7) "ryurtuy" ["envoyer"]=> string(7) "Envoyer" } array(0) { }

Re: formulaire contact probleme

par crevette » 01 sept. 2011, 15:48

oui oui tout a fait j'ai mis en ligne le formulaire html et le fichier php joint
sur le formulaire html je ne pense vraiment pas avoir fait d'erreur dessus

je l'ai joint sur mon premier post
si vous le souhaiter je peux poster la page html complète car le code html que j'ai mis je n'ai mis que la partie concernant le fomulaire il y a en plus le menu le titre et le pied de page

Re: formulaire contact probleme

par Mazarini » 01 sept. 2011, 15:01

Le problème doit venir du formulaire, mais d'après ce que tu montres comme source, je ne vois pas d'erreur HTML.

Rassures moi, tu passes bien par le formulaire pour accéder à la page traitement.php ?

Re: formulaire contact probleme

par crevette » 01 sept. 2011, 14:30

sur mon formulaire j'utilise bien le $_POST
c est pour cela que je l'ai testé sur le fichier php.

j'ai ajouter var_dump($_GET,$_POST); juste apres l error_reporting(E_ALL);

j'ai maintenant ce ci qui s'affiche après l'envoi:

array(0) { } array(0) { }

Re: formulaire contact probleme

par moogli » 01 sept. 2011, 12:48

va falloir debuguer un peu la
commence par ajouter var_dump($_GET,$_POST); afin de voir ce que ces variables ont "dans le ventres".

d'après le dernier formulaire poster c'est $_POST qu'il faut utiliser !

a tu affiché les variables utilisées par la fonction mail avant leurs utilisations ?

@+

Re: formulaire contact probleme

par crevette » 01 sept. 2011, 12:39

arf ok désolé d'être tête en l'air :/

bon du coup j'ai bien mis mon point virgule
voici le rapport d'erreur

Notice: Undefined index: nom in /homez.152/sophiedeq/www/traitement.php on line 4

Notice: Undefined index: prenom in /homez.152/sophiedeq/www/traitement.php on line 5

Notice: Undefined index: mail in /homez.152/sophiedeq/www/traitement.php on line 6

Notice: Undefined index: message in /homez.152/sophiedeq/www/traitement.php on line 7


j'ai donc fait mes petites recherches de mon coté il s'avère que cet erreur et du au fait qu'il faut tester mes champs de texte j'ai donc modifié mon code comme ceci:
<?php
error_reporting(E_ALL);

$nom = '';
if (!empty ($_GET['nom'])) {
$nom= $_GET['nom'];
}
$prenom = '';
if (!empty ($_GET['prenom'])) {
$prenom= $_GET['prenom'];
}
$mail = '';
if (!empty ($_GET['mail'])) {
$mail= $_GET['mail'];
}
$mail_body = '';
if (!empty ($_GET['message'])) {
$message= $_GET['message'];
}

$destinataire="mon mail"; 
$body="$mail_body";

$header = "From: ". $body . " <" . $mail . ">\n";
if (mail($destinataire,$body,$header)) { 
echo "Votre mail a été envoyé<br>"; 
} else { 
echo "Une erreur s'est produite"; 
} 
?> 
avec ce code je n'ai plus d'erreur mais je reçois toujours un mail vide

j'ai testé de changer le $_GET par $_POST mais quand je fait ceci je ne reçois plus rien

Re: formulaire contact probleme

par Mazarini » 01 sept. 2011, 11:34

Il manque le ";" à la fin de la ligne 2

Re: formulaire contact probleme

par crevette » 01 sept. 2011, 10:36

Bonjour,

j'ai ajouté le error reporting et il m'affiche ceci:

Parse error: syntax error, unexpected T_VARIABLE in /homez.152/sophiedeq/www/traitement.php on line 4

j'ai donc a priori une erreur sur cette ligne de code:
$nom= $_POST['nom'];
mon code complet maintenant:
<?php
error_reporting(E_ALL)

$nom= $_POST['nom'];
$prenom= $_POST['prenom'];
$mail = $_POST['mail'];
$mail_body  = $_POST['message'];
$destinataire="mon adresse mail"; 
$body="$mail_body";

$header = "From: ". $body . " <" . $mail . ">\n";
if (mail($destinataire,$body,$header)) { 
echo "Votre mail a été envoyé<br>"; 
} else { 
echo "Une erreur s'est produite"; 
} 
?>
mais la je ne vois pas ce qui cloche surtout a la ligne 4 :/ ...