[ Accueil ] [ Retour
à l'article ]
patch inc_formulaire.php3
http://www.bzctoons.net/article.php3?id_article=39
dimanche
6 juillet 2003, par Bzc ToOn'S
Voici un patch de la fonction formulaire_ecrire_auteur() situé dans inc_formulaire.php3. Ce patch corrige ou améliore diverses petites choses : lorsqu'on valide l'envoi alors que le champ 'message' est vide, le formulaire est réaffiché sans aucun message d'erreur. le code de validation de l'email ne fonctionnait pas il manquait l'intutilé du champ 'message' (pas bien grave mais j'y était ).
Code de la fonction email_valide() situé dans ecrire/inc_version.php3.
function email_valide($adresse) {
$adresses = explode(',', $adresse);
if (is_array($adresses)) {
while (list(, $adresse) = each($adresses)) {
// RFC 822
if (!eregi('^([-_0-9a-z\.]+)\@([-_0-9a-z\.]+)\.([-_0-9a-z]+)?$', trim($adresse)))
{
return false;
}
}
return true;
}
return false;
}
Code de la fonction formulaire_ecrire_auteur() situé dans inc-formaulaires.php3.
function formulaire_ecrire_auteur($id_auteur, $email_auteur) {
global $flag_wordwrap;
include_ecrire("inc_texte.php3") ;
include_ecrire("inc_filtres.php3") ;
include_ecrire("inc_mail.php3") ;
global $passages;
$passages++;
$affiche_formulaire = true;
if ($GLOBALS['texte_message_auteur'.$id_auteur]) {
if ($GLOBALS['sujet_message_auteur'.$id_auteur] == "")
$erreur .= erreur(_T('form_prop_indiquer_sujet')) ;
else if (! email_valide($GLOBALS['email_message_auteur'.$id_auteur]) )
$erreur .= erreur(_T('form_prop_indiquer_email'));
else if ($GLOBALS['valide_message_auteur'.$id_auteur]) { // verifier hash ?
$GLOBALS['texte_message_auteur'.$id_auteur] .= "\n\n-- Envoi via le site "
.lire_meta('nom_site')
." (".lire_meta('adresse_site')
."/) --\n";
envoyer_mail($email_auteur,
$GLOBALS['sujet_message_auteur'.$id_auteur],
$GLOBALS['texte_message_auteur'.$id_auteur],
$GLOBALS['email_message_auteur'.$id_auteur],
"X-Originating-IP: ".$GLOBALS['REMOTE_ADDR']);
$erreur .= erreur(_T('form_prop_message_envoye'));
$affiche_formulaire = false;
} else { //preview
echo "<p><div class='spip_encadrer'>Sujet : <b>"
.$GLOBALS['sujet_message_auteur'.$id_auteur]."</b></div>";
if ($flag_wordwrap)
$GLOBALS['texte_message_auteur'.$id_auteur] = wordwrap($GLOBALS['texte_message_auteur'.$id_auteur]);
echo "<pre>".entites_html($GLOBALS['texte_message_auteur'.$id_auteur])."</pre>";
$affiche_formulaire = false;
$link = $GLOBALS['clean_link'];
$link->addVar('email_message_auteur'.$id_auteur, $GLOBALS['email_message_auteur'.$id_auteur]);
$link->addVar('sujet_message_auteur'.$id_auteur, $GLOBALS['sujet_message_auteur'.$id_auteur]);
$link->addVar('texte_message_auteur'.$id_auteur, $GLOBALS['texte_message_auteur'.$id_auteur]);
$link->addVar('valide_message_auteur'.$id_auteur, 'oui');
echo $link->getForm('POST');
echo "<DIV ALIGN=\"right\"><INPUT TYPE=\"submit\" "
."NAME=\"Confirmer\" "
."CLASS=\"spip_bouton\" VALUE=\""
._T('form_prop_confirmer_envoi')."\">";
echo "</DIV></FORM>";
}
}
else
{
$erreur .= erreur(_T('form_indiquer_message'));
}
if ($erreur)
if ($passages > 1)
echo "<p><div class='spip_encadrer'><h3 class='spip'>"
._T('forum_titre_erreur')
."</h3><div class='reponse_formulaire'>$erreur</div></div></p>\n";
if ($affiche_formulaire) {
$retour = $GLOBALS['REQUEST_URI'];
$link = $GLOBALS['clean_link'];
echo $link->getForm('POST');
echo "<INPUT TYPE=\"hidden\" NAME=\"passages\" VALUE=\"$passages\">\n";
echo "<div class='spip_encadrer'><P><B>"._T('form_pet_votre_email')."</B><BR>";
echo "<INPUT TYPE=\"text\" CLASS=\"forml\" NAME=\"email_message_auteur$id_auteur\" VALUE=\""
.entites_html($GLOBALS['email_message_auteur'.$id_auteur])."\" SIZE=\"30\"></P>\n";
echo "<P><B>"._T('form_prop_sujet')."</B><BR>";
echo "<INPUT TYPE=\"text\" CLASS=\"forml\" NAME=\"sujet_message_auteur$id_auteur\" VALUE=\""
.entites_html($GLOBALS['sujet_message_auteur'.$id_auteur])."\" SIZE=\"30\"></P>\n";
echo "<P><B>"._T('form_pet_message_commentaire')."</B><BR>";
echo "<TEXTAREA NAME='texte_message_auteur$id_auteur' ROWS='10' CLASS='forml' COLS='40' wrap=soft>"
.entites_html($GLOBALS['texte_message_auteur'.$id_auteur])."</textarea></P></div><br />\n";
echo "<DIV ALIGN=\"right\"><INPUT TYPE=\"submit\" NAME=\"Valider\" CLASS=\"spip_bouton\" VALUE=\""
._T('form_prop_envoyer')."\">";
echo "</DIV></FORM>";
}
}
|
Documents liés
ECRIRE/INC_VERSION.PHP3 (http://www.bzctoons.net/IMG/zip/inc_version.zip)
Zip - 6.5 ko
Remplacer ecrire/inc_version.php3 par le fichier contenu dans l'archive.
$spip_version = 1.702 ;
ECRIRE/LANG/PERSO.PHP3 (http://www.bzctoons.net/IMG/zip/perso-2.zip)
Zip - 205 octets
Ce fichier permet de rajouter des localisations personnalisés.
Si vous en avez déjà un completez le mais ne l'ecrasez pas !
INC-FORMULAIRES.PHP3 (http://www.bzctoons.net/IMG/zip/inc-formulaires.zip)
Zip - 4 ko
Remplacer inc-formulaires.php3 par le fichier contenu dans l'archive.
$spip_version = 1.702 ;
[ Accueil ] [ Retour
à l'article ] [ Haut ]
|