Vous n'êtes pas identifié(e).
Bonjour,
J'essaye de mettre le formulaire dans mon site, et lorsque je le met dans le code source :
- Dans Contacts : seuls "Votre nom" "Votre email "Votre message" en texte apparait (sans possibilité de rentrer quoi que ce soit
- Dans Formulaire : une fois entré le code de renaud (le premier) entré en code source voici ce qui apparait "$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); } ?> "
Pouvez vous m'expliquer pas à pas la procédure ?
Merci
Hors ligne
Attention de mettre le code source en mode source et de ne plus retoucher le contenu de la page en mode édition. On perd ce qu'on a fait dans la source.
Pour le formulaire, merci de retirer l'adresse mail. Je me demande ce qu'elle fait là.
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.
Ben c'est tout bête, suffit de changer le fichier tinymce.php
Remplacer
<textarea style="width:100%;height:500px;" name="source" id="source"><?php echo str_replace($r_in, $r_out, $content) ?></textarea>
par
<div style="width:100%;height:500px;" name="source" id="source"><?php echo str_replace($r_in, $r_out, $content) ?></div>
Et d'ajouter les tags et options HTML dans extended_valid_elements
Exemple (incomplet): form[action|method|enctype],input[type|name|value|src|size|maxlength],textarea[name|cols|rows],...
ZiteCMS rocks !
Hors ligne
Bonjour,
J'ai le meme soucis que magda, j'entre bien le code en php, mais, en ligne, il apparait ceci dans la page
$v) $msg .= "n$k : $v"; mail('adresse e-mail', 'Message de mon zite', $msg); // On affiche merci print $zite->get_content(1228422225, true); } else { // On affiche le formulaire print $zite->get_content(1228422220, true); } ?>
par contre en local sur mon PC, le formaulaire apparait bien.
Quelqu'un a t-il la solution ?
Cordialement
JLD
Hors ligne
tu as bien coché que ta page contient du PHP et non du HTML ?
Ubuntu Rocks
Hors ligne
Bonsoir Renaud,
Oui, j'ai bien coché le Php avant d'ouvir en source (et après je ne revalide rien en mode édition)
Ce que je ne comprends pas, c'est qu'en local, le formulaire s'affiche bien. Cela peut venir de l'hébergeur ? (1&1)
Merci de ta réponse
JLD
Hors ligne
le plus simple serait me donner un accès à ton zite (par mail).
Ubuntu Rocks
Hors ligne
Voici mon formulaire:
dans la page Accueil:
<?
$to = "dest1, dest2, ...";
// Remplacer les dest1.... par l'adresse mail des destinataires du formulaire
$sujet = $_POST['sujet'];
if (count($_POST)) {
// Formulaire reçu...
// On envoie les infos
$msg = '';
foreach($_POST as $k => $v) $msg .= "\n$k : $v";
mail($to, $sujet, $msg);
// On affiche merci
print $zite->get_content(merci, true);
} else {
// On affiche le formulaire
print $zite->get_content(formulaire, true);
}
?>
Dans la page formulaire:
<h1>Formulaire de contact</h1>
<th colspan="2">Tous les champs sont obligatoires.</th><br><br>
<script type="text/javascript" src="verification_formulaire.js"></script>
//script qui vérifie la validité des mails et la présence de tou les champs obligatoires
<form action="contact.html" method="post" onsubmit="return valideForm()">
<table>
<tr><td class="info">Votre email : *</td><td class="champ"><input name="email" type="text" size="50"></td></tr>
<tr><td class="info">Confirmez votre email : *</td><td class="champ"><input name="email2" type="text" size="50" value="et oui encore une fois..."></td></tr>
<tr><td class="info">Sujet : *</td><td class="champ"><input name="sujet" type="text" size="50"></td></tr>
<tr>
<td class="contenu">Votre message*</td>
<td class="contenant"><textarea name="message" cols="50" rows="20"></textarea></td>
</tr>
<tr><th colspan="1">
<td class="lesboutons"><input type="reset" value="Annuler">
<input type="submit" value="Envoyer"></td></th>
</tr>
</table>
</form>
Il fonctionne très bien. C'est une adaptation pour zite de "contact.php" de aspirin:
http://aspirine.org/contact/
Mon seul souci c'est qu'avec la version d'aspirin, l'expéditeur du mail est l'adresse mail rentrée dans le formulaire par l'utilisateur, alors qu'avec les modif que j'ai faite, l'expéditeur du mail est mon serveur.
Comment faire sous zite pour que l'expéditeur du mail soit le mail entré dans le formulaire?
C'est plus pratique pour répondre!
Merci
Hors ligne
Personne ne peut m'aider?
Hors ligne
Il ne faut pas que l'expéditeur soit l'email entré dans le formulaire, c'est mal. Par contre tu peux faire en sorte que la réponse soit envoyé à cette adresse. Il suffit d'ajouter ceci avant l'appel à la fonction mail :
$headers = 'Reply-To: '.$_POST['email']."\n";
Puis tu modifie la fonction mail ainsi :
mail($to, $sujet, $msg, $headers);
Tu peux mettre d'autres en-têtes, mais avec discernement... et aussi tester que les 2 mails saisis soient les mêmes, valides, etc...
Ubuntu Rocks
Hors ligne
Merci!
La vérif de la validité du mail, et que les 2 soient identiques se fait par un petit script en validant le formulaire.
Hors ligne
Bonjour
J'ai beau faire et refaire ma page en faisant atention aux points cités auparavant, mais je n'arrive pas à afficher autre chose que :
$v) $msg .= "n$k : $vSOURCE"; mail('mon@mail.com', 'Message de mon zite', $msg); // On affiche merci print $zite->get_content(1166194279, true); } else { // On affiche le formulaire print $zite->get_content(1239725422, true); } ?>
Le code que j'utilise est le suivant :
<?
if (count($_POST)) {
// Formulaire reçu...
// On envoie les infos
$msg = '';
foreach($_POST as $k => $v) $msg .= "n$k : $vSOURCE"; mail('mon@mail.com', 'Message de mon zite', $msg);
// On affiche merci
print $zite->get_content(1166194279, true); }
else {
// On affiche le formulaire
print $zite->get_content(1239725422, true); }
?>
Par contre j'affiche parfaitement la page formulaire.
Je suis en local, je test et je prépare avant la mise en ligne
Comme d'autres réussissent, je voudrai bien savoir quel ce satané point que je foire !
Merci
Hors ligne
Bonjour
J'ai beau faire et refaire ma page en faisant atention aux points cités auparavant, mais je n'arrive pas à afficher autre chose que :
$v) $msg .= "n$k : $vSOURCE"; mail('mon@mail.com', 'Message de mon zite', $msg); // On affiche merci print $zite->get_content(1166194279, true); } else { // On affiche le formulaire print $zite->get_content(1239725422, true); } ?>
Le code que j'utilise est le suivant :
<?
if (count($_POST)) {
// Formulaire reçu...
// On envoie les infos
$msg = '';
foreach($_POST as $k => $v) $msg .= "n$k : $vSOURCE"; mail('mon@mail.com', 'Message de mon zite', $msg);
// On affiche merci
print $zite->get_content(1166194279, true); }
else {
// On affiche le formulaire
print $zite->get_content(1239725422, true); }
?>Par contre j'affiche parfaitement la page formulaire.
Je suis en local, je test et je prépare avant la mise en ligneComme d'autres réussissent, je voudrai bien savoir quel ce satané point que je foire !
Merci
chez moi non plus ça marche pas en local, mais en ligne c'est ok.
remplace les numéro en rouge par ceux de ta page "merci"
Hors ligne
Salut
Merci pour la réponse. Je verrais ça lors de la mise en ligne.
Pour le dernier permalien "Merci" je ne l'ai pas encore réalisé, c'est pour ça que le "numéro" n'est pas le bon !
En tout cas sur Zite depuis 2 jours, je m'éclate bien. Bravo Renaud.
Dernière modification par Laurent (14/04/2009 20:49:52)
Hors ligne
Le code que j'utilise est le suivant :
<?
if (count($_POST)) {
// Formulaire reçu...
// On envoie les infos
$msg = '';
foreach($_POST as $k => $v) $msg .= "n$k : $vSOURCE"; mail('mon@mail.com', 'Message de mon zite', $msg);
foreach($_POST as $k => $v) $msg .= "n$k : $vSOURCE"
le code exact est:
foreach($_POST as $k => $v) $msg .= "n$k : $v"
que vient faire SOURCE ici?
Hors ligne
Salut
SOURCE est venu s'intercaler lors de mes nombreux essai (je m'agace vite ), je ne l'avais même pas vu.
Mais ça ne change rien en local, je testerai à la mise en ligne.
Merci de ton aide.
Hors ligne
Salut à tous....
Je rebondis sur la discussion car je suis, moi aussi en train de créer un formulaire pour un site zite.
Apparemment en suivant vos indications tout roule... mon seul problème (et qui vient de mon incompétence en php) c'est que dans le mail qui est reçu après l'envoi du formulaire, tous les champs sont à la suite séparés par un "n" (ex de message reçu tel quel : nNom : TARTENPIONnPrénom : BobbynEmail : tartenpion@neuf.frnTéléphone : 04 xx xx xx xxnSon_message : jadorezitenSubmit : Envoyer)
et non l'un au dessus de l'autre ce qui serait tout de même plus propre !... (je vois même qu'il affiche la fonction submit !.... )... je viens donc faire appel à vos lumières, d'avance merci
Hors ligne
bonsoir,
perso j'ai récupéré le code donné par ambulance69 ici:
http://www.zitecms.org/zite/forum/viewt … 1705#p1705
je l'ai modifié pour remplacer la vérification du formulaire en javascript par une vérif en php et ça fonctionne très bien...
Mets nous le code (php, pas html) que tu as mis, il doit y avoir une petite erreur de ponctuaction quelque part... un " à la place d'un ' ou inversement...
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
Salut !...
merci pour ta réponse. Effectivement je crois avoir aussi utilisé le code de ambulance69 mais bon surement une erreur de ma part
Voila pour le code utilisé
<?
if (count($_POST)) {
// Formulaire reçu...
// On envoie les infos
$msg = '';
foreach($_POST as $k => $v) $msg .= "n$k : $v";
mail('un.ctou@gmail.com', 'Inscription - repreneur', $msg);
// On affiche merci
print $zite->get_content(merci, true);
} else {
// On affiche le formulaire
print $zite->get_content(repreneur_contact, true);
}
?>
merci
Hors ligne
Bonsoir,
Voila l'erreur:
<?
if (count($_POST)) {
// Formulaire reçu...
// On envoie les infos
$msg = '';
foreach($_POST as $k => $v) $msg .= "\n$k : $v";
mail('un.ctou@gmail.com', 'Inscription - repreneur', $msg);
// On affiche merci
print $zite->get_content(merci, true);
} else {
// On affiche le formulaire
print $zite->get_content(repreneur_contact, true);
}
?>
Mieux vaut poser une question et passer pour un con, que se taire et le rester...
Hors ligne
merci, je viens effectivement de m'en rendre compte de mon côté (bien que je ne sois pas fort en php, juste en lisant quelques infos sur des forums.... mais du coup, je comprends et me retrouve en face d'un second probleme incompréhensible celui ci....
lorsque je copie mon code en mode source et lorsque j'enregistre le fameux "\" disparait !.... j'ai fait plusieurs essais .... idem à chaque fois.... !
Rien ne bouge à l'enregistrement sauf ce "\" qui saute ???????
Du coup je me suis dit que je vais aller directement copier mon code dans le fichier txt correspondant dans le dossier zdata !...
c'est encore pire... il me supprime les <? et ?> du coup le code est inutilisable !...
un probleme de tiny ?????......
Hors ligne
Bon je me réponds à moi même... j'ai trouvé la solution pour contrer le problème... en mode source toujours, au lieu de mettre un seul "\", j'en met deux à la suite "\\" ....
du coup, quand j'enregistre, il en fait sauter un, et il en reste encore un opérationnel !...
mais ça ne m'explique toujours pas d'où vient le problème !...
Enfin si ça peut aider quelqu'un qui aurait le même souci ;-)
Hors ligne
Encore moi sorry !
Maintenant que tout marche à peu près bien, est ce que quelqu'un sait comment faire pour le formulaire une fois envoyé ne soit pas considéré comme spam (par gmail en particulier) ...
et si on peut changer le nom de l'envoyeur, en effet les mails arrivent comme ceci from : anonymous@nom_du_serveur.com et cet "anonymous" ne me plait pas vraiment !
Merci
Hors ligne
@berticoyote
Il me semble que les robots anti-spam font la chasse aux mails sans nom et mail de l'expéditeur. Il faudrait ajouter les champs dans le formulaire.
Moi j'ai un problème. Quelque soit la technique utilisée : celle de Renaud au début de ce poste ou celle de ambulance69, j'ai invariablement le même résultat : "Désolé, la page demandée n'existe pas" quand je valide le formulaire. Pour faire simple j'ai laissé "merci" pour le nom de la page "merci".
<?
if (count($_POST)) {
// Formulaire reçu...
// On envoie les infos
$msg = '';
foreach($_POST as $k => $v) $msg .= "\n$k : $v";
mail('bmael_at_eikona.fr', 'Message du site', $msg);
// On affiche merci
print $zite->get_content(merci, true);
} else {
// On affiche le formulaire
print $zite->get_content(formulaire, true);
}
?>
Hors ligne
j'ai utiliser un autre système proposer par fredo 42 http://www.zitecms.org/zite/forum/viewt … id=556&p=2
pour éviter que le mail soit reçus dans le spam : on appose un texte devant le sujet et on ajoute dans la gestion des filtres de votre messagerie que tous les messages ayant comme mot cle (ici exemple from zite ne soit pas considérer comme spam
de plus dans ce code il y à une obligation de tapez 2 fois sont mail ce qui évite de récupérer un mail erroné
et vous recevez le mail avec l'email de l'expéditeur
<?php
$destinataire = 'votre_mail@FAI';
$sujet = $_POST['sujet'];
$email=$_POST['email'];
$email2=$_POST['email2'];
$nom=$_POST['nom'];
$message=$_POST['message'];
$newsletter=$_POST['newsletter'];
$headers = 'From: <'.$email.'>' . "\r\n";
$messerr='';
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
$messerr=$messerr."Adresse mail considérée comme NON valide.".'<br>';
}
if ($email!=$email2) {
$messerr=$messerr."Les 2 adresses mails ne sont pas identiques.".'<br>';
}
if ($sujet=='') {
$messerr=$messerr."Merci de mettre un sujet.".'<br>';
}
if ($message=='') {
$messerr=$messerr."Le but de cette page est d'envoyer un message!! Alors mettez-en un! Merci.";
}
if ($nom=='') {
$messerr=$messerr."Merci d'indiquer votre nom.";
}
if (isset($_POST['envoi']))
{
if ($messerr == '')
{
$sujet = "texte pour filtre ex : from zite: " .html_entity_decode($sujet);
$message = html_entity_decode($message);
$message = str_replace('\'',"\'",$message);
$message = str_replace('',"\'",$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = "message de ".$nom."\n".$message;
$message = "newsletter ".$newsletter."\n".$message;
if (mail($destinataire, $sujet, $message, $headers))
{
echo "L'envoi du mail a enfin réussi!!! BRAVO."."\n";
}
else
{
echo "L'envoi du mail a échoué, veuillez réessayer SVP."."\n";
}
}
else
{
echo '<h3><font color=red>'.$messerr.'</font></h3>';
}
}
if (($messerr) || (!isset($_POST['envoi'])))
{
// afficher le formulaire
echo ' <h1>Formulaire de contact</h1>'."\n";
echo '<th colspan="2">Tous les champs sont obligatoires.</th><br><br>'."\n";
echo '<form action="" method="post" >'."\n";
echo '<table>'."\n";
echo ' <tr><td class="info">Votre email : </td><td class="champ"><input name="email" type="text" size="66"></td></tr>'."\n";
echo ' <tr><td class="info">Confirmez votre email : </td><td class="champ"><input name="email2" type="text" size="66" value="et oui encore une fois..."></td></tr>'."\n";
echo ' <tr><td class="info">Votre Nom : </td><td class="champ"><input name="nom" type="text" size="66"></td></tr>'."\n";
echo ' <tr><td class="info">Sujet : </td><td class="champ"><input name="sujet" type="text" size="66"></td></tr>'."\n";
echo ' <tr>'."\n";
echo ' <td class="contenu">Votre message</td>'."\n";
echo ' <td class="contenant"><textarea name="message" cols="50" rows="20"></textarea></td></tr>'."\n";
echo ' <tr><th colspan="1">'."\n";
echo ' <td class="lesboutons"><input type="reset" value="Annuler">'."\n";
echo ' <input type="submit" name="envoi" value="Envoyer"></td></th></tr>'."\n";
echo '</table>
<p><input type="checkbox" name="newsletter" id="newsletter" /> <label for="newsletter">souhaitez vous recevoir notre newsletter</label></p></form>'."\n";
}
?>
en espérant que ca aide
un zite+ associatif http://asso.gard.a.toi.free.fr
création de site internet dans le Gard et Ardèche http://www.creation-site-internet-gard.com/
Hors ligne