msgbartop
Hosting Professionale
msgbarbottom

29 apr 10 Magento Commerce 1.4: ‘Impossibile inoltrare la richiesta. Per favore, riprova più tardi’ sul modulo Contattaci

Se avete aggiornato il vostro sito di Magento Commerce alla versione 1.4.x si potrebbe riscontrare un errore sul modulo Contattaci. Dove ad ogni tentativo di inviare una mail si presenti l’errore Impossibile inoltrare la richiesta. Per favore, riprova più tardi

Se si guarda il codice presente sul file /app/code/core/Mage/Contacts/controllers/IndexController.php

public function postAction()
    {
        $post = $this->getRequest()->getPost();
        if ( $post ) {
            $translate = Mage::getSingleton('core/translate');
            /* @var $translate Mage_Core_Model_Translate */
            $translate->setTranslateInline(false);
            try {
                $postObject = new Varien_Object();
                $postObject->setData($post);

                $error = false;

                if (!Zend_Validate::is(trim($post['name']) , 'NotEmpty')) {
                    $error = true;
                }

                if (!Zend_Validate::is(trim($post['comment']) , 'NotEmpty')) {
                    $error = true;
                }

                if (!Zend_Validate::is(trim($post['email']), 'EmailAddress')) {
                    $error = true;
                }

                if (Zend_Validate::is(trim($post['hideit']), 'NotEmpty')) {
                    $error = true;
                }

                if ($error) {
                    throw new Exception();
                }

      (...snip...)

            } catch (Exception $e) {
                $translate->setTranslateInline(true);

                Mage::getSingleton('customer/session')->addError(Mage::helper('contacts')->__('Unable to submit your request. Please, try again later'));
                $this->_redirect('*/*/');
                return;
            }

Il modulo Contattaci richiede Nome, Commento, Email che non devono essere vuote o NULL. Ci aspettiamo che il campo “hideit” (a) esiste e (b) sia vuoto/NULL. Il campo “hideit” è nuovo nella versione 1.4 ed è stato inserito per aiutare a prevenire lo spam. I bots automatici compilerebbero quel campo e così si può notare che il campo è compilato da un bot. Il miglior metodo sarebbe utilizzare un sistema di Capthca anche nella pagina Contatti per prevedere lo spam.

Se qualcuno di questi controlli fallisce, la funzione genera un errore Impossibile inoltrare la richiesta. Per favore, riprova più tardi.

La cosa migliore sarebbe analizzare il file di grafica della pagina contatti che sicuramente sarà come segue:

<div class="buttons-set">
        <p class="required">* Required Fields</p>
        <input type="text" style="display: none ! important;" value="" id="hideit" name="hideit">
        <button class="button" title="Submit" type="submit"><span><span>Submit</span></span></button>
    </div>

Invece dovrebbe essere:

<div class="buttons-set">
        <p class="required"><?php echo Mage::helper('contacts')->__('* Required Fields') ?></p>
        <input type="text" name="hideit" id="hideit" value="" style="display:none !important;" />
        <button type="submit" title="<?php echo Mage::helper('contacts')->__('Submit') ?>" class="button"><span><span><?php echo Mage::helper('contacts')->__('Submit') ?></span></span></button>
    </div>

Il mio consiglio è di sistemare questo bug sui template acquistati e non ancora compatibili con la versione 1.4.x

Il file da modificare è /app/design/frontend/<template>/<template>/template/contacts/form.phtml

Ricordati sempre di effettuare un backup prima di effettuare qualsiasi modifica.

Leave a Comment

You must be logged in to post a comment.