Ajouter un captcha au formulaire register de joomla 1.5

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Ajouter un captcha au formulaire register de joomla 1.5

    Edite :
    Pour éviter à tous de longue lecture voici le lien des fichiers à utiliser :
    Composants Contact et User j!1.57
    dernières version disponible mise à jour par Thorhax que je remercie beaucoup pour avoir mis ses compétences au service de la communauté joomla.

    IMPORTANT : Tous les utilisateurs de joomla 1.5.x doivent passer en version joomla 1.5.7 [Wovusani] pour des raison de sécurité.
    Bonjour,

    Voila je voudrais mètre en place un appelle de la fonction captcha du plugin bigocaptcha.

    J'ai trouver le fichier à modifier :
    Code:
    <?php // no direct access
    defined('_JEXEC') or die('Restricted access'); ?>
    <script type="text/javascript">
    <!--
    	Window.onDomReady(function(){
    		document.formvalidator.setHandler('passverify', function (value) { return ($('password').value == value); }	);
    	});
    // -->
    </script>
    
    <?php
    	if(isset($this->message)){
    		$this->display('message');
    	}
    ?>
    
    <form action="<?php echo JRoute::_( 'index.php?option=com_user' ); ?>" method="post" id="josForm" name="josForm" class="form-validate">
    
    <div class="componentheading">
    	<?php echo JText::_( 'Registration' ); ?>
    </div>
    
    <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane">
    <tr>
    	<td width="30%" height="40">
    		<label id="namemsg" for="name">
    			<?php echo JText::_( 'Name' ); ?>:
    		</label>
    	</td>
      	<td>
      		<input type="text" name="name" id="name" size="40" value="<?php echo $this->user->get( 'name' );?>" class="inputbox required" maxlength="50" /> *
      	</td>
    </tr>
    <tr>
    	<td height="40">
    		<label id="usernamemsg" for="username">
    			<?php echo JText::_( 'Username' ); ?>:
    		</label>
    	</td>
    	<td>
    		<input type="text" id="username" name="username" size="40" value="<?php echo $this->user->get( 'username' );?>" class="inputbox required validate-username" maxlength="25" /> *
    	</td>
    </tr>
    <tr>
    	<td height="40">
    		<label id="emailmsg" for="email">
    			<?php echo JText::_( 'Email' ); ?>:
    		</label>
    	</td>
    	<td>
    		<input type="text" id="email" name="email" size="40" value="<?php echo $this->user->get( 'email' );?>" class="inputbox required validate-email" maxlength="100" /> *
    	</td>
    </tr>
    <tr>
    	<td height="40">
    		<label id="pwmsg" for="password">
    			<?php echo JText::_( 'Password' ); ?>:
    		</label>
    	</td>
      	<td>
      		<input class="inputbox required validate-password" type="password" id="password" name="password" size="40" value="" /> *
      	</td>
    </tr>
    <tr>
    	<td height="40">
    		<label id="pw2msg" for="password2">
    			<?php echo JText::_( 'Verify Password' ); ?>:
    		</label>
    	</td>
    	<td>
    		<input class="inputbox required validate-passverify" type="password" id="password2" name="password2" size="40" value="" /> *
    	</td>
    </tr>
    <tr>
    <td>
    C'est ici que je voudrais ajouter mon appelle à bigocaptcha
    </td>
    </tr>
    <tr>
    	<td colspan="2" height="40">
    		<?php echo JText::_( 'REGISTER_REQUIRED' ); ?>
    	</td>
    </tr>
    </table>
    <button class="button validate" type="submit"><?php echo JText::_('Register'); ?></button>
    <input type="hidden" name="task" value="register_save" />
    <input type="hidden" name="id" value="0" />
    <input type="hidden" name="gid" value="0" />
    <input type="hidden" name="<?php echo JUtility::getToken(); ?>" value="1" />
    </form>
    Maintenant me reste juste à savoir quoi rajouter comme code pour faire correctement l'appelle à ce formidable plugin
    Et oui je sais pas encore tout faire..
    Merci d'avance pour votre aide. Car j'en est marre des robots spam qui s'enregistre

    Voila une piste

    Examples (Using Trigger):
    Displaying an image:

    In order to show the image, your component is used to build the data and display to user. The recommended way is to implement the following code in your controler class:

    Code:
            function displayimg()
            {	
                global $mainframe;    
                // By default, just display an image
                $document = &JFactory::getDocument();
                $doc = &JDocument::getInstance('raw');
                // Swap the objects
                $document = $doc;
    	    $mainframe->triggerEvent('onCaptcha_display', array());
    	}
    This will produce a raw output of the image. When displaying your form, you would then just call your own component with &task=displayimg appending the url:
    Code:
    	    echo "<form method='post'>";
    	    echo "<img src='/index.php?option=com_freecap&task=displayimg'><BR>";
    	    echo "<input type='text' name='word'><BR>";
    	    echo "<input type='submit'>";
    Confirming the word:

    A simple way to confirm the word would be the following code (Assuming the word is given via the post variable "word"):
    Code:
                global $mainframe;
                $return = false;
                $word = JRequest::getVar('word', false, '', 'CMD');
                $mainframe->triggerEvent('onCaptcha_confirm', array($word, &$return));
                if ($return) {
                    echo "You got it right<BR><BR>";
                }
    Seulement voila, je comprend pas bien l'anglais donc j'ai vraiment du mal à comprendre ce qu'il faut faire, mais je sais que je suis pas loin de la solution.

    J'ai trouver cette information ici :
    http://www.ostlabs.com/our-software/...igits/captcha/
    Dernière édition par theking83 à 20/09/2008, 10h34
    Cordialement,
    Theking83
    Webmaster
    www.ltdw.net
    Pas de support par MP je réponds aux questions exclusivement posées sur le forum.

  • #2
    Moi j'aimerais bien empêcher les spammeurs de s'enregistrer sur mon site. L'auteur du composant Bigo Captcha a fourni un patch et document explicatif en anglais pour mettre un captcha sur le composant com_contact, j'espère que c'est applicable sur com_registrer avec un peu de chance.

    http://www.joomla.com.br/blog/2008/0...act-component/

    j'essaierai demain de voir modifier tout cela pour voir si cela marche, j'espère que cela t'aidera

    Commentaire


    • #3
      theking83 c'est une bonne idée cependant le post xillibit doit répondre à ton attente ICI

      edit : afin de ne pas induire en erreur les lecteurs de ce sujet, j'ai enlevé les les liens et informations périmées d'explication qui étaient établies dans cette réponse.
      Dernière édition par Thorhax à 13/04/2008, 17h19
      adaptations|conceptions

      Commentaire


      • #4
        Merci , c'est justement ce que je cherchais

        Par contre tout fonctionne, sauf que avant le formulaire du contact j'ai un affichage bizarre, je ne sais pas si c'est à cause du composant bigo captcha :

        Code:
        JParameter Object ( [_raw] => contact_icons=0 icon_address= icon_email= icon_telephone= icon_fax= icon_misc= show_headings=1 show_position=1 show_email=0 show_telephone=1 show_mobile=1 show_fax=1 bannedEmail= bannedSubject= bannedText= session=1 customReply=0 [_xml] => [_elements] => Array ( ) [_elementPath] => Array ( [0] => C:\wamp\www\Joomla_1.5_final\libraries\joomla\html\parameter\element ) [_defaultNameSpace] => _default [_registry] => Array ( [_default] => Array ( [data] => stdClass Object ( [contact_icons] => 0 [icon_address] => [icon_email] => [icon_telephone] => [icon_fax] => [icon_misc] => [show_headings] => 1 [show_position] => 1 [show_email] => 0 [show_telephone] => 1 [show_mobile] => 1 [show_fax] => 1 [bannedEmail] => [bannedSubject] => [bannedText] => [session] => 1 [customReply] => 0 [show_contact_list] => 0 [show_category_crumb] => 0 [show_page_title] => 1 [menu_image] => -1 [secure] => 0 [page_title] => Contacts [page_description] => Joomla! - le portail dynamique et système de gestion de contenu [show_name] => 1 [show_street_address] => 1 [show_suburb] => 1 [show_state] => 1 [show_postcode] => 1 [show_country] => 1 [show_webpage] => 1 [show_misc] => 1 [show_image] => 1 [allow_vcard] => 0 [use_captcha] => 1 [show_email_form] => 1 [show_email_copy] => 1 ) ) ) [_errors] => Array ( ) )

        Commentaire


        • #5
          voilà en pratique ce que ça donne sous joomla 1.5 dans le formulaire d'enregistrement

          http://www.silvertails.net/component...?task=register


          moi je peine un peu là car ça me renvoie une erreur , mais je vais trouver ça dans l'heure , j'espère
          adaptations|conceptions

          Commentaire


          • #6
            super ça marche ,,, j'ai plus qu'à paufiner tout ça maintenant
            adaptations|conceptions

            Commentaire


            • #7
              Tu as utilisé le patch com_contact ou tu as modifié les fichiers à la main ?
              Chez moi, ça me fait l'erreur bizarre...

              Je viens d'essayer de mettre un captcha pour la partie enregistrement, ça marche presque mis à part que l'image du captcha ne s'affiche pas
              Dernière édition par xillibit à 02/02/2008, 21h01

              Commentaire


              • #8
                edit :c bon ça marche !!!!! nickel

                j'ai bidouillé sec !!! purée le truc m'a pris un temps fou
                Dernière édition par Thorhax à 02/02/2008, 22h28
                adaptations|conceptions

                Commentaire


                • #9
                  Les changements pour le formulaire de contact com_contact

                  le plugin ICI il faut l'activer dans votre administration aussitôt installé...


                  pour commencer
                  pour afficher par radio_bouton , vous devez changer administrator/components/com_contact/contact_items.xml et ajouter un nouveau paramètre:

                  Code:
                  <param name="use_captcha" type="radio" default="1" label="Use Captcha" description="Enable Captcha verification">
                              <option value="0">No</option>
                              <option value="1">Yes</option>
                  </param>

                  seconde étape le contrôleur

                  ensuite nous devons ajouter une nouvelle tache au contrôleur et insérer la methode de vérification si l'utilisateur a bien rentré le bon code.donc en premier je devrai créer la fonction displaycaptcha() dans components/com_contact/controller.php:

                  Code PHP:
                     function displaycaptcha() { 
                          global 
                  $mainframe
                           
                          
                  $contactId JRequest::getVar('contact_id'0'''int'); 
                          
                  // load the contact details 
                          
                  $model    = &$this->getModel('contact'); 
                          
                  $qOptions['id'] = $contactId
                          
                  $contact        $model->getContact$qOptions ); 
                          
                  $params = new JParameter$contact->params ); 
                           
                          if (
                  $params->get('use_captcha')) {     
                              
                  $Ok null
                              
                  $mainframe->triggerEvent('onCaptcha_Display', array($Ok)); 
                              if (!
                  $Ok) { 
                                  echo 
                  "<br/>Erreur affichage du Captcha<br/>"
                              } 
                          } 
                               
                      } 

                  Comme vous pouvez voir, il appelle simplement l'événement de "Captcha_Display " (cela activera le plugin et montrera une image aléatoire ) si le param de "use_captcha" qui nous avons ajouté à notre com_contact juste est activé.

                  Une fois nous que avons la méthode du displaycaptcha, nous aurons besoin d'ajouter un _checkCaptcha () et changer l'original submit() méthode pour le rendre fonctionnel. nous allons effectuer ces changements aussi dans le controller.php:

                  Code PHP:
                  function _checkCaptcha() { 
                          global 
                  $mainframe
                    
                          
                  $contactId JRequest::getVar('id'0'''int'); 
                          
                  // load the contact details 
                          
                  $model    = &$this->getModel('contact'); 
                          
                  $qOptions['id'] = $contactId
                          
                  $contact        $model->getContact$qOptions ); 
                          
                  $params = new JParameter$contact->params ); 
                           
                          
                  // not using captcha! 
                          
                  if (!$params->get('use_captcha')) {  
                              return 
                  true
                          } 
                          
                  $return false
                          
                  $word JRequest::getVar('word'false'''CMD'); 
                          
                  $mainframe->triggerEvent('onCaptcha_confirm', array($word, &$return)); 
                          if (
                  $return) { 
                              return 
                  true
                          } else return 
                  false
                      } 
                  dans submit() j'ai uniquement ajouté :
                  Code PHP:
                  /**
                              Captcha
                          */    
                          
                  if (!$this->_checkCaptcha()) {
                              
                  JError::raiseWarning("666","Code CAPTCHA Invalide. veuillez recommencer!!.");
                              
                  $this->display();
                              return 
                  false;
                          } 
                  dans le debut du code juste après ...

                  Code PHP:
                  global $mainframe
                  pour finir changer la vue
                  allez dans /com_contact/views/contact/tmpl/default_form.php

                  et ajoutez:

                  Code PHP:
                  <?php if ($this->params->get('use_captcha')) { ?>            
                                  <!-- Bigo Captcha -->
                                  <img src="index.php?option=com_contact&task=displaycaptcha&contact_id=<?php echo $this->contact->id?>">
                                  <br />
                                  <input type="text" name="word" />
                                  <br />
                              <?php ?>
                  voilà et ça fonctionne impec !!!


                  suivre la même procédure pour le formulaire d'enregistrement !!!

                  au détail prêt qu'on utilise plus
                  com_contact
                  mais
                  com_user

                  et donc plus non plus

                  Code PHP:
                   $this->display(); 
                  mais
                  Code PHP:
                  $this->register(); 
                  et encore moins la fonction :

                  Code PHP:
                  submit () {} 
                  mais

                  Code PHP:
                  register_save(){} 
                  et là ça fonctionne impec également

                  voilà je vous ai mis sur la voie
                  Dernière édition par Thorhax à 03/02/2008, 01h33
                  adaptations|conceptions

                  Commentaire


                  • #10
                    Je viens d'essayer ta méthode mais l'image du captcha ne veut pas s'afficher
                    Je sais pas si j'ai loupé quelque chose...

                    Cela a-t-il de l'importance l'endroit ou l'on met ces deux fonctions displaycaptcha et _checkcaptcha dans le fichier controller.php, car je les ai mis tout à la fin avec la }.
                    Dernière édition par xillibit à 02/02/2008, 23h31

                    Commentaire


                    • #11
                      pour l'apport dans la fonction submit() voilà ou il faut la mettre

                      Code PHP:
                      function submit()
                          {
                              global 
                      $mainframe;

                      if (!
                      $this->_checkCaptcha()) {
                                  
                      JError::raiseWarning("","Code invalide. veuillez recommencer !!.");
                                  
                      $this->display();
                                  return 
                      false;
                      }
                              
                      // Check for request forgeries
                              
                      JRequest::checkToken() or die( 'Invalid Token' );

                      // le reste blablabla 
                      et juste apès cette fonction submit tu mets les 2 autres inquiquées plus haut (j'ai corrigé car j'avais pas mis la bonne function displaycaptcha() )

                      juste après ces lignes :

                      Code PHP:
                              $msg JText::_'Thank you for your e-mail');
                              
                      $link JRoute::_('index.php?option=com_contact&view=contact&id='.$contactId);
                              
                      $this->setRedirect($link$msg);
                          } 
                      // fin de submit
                      // l'insertion des 2 fonction peut se faire juste après cette accolade fermante de submit
                      // debut de vcard()
                      function vcard()
                          {
                      //blablabla...

                      n'oublies pas d'activer le plugin dans ton administration, vider le cahe et surtout re-paramétrer les comptes contact par valider avec la confirmation du captcha dans Paramètres de l'email et cocher Use Captcha Non/Oui

                      ça met un certain temps pour prendre le truc en charge mais ça doit le faire .
                      Dernière édition par Thorhax à 03/02/2008, 00h48
                      adaptations|conceptions

                      Commentaire


                      • #12
                        Bonjour,

                        Je vais me la faire gros faignant
                        Thorhax, puisque tu as réussis et que tous fonctionne de ton coter
                        Te serais t'il possible de nous proposer tes fichiers directement.

                        Whaaaa je sais je sais suis faignant.....
                        Mais encore une fois à toi.
                        Cordialement,
                        Theking83
                        Webmaster
                        www.ltdw.net
                        Pas de support par MP je réponds aux questions exclusivement posées sur le forum.

                        Commentaire


                        • #13
                          Whooooo le faignant !!!!!

                          je fais ça demain (com_contact et com_user)sera dispo dans le courant de l'aprem car pour l'heure je suis claqué

                          et je profite de la demande pour te renvoyer l'ascenseur

                          en regardant ton site je suis tombé sur ta galerie d'images peut tu me passer le lien du DL.

                          également j'aimerai savoir (lien) quel est le gestionnaire de fichiers téléchargement idéal pour cette version 1.5 because com_Remository342 j'ai une erreur d'install , poutant il m'a semblé avoir lu quelquepart qu'il etait fonctionnel sous joomla 1.5

                          voilà si quelqu'un à des infos (lien) sur ces 2 sujets je suis preneur car depuis que j'ai installé la 1.5 je suis paumé mes anciens modules sont quasi tous incompatibles

                          @+
                          adaptations|conceptions

                          Commentaire


                          • #14
                            Bonjour,

                            en regardant ton site je suis tombé sur ta galerie d'images peut tu me passer le lien du DL.
                            http://www.phoca.cz/phocagallery/

                            également j'aimerai savoir (lien) quel est le gestionnaire de fichiers téléchargement idéal pour cette version 1.5 because com_Remository342 j'ai une erreur d'install , poutant il m'a semblé avoir lu quelquepart qu'il etait fonctionnel sous joomla 1.5
                            http://extensions.joomla.org/compone...115/Itemid,35/

                            Pour le moment il n'y a pas de gestionnaire de téléchargement existant en natif pour joomla 1.5 à ma connaissance.
                            Mais il existe Attachments qui permet de gérer et de proposer des fichiers à télécharger en attachement avec des articles.
                            C'est toujours mieux, que rien du tous
                            Cordialement,
                            Theking83
                            Webmaster
                            www.ltdw.net
                            Pas de support par MP je réponds aux questions exclusivement posées sur le forum.

                            Commentaire


                            • #15
                              merci pour le lien je vais la tester; perso j'aime bien Expose4 c'est celle que j'avais et je pense que je vais la reinstaller , la galerie que t'utilises m'a beaucoup intéressée pour un client (je ne la connaissais pas)

                              purée quelle mouise ya pas de gestionnaire de telechargement pour joom !!!

                              voici donc le pack pour obtenir dans le formulaire de contact et d'enregistrement un captcha bien simple

                              je l'ai un peu modifié depuis hier pour faire plus propre

                              pour ceux qui passeront par ici :

                              ce pack n'est pas à installer par le gestionnaire d'installation joomla mais uniquement par ftp en remplacant les repertoires de votre installation joomla

                              je n'assume aucune responsbilité pour le mauvais usage ou placement qu'il en sera fait par des utilisateurs non-avertis ... il contient un fichier texte install.txt à lire cas ou certains auraient des doutes
                              Dernière édition par Thorhax à 21/02/2008, 19h04
                              adaptations|conceptions

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins
                              Travaille ...
                              X