Vous n'êtes pas identifié(e).
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.
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
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
Vous avez une idée ?
Merci d'avance.
Dernière modification par flipflip (15/06/2007 10:32:53)
Hors ligne
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
j'étais bien en édition source comme indiqué au début du poste d'ailleurs j'ai désactivé TinyMCE.
Hors ligne
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
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 ).
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
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
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
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
en mode édition du source, as-tu bien coché la case qui dit que le contenu est du PHP ?
Ubuntu Rocks
Hors ligne
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
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
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
Renaud est en train de bosser sur le formulaire un peu de patience...
Hors ligne
C'est vrai ? Super ! Merci Renaud ;-)
Hors ligne
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
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
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
Bravo a toi bmael...
Moi j'attend l'additif de Renaud, voir de quoi il va être fait ....
Hors ligne
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
ben... mets nous donc les 5 premières lignes de zdata/1151951287.txt qu'on regarde
Ubuntu Rocks
Hors ligne
<?
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
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
est-ce que ce ne serait pas une question de chmod ?
Hors ligne
a priori non, le parser php reçoit bien le fichier mais y détecte une erreur
Ubuntu Rocks
Hors ligne
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