Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 07/02/2007 22:43:29

Renaud
Membre
Inscription : 30/01/2007
Messages : 306

Comment faire un formulaire avec Zite

Pour faire un formulaire, il est bien de pouvoir afficher une page de réponse. La meilleur marche a suivre est de créer une page qui sera la page principale du formulaire, et qui contiendra du code PHP pour afficher selon le cas l'une ou l'autre des deux sous-page a créer en "invisible", avec la puce rouge plutôt que verte.

form.png

Dans la page "me contacter", pour laquelle vous activez PHP, mettez ce script, en mode éditeur de code source, pas avec l'éditeur wysiwyg :

<?
if (count($_POST)) {
   // Formulaire reçu...
   // On envoie les infos
   $msg = '';
   foreach($_POST as $k => $v) $msg .= "\n$k : $v";
   mail('rgombert@essentiel.net', 'Message de mon zite', $msg);
   // On affiche merci
   print $zite->get_content(1166194279, true);
} else {
   // On affiche le formulaire
   print $zite->get_content(1166194275, true);
}
?>

Dans la page "Formulaire", mettre :

<h1>Formulaire de contact</h1>
<form id="form1" name="form1" method="post" action="index.php?perma=1166194271">
    <div align="center">Tapez votre email :
        <input name="email" type="text" />
        , puis votre message<br />
        <textarea name="message" style="width:95%"></textarea>
        <input type="submit" name="Submit" value="Envoyer" />
    </div>
</form>

Ubuntu Rocks

Hors ligne

#2 15/06/2007 10:32:02

flipflip
Membre
Inscription : 15/06/2007
Messages : 2

Re : Comment faire un formulaire avec Zite

Bonjour, voila mon formulaire :

<h1>Nous contacter</h1>
<form id="form1" name="form1" method="post" action="index.php?perma=1166194271">
    <label for="nom">Votre nom</label>
      <input name="nom" type="text" /><br />
    <label for="societe">Votre société</label>
      <input name="societe" type="text" /><br />
    <label for="email">Votre Email</label>
      <input name="email" type="text" /><br />
    <label for="message">Votre message</label><br />
      <textarea name="message" style="width:95%"></textarea>
    <input type="submit" name="Submit" value="Envoyer" />
</form>

Lorsque je l'enregistre il est automatiquement coupé et devient

<h1>Nous contacter</h1>
<form id="form1" name="form1" method="post" action="index.php?perma=1166194271">
    <label for="nom">Votre nom</label>
      <input name="nom" type="text" /><br />
    <label for="societe">Votre société</label>
      <input name="societe" type="text" /><br />
    <label for="email">Votre Email</label>
      <input name="email" type="text" /><br />
    <label for="message">Votre message</label><br />
      <textarea name="message" style="width:95%">

J'ai essayé de supprimer la ligne du textarea et ça passe, au contraire je vois vraiment pas pourquoi ça bloque. J'ai testé aussi avec le code fourni sur cette page et j'obtient le même résultat sad
Vous avez une idée ?

Merci d'avance.

Dernière modification par flipflip (15/06/2007 10:32:53)

Hors ligne

#3 15/06/2007 10:52:55

Renaud
Membre
Inscription : 30/01/2007
Messages : 306

Re : Comment faire un formulaire avec Zite

Arf ! ça bloque parce que ton code contient un </textarea>... qui doit passer en édition source, mais sauter en édition wysiwyg.

TinyMCE, tel qu'il est configuré, est un peu sauvage dans son nettoyage du code HTML, et vire beaucoup de balises "non autorisées" (telles que celles de scripts par exemple). Si une page doit être travaillée manuellement il est largement préférable de passer par l'édition directe du source.

Fais gaffe aussi aux références permaliens, qui sont sans doute différents pour toi.


Ubuntu Rocks

Hors ligne

#4 15/06/2007 11:09:30

flipflip
Membre
Inscription : 15/06/2007
Messages : 2

Re : Comment faire un formulaire avec Zite

j'étais bien en édition source comme indiqué au début du poste smile d'ailleurs j'ai désactivé TinyMCE.

Hors ligne

#5 15/06/2007 11:29:05

Renaud
Membre
Inscription : 30/01/2007
Messages : 306

Re : Comment faire un formulaire avec Zite

Alors j'espère que tu éditais le source en passant par "EDITER"... car ce lien là fonctionne comme s'il y avait le wysiwyg, alors qu'en passant par "SOURCE" le formulaire devrait être préservé. Confirme-moi ça, car sinon j'ai un autre soucis à régler.

Je suis en train de modifier zite pour que "EDITER" préserve le </textarea> (et le reste) lorsqu'il est utilisé sans wysiwyg, comme "SOURCE". Je remplace aussi les short open tags, pour que l'install soit moins problématiques pour les utilisateurs de certains hébergeurs et de distributions de php genre easyphp et compagnie). Dans la même veine, la réécriture d'URL sera désactivée par défaut. L'objectif est que zite marche où qu'on le mette sans trop se poser de questions.


Ubuntu Rocks

Hors ligne

#6 16/06/2007 13:15:40

doume
Membre
Inscription : 12/06/2007
Messages : 29

Re : Comment faire un formulaire avec Zite

Je viens d'installer le formulaire de Renaud sur mon site de test chez Free et il est parfaitement fonctionnel (la fonction PHP mail() est activée sur leurs serveurs, pour les autres hébergeurs gratuits il faut d'abord vérifier si c'est aussi le cas).
S'agissant d'une page de service peu sujette à des évolutions j'ai verrouillé les trois pages concernées après installation, reprise de quelques libellés d'affichage en mode source et tests en ligne, ceci pour éviter toute erreur de manipulation ultérieure genre modification malencontreuse du permalink des trois pages dédiées à cette fonction.
Note : pour ceux qui n'ont jamais installé un formulaire sur un site il faut savoir que sauf à avoir installé un serveur SMTP sur votre PC le formulaire ne fonctionnera pleinement (envoi effectif des messages) qu'une fois en ligne sur votre compte FTP distant.

J'ai eu un peu de mal pour passer en mode edition PHP source, mais finalement c'est assez intuitif :
. Dans le menu admin/PAGE cliquer la page à modifier,
. dans le bandeau supérieur clicker sur PHP puis sur ENREGISTRER pour activer et enregistrer le mode PHP sur cette page,
. dans le bandeau supérieur clicker sur SOURCE pour activer l'édition en code source.

Avant d'éditer les pages en mode source ll faut penser à noter le permalink des trois pages "Me contacter", "Formulaire à  saisir" et "Merci de votre envoi" tels qu'ils apparaissent dans le menu Admin/PAGE et ensuite modifier en conséquence le code source des pages "Me contacter" et "Formulaire à  saisir" (bah oui j'ai fait bêtement l'erreur roll).
Bien sûr il faut aussi penser à remplacer l'adresse e-mail dans le code source de la page "Me contacter" sinon la boite de réception de Renaud risque de rapidement saturer wink

Dernière modification par doume (16/06/2007 13:37:57)


Zite CMS 0.6.2 Beta en test chez Free et chez OVH (Demo1G gratuit)
Serveur local XAMPP Lite 1.6.2 portable (ZIP) sous Windows 2000 Pro SP4
Firefox 2.0.0.4 + FireFTP + Web Developer + papier + crayon + gomme
Internet Explorer ? Uniquement sous la torture ;-)

Hors ligne

#7 06/09/2007 23:37:38

Vektrox
Membre
Lieu : Contres (41)
Inscription : 08/02/2007
Messages : 108

Re : Comment faire un formulaire avec Zite

Bonsoir

Une version du script php pour la vérification des champs serais pas mal par contre, quelqu'un connaitrait un moyen ou un  formulaire pour installer sur ZITE ?

Hors ligne

#8 10/09/2007 11:15:01

bmael
Membre
Lieu : Morbihan
Inscription : 08/06/2007
Messages : 128
Site Web

Re : Comment faire un formulaire avec Zite

Bonjour,
J'ai voulu faire le formulaire de Renaud, sur le site que je réalise actuellement : http://www.dacquin.fr/ZITE/ mais j'ai le code PHP dans la page contact au lieu du  formulaire. Comment ce fait-il ?
Site hébergé sur OnLine.net payant.

Hors ligne

#9 10/09/2007 18:38:43

Renaud
Membre
Inscription : 30/01/2007
Messages : 306

Re : Comment faire un formulaire avec Zite

en mode édition du source, as-tu bien coché la case qui dit que le contenu est du PHP ?


Ubuntu Rocks

Hors ligne

#10 10/09/2007 18:54:59

bmael
Membre
Lieu : Morbihan
Inscription : 08/06/2007
Messages : 128
Site Web

Re : Comment faire un formulaire avec Zite

Aïe !  c'est là que ça coince parce que je ne connais pas le PHP.
Si je dis que c'est du PHP et non HTML, il me dis error sur la ligne 1...
Bon, tant pis, je vais faire un formulaire simple sans page de remerciement (pas indispensable d'ailleurs).

Dernière modification par bmael (10/09/2007 18:55:22)

Hors ligne

#11 10/09/2007 21:08:47

Vektrox
Membre
Lieu : Contres (41)
Inscription : 08/02/2007
Messages : 108

Re : Comment faire un formulaire avec Zite

Salut

La page de remerciement permet quand meme de faire voir que le formulaire est bien parti, c'est plutot pratique je trouve.

Hors ligne

#12 11/09/2007 09:46:57

bmael
Membre
Lieu : Morbihan
Inscription : 08/06/2007
Messages : 128
Site Web

Re : Comment faire un formulaire avec Zite

Bon, alors je vais avoir besoin d'un coup de main.
Voilà mon formulaire :

<h1>Adressez-nous
votre demande par mail :<br /></h1><form
style="left: 50%; position: relative; width: 300px; margin-left: -150px;"
name="formulaire" action="envoi.php" method="post">
<label for="nom">Votre nom</label>
<br /><input name="nom"
style="border-width: 0px; width: 300px; background-color: rgb(204, 204, 204);"
type="text" /><br /><div style="text-align: right;"></div><label
for="email">Votre Email</label><br /><input
name="email"
style="border-width: 0px; width: 300px; background-color: rgb(204, 204, 204);"
type="text" /><br /><br />
<label for="message">Votre message</label><br /><textarea
name="message"
style="border-width: 0px; width: 300px; background-color: rgb(204, 204, 204);"></textarea>
<br /><br /><div style="text-align: right;"><input
name="Submit" value="Envoyer" type="submit" /></div></form>

Et voilà le fichier envoi.php :
<?
$adresse="bmael@eikona.fr";
$from="From: $prenom $nom<$email>\r\n";
$from.="Reply-To: $prenom $nom <$email>\n";
$from.="X-priority:3\n";
$texte="<html>";
$texte.="$texte";
$texte.="</html>";
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html"; 
if (mail($adresse,$sujet,$texte,$from))
echo("<center><font color=green><br><br><br><h2>Formulaire envoyé ! Je vous répondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir à l'accueil</a></center>");
else
echo("<center><font color=red><br><br><br><h2>Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>");
?>

Ca envoi bien mais le mail est vide. Comment ce fait-il ? Il y a bien le nom de la personne mais rien dans le corps du message.

Hors ligne

#13 11/09/2007 09:56:11

Vektrox
Membre
Lieu : Contres (41)
Inscription : 08/02/2007
Messages : 108

Re : Comment faire un formulaire avec Zite

Renaud est en train de bosser sur le formulaire un peu de patience...

Hors ligne

#14 11/09/2007 10:01:37

bmael
Membre
Lieu : Morbihan
Inscription : 08/06/2007
Messages : 128
Site Web

Re : Comment faire un formulaire avec Zite

C'est vrai ? Super ! Merci Renaud ;-)

Hors ligne

#15 11/09/2007 16:56:49

Renaud
Membre
Inscription : 30/01/2007
Messages : 306

Re : Comment faire un formulaire avec Zite

bmael, en attendant mon additif (qui aidera a valider les champs du formulaire), pour faire marcher le tiens colle toi de plus près au tutoriel : l'action de ton form ne doit pas être un script externe envoi.php, mais une page interne dans laquelle tu rajoute le code php. Relis bien, tu devrais y arriver.

Sinon il est possible d'utiliser un script externe envoi.php, qui se chargerait de l'envoi et renverait ensuite à la page de remerciement via un header('Location: pagedereponse.html');


Ubuntu Rocks

Hors ligne

#16 11/09/2007 17:20:40

bmael
Membre
Lieu : Morbihan
Inscription : 08/06/2007
Messages : 128
Site Web

Re : Comment faire un formulaire avec Zite

J'ai mis un script externe envoi.php  Ca a l'air de marcher sauf que je reçois un mail vide.
Je veux bien essayer en mettant le script dans une nouvelle page PHP du ZITE
Merci bien en tout cas

Hors ligne

#17 13/09/2007 17:23:50

bmael
Membre
Lieu : Morbihan
Inscription : 08/06/2007
Messages : 128
Site Web

Re : Comment faire un formulaire avec Zite

Je l'ai fait !
Merci à vous pour vos encouragements.
Voici le formulaire :

<form
name="formulaire" method="post" action="index.php?perma=contactphp">
<p><label for="nom">Votre nom</label>
<br /><input name="nom"
style="border-width: 0px; width: 300px; background-color: rgb(204, 204, 204);"
type="text" /></p><p><label
for="email">Votre Email</label><br /><input
name="email"
style="border-width: 0px; width: 300px; background-color: rgb(204, 204, 204);"
type="text" /></p><p>
<label for="message">Votre message</label><br /><textarea
name="message"
style="border-width: 0px; width: 300px; background-color: rgb(204, 204, 204);"></textarea></p>
<br /><br /><div style="text-align: right;"><input
name="Submit" value="Envoyer" type="submit" /></div></form>

et le php :

<?
if (count($_POST)) {
   // Formulaire reçu...
   // On envoie les infos
   $msg = '';
   foreach($_POST as $k => $v) $msg .= "\n$k : $v";
   mail('bmael@free.fr', 'Message de mon zite', $msg);
   // On affiche merci
   print $zite->get_content(1189414079, true);
} else {
   // On affiche le formulaire
   print $zite->get_content(formulaire-contact, true);
}
?>

Et ça marche bien.

Hors ligne

#18 13/09/2007 20:48:50

Vektrox
Membre
Lieu : Contres (41)
Inscription : 08/02/2007
Messages : 108

Re : Comment faire un formulaire avec Zite

Bravo a toi bmael...
Moi j'attend l'additif de Renaud, voir de quoi il va être fait ....

Hors ligne

#19 18/10/2007 17:35:51

rohirrim
Membre
Inscription : 02/07/2007
Messages : 25

Re : Comment faire un formulaire avec Zite

ben, moi le formulaire standard, il ne marche pas... pourtant j'ai tout suivi les instructions, comme demandé...
mon message d'erreur c'est :"Parse error: parse error, unexpected $ in /var/www/heberges/colleges/cahingt/cdi/zdata/1151951287.txt on line 1"

evidemment, dans le code j'ai bien remplacé les noms de fichiers de l'exemple par les noms de fichiers de mon site, je l'ai bien fait en mode source et j'ai bien enregistré en php

qu'est-ce que j'aurai bien pu oublier ? le site : http://colleges.ac-rouen.fr/cahingt/cdi/

merci d'avance

Hors ligne

#20 18/10/2007 20:49:44

Renaud
Membre
Inscription : 30/01/2007
Messages : 306

Re : Comment faire un formulaire avec Zite

ben... mets nous donc les 5 premières lignes de zdata/1151951287.txt qu'on regarde


Ubuntu Rocks

Hors ligne

#21 19/10/2007 08:53:42

rohirrim
Membre
Inscription : 02/07/2007
Messages : 25

Re : Comment faire un formulaire avec Zite

<?
  if (count($_POST)) {
      // Formulaire reçu...   on envoie les infos
      $msg = '';
      foreach($_POST as $k => $v) $msg .= "\n$k : $v";
      mail('mon.mail_ at _ ac-rouen.fr', 'Message de mon zite', $msg);
     // On affiche merci
     print $zite->get_content(1191222985, true);
  } else {
     // On affiche le formulaire
     print $zite->get_content(1191222666, true);
  }
?>

nb : ici, j'ai masqué le mail pour le spamm, sinon dans le fichier d'origine il est "aux normes"

Hors ligne

#22 19/10/2007 12:08:17

Renaud
Membre
Inscription : 30/01/2007
Messages : 306

Re : Comment faire un formulaire avec Zite

ben je vois aucune erreur... faudrait m'envoyer par mail le fichier tel qu'il est sur le serveur, ou mieux encore les codes d'accès à l'admin du zite (à changer ensuite).


Ubuntu Rocks

Hors ligne

#23 19/10/2007 12:24:34

rohirrim
Membre
Inscription : 02/07/2007
Messages : 25

Re : Comment faire un formulaire avec Zite

est-ce que ce ne serait pas une question de chmod ?

Hors ligne

#24 19/10/2007 13:03:59

Renaud
Membre
Inscription : 30/01/2007
Messages : 306

Re : Comment faire un formulaire avec Zite

a priori non, le parser php reçoit bien le fichier mais y détecte une erreur


Ubuntu Rocks

Hors ligne

#25 20/10/2007 23:00:53

mapaje
Membre
Inscription : 09/06/2007
Messages : 81

Re : Comment faire un formulaire avec Zite

bonsoir Rohirrim,

J'ai fait un copier coller de tes lignes de code en changeant les infos idoines et no problème, celà fonctionne en local sans soucis.
Creuse du coté de ton hébergeur? Essaie à tout hasard de mettre php après la balise d'entrée. Je sais qu'une fois c'est ce qui m'a causé soucis....
Tiens nous au courant!
A plus
Jean Pierre

Hors ligne

Pied de page des forums