koesys | ...le bougre.
Boujour à tous ! Je suis grand débutant en php. Et j'ai un problème qui me rend malade tellement ça-devrait-marcher-normalement-bordel.
En résumé voilà ce que j'ai :
un formulaire sur une page, avec un bouton submit nickel dont le le name est "envoi".
Validée, l'action du formulaire nous transfert sur la page de traitement dont le début est :
if (!isset($_POST['envoi']))
{
echo "veuillez remplir le formulaire";
}
else
{
//traitement du formulaire...
}
Normalement, cela DEVRAIT passer à l'else puisqu'on vient de cliquer sur le submit et donc envoyer dans $_POST le "envoi" ! !!! Mais non, monsieur If ne veut pas me donner autre chose que "veuillez remplir le formulaire".
J'ai essayé de changer la condition : if (!isset($_POST['nom'])) en prenant evidement bien soin de mettre un nom dans le formulaire avant de le valider... Mais là encore, que dalle ! Le if se lance comme si le $_POST['nom'] n'existait pas.
Bref, il fait l'inverse de ce que je veux... Bref je vous donne le code complet des deux pages au cas ou. (le but est de faire un formulaire qui s'envoie par mail directement via le site)
page contact.php
Spoiler :
<form id="formulaire" method="post" action="contact_v.php" enctype="text/plain">
<textarea name="message" cols="" rows=""></textarea>
<input id="capcha" name="cap" type="text"/>
<input id="nom" name="nom" type="text" value="Votre nom" onclick="if(this.value == 'Votre nom'){this.value=''};" onBlur="if(this.value ==''){this.value='Votre nom';}"/>
<input id="societe" name="societe" type="text" value="Société / Activité" onclick="if(this.value == 'Société / Activité'){this.value=''};" onBlur="if(this.value ==''){this.value='Société / Activité';}"/>
<input id="email" name="email" type="text" value="Votre email" onclick="if(this.value == 'Votre email'){this.value=''};" onBlur="if(this.value ==''){this.value='Votre email';}"/>
<input id="envoie" name="envoi" value="Envoyer !" type="submit" />
</form>
|
page contact_v.php
Spoiler :
<?php
$destinataire ='moi@tapir.com';
$copie='oui';
$message_envoye = "Votre message a bien été envoyé !";
$message_non_envoye = "l'envoi du message a échoué. Veuillez réessayer.";
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.php\"> envoyer le formulaire </a>";
$message_formulaire_invalide = "Vérifiez que tous les champs sont bien remplis correctement et que l'email soit sans erreur.";
if (empty($_POST["nom"]))
{
echo $message_erreur_formulaire; }
else
{
function Rec($text)
{
$text = htmlspecialchars(trim($text));
$text = stripslashes($text);
$text = n12br($text);
return $text;
}
function IsEmail($email)
{
$value = (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]+[.][a-z0-9]{2,4}$#", $tapir));
(($value==0) || ($value == false)) ? false : true;
}
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$nom = (isset($_POST['societe'])) ? Rec($_POST['societe']) : '';
$nom = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$nom = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
$email = (IsEmail($email)) ? $email : '' ;
if (($nom != '') && ($societe !='') && ($email !='') && ($message !=''))
{
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
'Reply-To:'.$email. "\r\n" .
'X-Mailer:PHP/'.phpversion();
if ($copie == 'oui')
{
$cible = $destinataire.','.$email; }
else
{
$cible = $destinataire; }
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n"; }
}
else
{
echo $message_formulaire_invalide;
}
}
?>
|
Je me suis inspiré du tutoriel sur http://www.php-astux.info/script-f [...] ulaire-php qui a l'air vieux, mais bon.
Merci de votre lecture
edit : mince je croyais que les "spoilers" permettais de réduire le texte et de le déplier uniquement quand on clique dessus. humpf... Message édité par koesys le 03-09-2013 à 16:19:45
|