migrer de formmail.pl à un formulaire en php

Petit nouveau ! | 4 Messages

19 févr. 2015, 11:18

Bonjour,

juqu'à présent j'utilise pour mes formulaires client le script cgi formmail.pl. Il fait son job admirablement mais mon hébergeur "évolue", lol, et me pousse à faire du php et j'y connais rien de rien.

Quelqu'un connait-il un script php qui me permettrait de faire ce que fait formmail.pl, sans que je doive changer radicalement ma vingtaine de formulaires, et qui soit aussi un petit peu sûr, pas besoin de captcha et autres, mais non plus pas un truc qui laisse tout passer, lol.

Je connais assez bien l'html mais le php c'est le brouillard pour moi, lol,
Voici un exemple d'un de mes formulaires fonctionnant avec formmail.pl, avec des champs cachés qui me permettent de recevoir par email l'inscription du client avec déjà une partie de ma réponse intégré (input name="hiddenField" type="hidden")
http://www.gruyere-escapade.ch/reservation/tine.html

Merci de votre aide !
Pascal

PS: j'ai bien passé quelques heures à chercher sur le net mais je ne trouve pas un script unanime, comme formmail.pl en son temps... !

Petit nouveau ! | 4 Messages

20 févr. 2015, 18:50

personne ?

Mammouth du PHP | 688 Messages

20 févr. 2015, 19:19

prends un script non unanime.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

20 févr. 2015, 19:57

Bonjour,

Sans savoir exactement ce que fait ton script initial, c'est compliqué de t'aider.

Pour envoyer un mail en PHP, il suffit d'utiliser la fonction mail() et de bien filtrer toutes les variables rentrées par tes utilisateurs avec filter_var()
http://php.net/mail
http://php.net/var_filter

Si tu veux envoyer des e-mails + évolués, tu peux utiliser une librairie comme PHPmailer :
Regarde du côté de PHPmailer : https://github.com/Synchro/PHPMailer
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

21 févr. 2015, 12:47

Bonjour,

j'aimerais que le script php récupère tout les champs de formulaire remplis sur ma page de contact et me les envoies sur mon adresse email
Mais sans devoir à nommer chaque champs de formulaire dans le script comme ça je peut utiliser le même script pour différentes page de contact sans devoir modifier ce script si un nom de champs de formulaire est modifié!!
Quand le client clique sur Envoyer, une page merci.html ou erreur s'affiche

+ Eventuellement rendre des champs de formulaire obligatoires
+ Eventuellement avec un antispam du genre: Que font 2+1? et si le champ de formulaire ne contient pas 3, le script renvoie une erreur.


Voilà le code du formulaire de ma page contact:

===================

<form action="formmail-vf.pl" method="post">
<p>
<span class="texte">
<INPUT TYPE="hidden" name="subject" value="Demande d'information">
<INPUT TYPE="hidden" name="recipient" value="[email protected]">
<INPUT TYPE="hidden" name="redirect" value="http://www.garde-corps-industriel.ch/merci.html">
</span></p>
<p class="texte"><strong>Formulaire:</strong></p>
<p class="texte">Société, Nom et Adresse: <br>
<textarea name="SOCIETE" cols="30" rows="3" wrap="VIRTUAL"></textarea>
</p>
<p class="texte">T&eacute;l&eacute;phone <br>
<input name="TEL" type="text" value=" " size="30">
</p>
<p class="texte">E-mail<br>
<input name="email" type=text size=30>
</p>
<p class="texte">Votre message <br>
<textarea name="DEMANDE_PARTICULIERE" cols="30" rows="5" wrap="VIRTUAL"></textarea>
<br>
<br>
<input type="submit" name="Envoi" value="ENVOYER">
</p>
<p class="texte"> Une page "Merci" doit s'afficher après que vous ayez appuyé sur "Envoyer". <br>
Sinon, envoyez un e-mail.</p>
</form>

==========================


Et voilà ce que formmail.pl m'envoi sur mon adresse email quand quelqu'un rempli mon formulaire:


==================================

De: [email protected]
A: [email protected]
Objet: Demande d'information
______________________________________________________________________
Below is the result of your feedback form. It was submitted by
([email protected]) on Saturday, February 21, 2015 at 11:25:17
---------------------------------------------------------------------------

SOCIETE: Société SA
Dupont
ch. de la Gare
12000 Paris

TEL: 06 123 456

DEMANDE_PARTICULIERE: Bonjour,
pourriez-vous me contacter
Slt

Envoi: ENVOYER

---------------------------------------------------------------------------

===================================

Eléphanteau du PHP | 42 Messages

21 févr. 2015, 16:14

Salut,

Imaginons que vous changer formmail-vf.pl par formmail-vf.php comme ceci :
<?php 
//on commence une session  pour le capcha
session_start() ;

?>
<form action="formmail-vf.php" method="post">
 <p>
 <span class="texte">
 <INPUT TYPE="hidden" name="subject" value="Demande d'information">
 <INPUT TYPE="hidden" name="recipient" value="[email protected]">
 <INPUT TYPE="hidden" name="redirect" value="http://www.garde-corps-industriel.ch/merci.html">
 </span></p>
 <p class="texte"><strong>Formulaire:</strong></p>
 <p class="texte">Société, Nom et Adresse: <br>
 <textarea name="SOCIETE" cols="30" rows="3" wrap="VIRTUAL"></textarea>
 </p>
 <p class="texte">T&eacute;l&eacute;phone <br>
 <input name="TEL" type="text" value=" " size="30">
 </p>
 <p class="texte">E-mail<br>
 <input name="email" type=text size=30>
 </p>
 <p class="texte">Votre message <br>
 <textarea name="DEMANDE_PARTICULIERE" cols="30" rows="5" wrap="VIRTUAL"></textarea>
 <br>
 <br>
<?php 
$_SESSION['captcha1']=rand(0,10);
$_SESSION['captcha2']=rand(0,10);
<p class="texte"><?php echo $_SESSION['captcha1']  ?>+ <?php echo $_SESSION['captcha1'] ?> = <br>
 <input name="captcha" type="text" value="" size="30">
 </p>

?>
 <input type="submit" name="Envoi" value="ENVOYER">
 </p>
 <p class="texte"> Une page "Merci" doit s'afficher après que vous ayez appuyé sur "Envoyer". <br>
 Sinon, envoyez un e-mail.</p>
</form>

le fichier formmail-vf.php devra contenir :
<?php
//on initialise la variable d'erreure
$formmail_erreur=0;

//onrécupère les variable de session pour le capcha
session_start() ;
 //on verifie que le formulaire a bien été envoyé
if(isset($_POST['Envoi']) && $_POST['Envoi']!='')
{

//on vérifie la variable de captcha
if ($_POST['captcha']==$_SESSION['captcha1']+$_SESSION['captcha2'])
{

envoi des information à l'aide de la fonction mail() de php

}
else
{
$formmail_erreur=1;
}

}

?>

Petit nouveau ! | 4 Messages

23 févr. 2015, 09:41

ça me donne une erreur:
Parse error: syntax error, unexpected '<' in /home/clients/d5071e0cec21dfafc11d04c2cf6aea65/web/contact-formul.php on line 52

La ligne 52:
<p class="texte"><?php echo $_SESSION['captcha1'] ?>+ <?php echo $_SESSION['captcha1'] ?> = <br>

Eléphanteau du PHP | 42 Messages

17 avr. 2015, 15:42

Bonjour,

la balise ?> n'était pas fermée à la ligne 51. essayez avec cela :

<?php
$_SESSION['captcha1']=rand(0,10);
$_SESSION['captcha2']=rand(0,10); ?>
<p class="texte"><?php echo $_SESSION['captcha1'] ?>+ <?php echo $_SESSION['captcha1'] ?> = <br>