Page 1 sur 1
Bonjour - Probleme envoi variable en POST
Posté : 28 juil. 2006, 15:55
par PadaBen
Salut à tous, j'ai un souci, j'envoi mon formulaire par méthode POST , rien ne fonctionne, alors que si je passe en GET, tout fonctionne correctement !!
Tout mon code est ok, les variables sont bien récupérée en GET donc par l'url, mais pas qd je met en POST. ma page ne fonctionne plus ..
Si quelqu'un à une info à ce sujet
Merci
Pb
Posté : 28 juil. 2006, 16:04
par aelurus
Normal la methode post et get font appel à deux superglobale differente.
Posté : 28 juil. 2006, 16:42
par Ryle
Ben pas mieux qu'aelurus.. si tu envoi en get, tu dois récupérer dans $_GET alors que si tu envois en post, il te faut récupérer dans $_POST... donc forcément, si tu ne fais le changement dans tout ton code, tu ne récupéreras pas les valeurs

ok GET POST !
Posté : 28 juil. 2006, 16:53
par PadaBen
En fait exactement, tout mon code est en POST ( méthode de formulaire , récupération des variables ...) , ca ne marche pas ,
en revanche, si je change juste la méthode du formulaire et que je la passe en get, en laissant tout le reste en POST, ca marche..
j'ai donc du GET et du POST dans mon code, j'esper etre clair
notion de superglobale ; vous pouvez m'en dire plus ?
MErci pour votre rapidité
Pb
Posté : 28 juil. 2006, 17:53
par leakcim51
Salut!
Tu veux dire que tu as <form action="traitement.php" method="GET"> et dans ta page traitement.php tu récupere tes champs avec $_POST?
C'est bien cela?
@+
lol tres bonne question , merci de l'avoir pausée
Posté : 28 juil. 2006, 18:02
par PadaBen
effectivement je n'avais que la balise method du formulaire en GET
tout le reste était en POST , j'ai modifié tou en GET, cela fonctionne effectivement,
je me demande quand meme comment c'est possible que les variables soient récupérées du GET alors qu'elles sont en $_POST !!!
cela dit tou est en GET et ca marche , mais je voudrais tout repasser en POST et que cela fonctionne !!
j'ai pourtant déjà fait des formulaire en POST ou tout fonctionnait !
aucune erreur ds mon script !
peut etre qq1 a déjà eu ce souci et a une solution, nous sommes plusieurs a avoir eu le meme probleme !! meme mon prof !! lol
Merci
@+
Posté : 28 juil. 2006, 23:36
par Ryle
C'est effectivement des plus étrange... Tu pourrais nous montrer ton code en Post ? celui du formulaire et celui du traitement..

Posté : 29 juil. 2006, 00:00
par aelurus
Wé moi aussi je suis curieux de voir sa car si c'est effectivement un formulaire melanger les deux ????
Ou alors pour des valeures cachés et encore j'ai du mal la.
Mais il serait vraiment pas mal d'avoir un support car n'etant ni medium ni extralucide j'ai du mal avec des si...
Et puis question bete si tout fonctionne comme tu avec $_GET qui est aussi la variable des formulaires, pourquoi changer ????
salut à tous
Posté : 29 juil. 2006, 14:51
par PadaBen
Oui effectivement je trouve bizarre qu'on mon code est fonctionné avec du GET et du POST en meme temps, depuis mon précédent post, j'ai modifié mon code, j'ai tout passé en GET,ca fonctionne, alors que tout en POST ne fonctionne pas !! mais pourquoi !!!???
voilà mon code
<script type="text/javascript">
function verif() {
if (formulaire.nom.value.length<1||formulaire.nom.value==' '){
document.getElementById("reponse").value='Indiquez votre nom SVP';
}
else if (formulaire.pre.value.length<1||formulaire.pre.value==' '){
document.getElementById("reponse").value='Indiquez votre prénom SVP';
}
else if (formulaire.mail.value.indexOf('.')==-1||formulaire.mail.value.indexOf('@')==-1){
document.getElementById("reponse").value='Indiquez votre e-mail SVP';
}
else if (formulaire.tel.value.length!=10||isNaN(formulaire.tel.value)){
document.getElementById("reponse").value='Indiquez votre téléphone SVP';
}
else if (formulaire.soc.value.length<1||formulaire.soc.value==' '){
document.getElementById("reponse").value='Indiquez le nom de votre société SVP';
}
else if (formulaire.cp.value.length!=5||isNaN(formulaire.cp.value)){
document.getElementById("reponse").value='Indiquez votre code postal SVP';
}
else {document.formulaire.submit();}
}
</script>
</head>
<body>
<? if (!isset($_GET['test'])){
?>
<form enctype="text/plain" name="formulaire" method="GET" action="devis.php">
<table>
<td width="171"></td>
<tr>
<td>Nom :
<input name="nom" type="text" size="20" id="nom" class="champ" /></td>
</tr>
<tr>
<td>Prénom :
<input name="pre" type="text" size="16" id="pre" class="champ" /></td>
</tr>
<tr>
<td>e-mail :
<input name="mail" type="text" size="18" id="mail" class="champ" /></td>
</tr>
<tr>
<td>Tel :
<input name="tel" type="text" id="tel" size="22" class="champ" /></td>
</tr>
<tr>
<td>Société :
<input name="soc" type="text" id="soc" size="16" class="champ" /></td>
</tr>
<tr>
<td>CP :
<input name="cp" id="cp" type="text" size="21" class="champ" /></td>
<td><input name="reponse" type="text" size="30" id="reponse" class="champrep" /></td>
</tr>
<tr>
<td height="77"> </td>
<td width="158" rowspan="25"><label><span class="Style1"><strong>COMMENT</strong>AIRES :</span>
<textarea name="com" cols="25" rows="15" class="champ" ></textarea>
</label> </td>
</tr>
<tr>
<td align="left"><input type="checkbox" name="a" value="Image de marque" />
<span class="Style1">option1</span></td>
</tr>
<tr>
<td align="left"><input type="checkbox" name="b" value="Publicité" />
<span class="Style1"> <strong>option2</span></td>
</tr>
<tr>
<td height="22" align="left"><input type="checkbox" name="c" value="Site internet" />
<span class="Style1">option3</span></td>
</tr>
<tr>
<td height="68"> </td>
</tr>
<tr>
<td height="17"><span class="Style1">DELAIS :</span></td>
</tr>
<tr>
<td height="17"><input name="delai" type="text" size="10" maxlength="15" class="champ" /></td>
</tr>
<tr>
<td height="17"><span class="Style1">VOTRE BUDGET :</span></td>
</tr>
<tr>
<td height="17"><input name="budget" type="text" size="10" maxlength="15" class="champ"/></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td colspan="2"><input type="hidden" id="test" name="test" value="ok" />
<input name="btonenvoi" type="button" class="bouton" id="btonenvoi" value="Bon pour envoi" onclick="verif()" /></td>
</tr>
</table>
</form>
<?
// création du modèle d'email
} else {
// déclaration des variables
$reponse = "[email protected]";
$mailclient = $_GET["mail"];
$bcc = "[email protected]";
$frontiere = '-----=' . md5(uniqid(mt_rand()));
// contenu du mail
$headers ='From: "toto"<'.$reponse.'>'."\n";
$headers .='Reply-To: <'.$reponse.'>'."\n";
$headers .='Bcc:<'.$bcc.'>'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
$sujet ='Demande de devis/informations';
$contenu = "
</head>
<body>
<div id='mail'>
<div id='head'>confirmation de votre<br />
demande de devis.</div>
<div id='contenu'>
<p>".$_GET["nom"]." ".$_GET["pre"]."</p>
<p>".$_GET["mail"]." </p>
<p>".$_GET["tel"]." et <br />
<br />
".$_GET["soc"]." localisée au : ".$_GET["cp"]."</p>
<p>
<p><strong> Vous avez souhaité avoir des informations sur : </strong></p>
".$_GET["image"]."<br />
".$_GET["pub"]."<br />
".$_GET["web"]."
<p> Vous disposez de : ".$_GET["delai"]."
et de ".$_GET["bud"]." de budget .<br />
<br />
<p><strong>Vos précisions :</strong> ".$_GET["com"]."
<p><br />
Nous étions votre demande et nous vous répondrons
dans les plus brefs délais, si toutefois vous avez des précisions à nous donner n'hésitez pas à nous contacter soit par mail, soit par téléphone. </p>
<p>Cordialement,</p>
</div>
</div>
<body>
</body>
</html>";
//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $contenu."\n\n";
//-----------------------------------------------
//PIECE JOINTE
//-----------------------------------------------
$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: image/jpeg; name="../image.jpg"'."\n";
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="..image.jpg"'."\n\n";
$message .= chunk_split(base64_encode(file_get_contents('../image.jpg')))."\n";
// envoi de l'email
$envoi = mail($mailclient,$sujet,$message,$headers);
if ($envoi==1)
{
//mail($reponse,$sujet,$contenu);
echo " <br />
<br />
<br />
<br />
<br />
<br />
<br /><strong>Votre email a bien été envoyé,
vous allez recevoir un récapitualtif sur ".$_GET["mail"]." </strong>";
} else {
echo "Erreur d'envoi, vérifiez votre email";
}
}
?>
</body>
voilà , j'espere que c'est lisible,
vu que je suis débutant, si vous trouvez que mon code n'est pas clair, je suis prenneur d'infos pour l'alléger ou le clarifier
j'ai aussi un souci d'envoi de mail de confirmation en incluant une image de fond !!
Merci de votre aide
Pb
Re: salut à tous
Posté : 29 juil. 2006, 15:04
par Truc
voilà , j'espere que c'est lisible
ça l'est un peu plus avec les balises [ php] au lieu de [ code]
Refait un test en POST sans "enctype="text/plain""
[RESOLU] Merci
Posté : 29 juil. 2006, 15:38
par PadaBen
Refait un test en POST sans "enctype="text/plain""
MERCI Truc, c'était exactement cela, vu que tout fonctionne en POST maintenant.
d'ailleurs je ne sais meme pas à quoi sert "enctype="text/plain" !
MErci et @ +
Pb
Re: [RESOLU] Merci
Posté : 29 juil. 2006, 17:18
par Truc
d'ailleurs je ne sais meme pas à quoi sert "enctype="text/plain" !
ne sert qu'en cas d'envoi de mail avec mailto
MErci
Posté : 29 juil. 2006, 17:45
par PadaBen
Merci Truc pr cette info
bon Wend à tous !