Pb de réception des valeurs d'un formulaire dans boite mail

coxiflo
Invité n'ayant pas de compte PHPfrance

27 oct. 2006, 15:38

pour le genre,

la valeur du bouton radio est celle que j'ai renseigné par défault dans ma construction de formulaire, cad, ou Madame ou Monsieur ou Mademoiselle.

Est-ce que j'affiche quand même ce que tu me demande dans mon prog ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 oct. 2006, 15:44

Oui testes toujours pour voir si en indiquant la valeur directement ça fonctionne.

coxiflo
Invité n'ayant pas de compte PHPfrance

27 oct. 2006, 15:47

TOUJOURS LA MEME CHOSE

coxiflo
Invité n'ayant pas de compte PHPfrance

27 oct. 2006, 15:51

a vrai dire je ne comprends pas trop pourquoi çà fonctionne pas

1. Ma variable réceptionne bien sa valeur dans la zone de DEBUGG
2. La structure de ma fonction mail() est correct

alors pourquoi?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 oct. 2006, 15:54

Là en effet c'est bizarre. Essaies de faire un peu de nettoyage au sein de tes pages, laisses que le stricte minimum pour pouvoir repérer l'erreur.

Il y a peut-être quelque chose avant qui fait coincer.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 oct. 2006, 15:55

C'est un truc de fou cette histoire :shock:

Avant d'envoyer le mail affiche le $message pour voir comment il se rempli :
// envoi des données du formulaire par mail 
$message = "INFORMATIONS CONCERNANT LE DEMANDEUR : \n"; 
$message .= "- ".$genre; 

echo $message."<br>";

$message .= "- ".$nom1 . "\n"; 
$message .= "- ".$prenom1  . "\n"; 

echo $message."<br>";

$message .= "- ".$adres . "\n"; 
$message .= "- ".$codepost  . "\n"; 
$message .= "- ".$commune . "\n"; 
// ...

echo $message."<br>";
Quelque chose dans ce gout là... j'ai rajouté des tirets pour être sur que la concaténation se fasse bien..


Tu peux aussi vérifier le contenu de tes variables avant ? (juste 2 ou 3 pour essayer de savoir où est ce que ça commence à poser problème)
echo "Genre : ".$genre."<br>";
echo "Nom1 : ".$nom1."<br>";
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

coxiflo
Invité n'ayant pas de compte PHPfrance

27 oct. 2006, 16:11

est-ce que çà pourrait provenir des vérifications faites en javascript qui me permettent de définir des champs obligatoires par exemple ou d'obliger les visiteurs à renseigner un champs?

Je teste Ryle ce que tu m'as indiqué ....

coxiflo
Invité n'ayant pas de compte PHPfrance

27 oct. 2006, 16:17

Ryle

pour ta 1ère proposition: afficher $message
je n'ai que des tirets qui s'affichent ds mon mail.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 oct. 2006, 16:17

Nope, javascript ne devrait pas impacter tes résultats, il se contente juste de vérifier que les champs sont bien renseignés avant d'envoyer le formulaire, mais ne change absolument pas leur valeurs... de toute façon elles apparaissent bien dans $_POST :)

Edit : Ok, donc le problème vient bien de l'affectation des valeurs qui ont l'air d'être vides...

Modifie ton premier test comme ceci :
if (isSet($_POST['genre'])){   
  $genre=$_POST['genre'];
  echo "Post défini : " . $_POST['genre'];
} 
else { 
  $genre="";
  echo "Post non défini";
}  
Qu'on sache par où est ce qu'il passe :)
(pis tu peux aussi ajouter un print_r($_POST); quelque part, ca sera ma prochaine question si ca donne rien ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

coxiflo
Invité n'ayant pas de compte PHPfrance

27 oct. 2006, 16:22

J'ai peut-être trouvé

mon code PHP est avant mon code qui me permet de récupérer la valeur des champs...

C'est peut-être la cause?

coxiflo
Invité n'ayant pas de compte PHPfrance

27 oct. 2006, 16:27

ALORS

il me trouve bien

POST défini: mademoiselle

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 oct. 2006, 16:30

J'ai pas tout bien compris.. mais à priori, je dirais que tu as déjà le séquencement normal :
// affectation de la valeur de post à la variable si elle est définie (sinon utilise une valeur par défaut)
$genre = (isset ($_POST['genre'])) ? $_POST['genre'] : "" ;
...

// utilisation des variables définies plus haut
$message .= $genre . "\n"; 
...
Ca reste assez logique :)

1. Et si tu remplaces :
echo "Post défini : " . $_POST['genre'];
par
echo "Post défini : " . $genre;
??

2. Et si tu remplaces :
$message .= $genre . "\n";
par
$message = $message . $genre . "\n";

avec un echo $message ensuite bien entendu :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

coxiflo
Invité n'ayant pas de compte PHPfrance

27 oct. 2006, 16:30

ben le print r();

je l'ai déjà ds ma zone de debugg

[/quote]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 oct. 2006, 16:35

ben le print r();
je l'ai déjà ds ma zone de debugg
Vi c'est vrai... mais faut pas m'en vouloir, ça m'arrive des fois de taper plus vite que je ne pense :)

Qui à dit "et pourtant il tape pas vite" ?!
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

27 oct. 2006, 16:35

Moi je ne vois pas d'erreurs ni dans la façon de récupèrer les données ni dans la fonction mail et ce depuis ton premier post.

Mais ceci dit je pense que tu as une erreur de format/taille du message que tu transmet par mail car tu ne reçoit que la première ligne avant le "\n" il faut peut être fixer les paramètres "header" du message avant de lancer la fonction mail.
Voir pour cela comment fixer des header pour mail : http://fr3.php.net/manual/fr/function.mail.php
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène