Le 20 mai 2010 00:51, bobof <bof-bof@sfr.fr> a écrit :
bonsoir,
j’ai pas tout compris désolé !
Jeannot a écrit :
Bonjour,
S’inspirer des exemples déja existants…
Dans vérifier:
if (!_request(‹ confirmer ›) AND !count($erreurs))
$erreurs[‹ previsu ›]=’ ';
Dans le fichier html:
[(#ENV*{erreurs}|table_valeur{previsu}|oui)
Ici ce que tu veut prévisualiser, avec un bouton:
ici entre les crochets de la balise #ENV faut répéter touts les etc … du formulaire en plus du submit ?
Non, juste tes variables #ENV voulues, exemple: [
(#ENV{nom})
] à placer avant le submit bien sur…
]
Le prévisu s’affiche lorsqu’il n’y a plus d’erreurs dans le formulaire. Ce dernier reste toujours visible pour pouvoir modifier à tout moment.
Pour résumer :
#ACTION_FORMULAIRE{#ENV{action}}
[(#ENV*{erreurs}|table_valeur{previsu}|oui)
[(#ENV{nom}) ][(#ENV{prenom})]
etc...
]
<:cvt_coordonnees:>
<:cvt_nom:>*[
(#ENV**{erreurs}|table_valeur{nom})]
etc...
et dans la fonction vérifier j’ai mis comme ceci :
function formulaires_contact_verifier_dist(){
$erreurs = array();
// verifier que les champs obligatoires sont bien la :
foreach(array(‹ nom ›,‹ prenom ›,‹ email ›,‹ sujet ›,‹ texte ›) as $obligatoire)
if (!_request($obligatoire)) $erreurs[$obligatoire] = ‹ Champ obligatoire ›;
if (preg_match(‹ \d ›,_request(‹ nom ›))) { $erreurs[‹ nom ›] = ‹ Pas de chiffre dans le nom ›;}
if (preg_match(‹ \d ›,_request(‹ prenom ›))) { $erreurs[‹ prenom ›] = ‹ Pas de chiffre dans le prénom ›;}
// verifier que si un email a été saisi, il est bien valide :
include_spip(‹ inc/filtres ›);
if (_request(‹ email ›) AND !email_valide(_request(‹ email ›)))
$erreurs[‹ email ›] = ‹ Cette adresse email n'est pas valide ›;
// verification par nospam
include_spip(‹ inc/texte ›);
// si nospam est present on traite les spams
if (include_spip(‹ inc/nospam ›)) {
$caracteres = compter_caracteres_utiles(_request(‹ texte ›));
// moins de 10 caracteres sans les liens = spam !
if ($caracteres < 10){$erreurs[‹ texte ›] = ‹ Votre texte doit contenir 10 caractères minimum. ›;}
// on analyse le nom prenom sujet
$infos_nom = analyser_spams(_request(‹ nom ›));
$infos_prenom = analyser_spams(_request(‹ prenom ›));
$infos_sujet = analyser_spams(_request(‹ sujet ›));
// si un lien dans le nom prenom sujet = spam !
if ($infos_nom[‹ nombre_liens ›] > 0)$erreurs[‹ nom ›] = ‹ Hyperlien interdit dans le nom ›;
if ($infos_prenom[‹ nombre_liens ›] > 0)$erreurs[‹ prenom ›] = ‹ Hyperlien interdit dans le prénom ›;
if ($infos_sujet[‹ nombre_liens ›] > 0)$erreurs[‹ sujet ›] = ‹ Hyperlien interdit dans le sujet ›;
// on analyse le texte
$infos_texte = analyser_spams(_request(‹ texte ›));
if ($infos_texte[‹ nombre_liens ›] > 0) {
// si un lien a un titre de moins de 3 caracteres = spam !
if ($infos_texte[‹ caracteres_texte_lien_min ›] < 3) {
$erreurs[‹ texte ›] = ‹ Votre texte contient un hyperlien avec un titre non conforme. ›;
}
// si le texte contient plus de trois lien = spam !
if ($infos_texte[‹ nombre_liens ›] >= 3)
$erreurs[‹ texte ›] = ‹ Deux hyperliens maximum dans votre texte ›;
}
}
if (count($erreurs))
$erreurs[‹ message_erreur ›] = ‹ Votre saisie contient des erreurs ! ›;
// previsu
if (!_request(‹ confirmer ›) AND !count($erreurs))
$erreurs[‹ previsu ›]=’ ';
return $erreurs;
}
ok: dès qu’il n’y plus d’erreurs, le bloc prévisu s’affiche. On peut alors cliquer sur confirmer (ou modifier directement le formulaire).
PS : y a du nospam dedans.
merci pour le coup de main cordialement
Désolé, pas trop d’expérience là dessus.
Jeannot