Création site de Gestion de contenu , de Commerce électronique, (SPIP,osCommerce, Mambo/Joomla)

  [ 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 ]
 


Copyright © Création site de Gestion de contenu , de Commerce électronique, (SPIP,osCommerce, Mambo/Joomla) 2003