0

これらの指示から、Joomla 1.5 の連絡先マネージャー モジュールに reCaptchaを実装しようとしています。次のようなフォームがあります。

<form action="<?php echo JRoute::_( 'index.php' );?>" method="post" name="emailForm" id="emailForm" class="form-validate">
        <div class="contact_email<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
            <label for="contact_name">
                &nbsp;<?php echo JText::_( 'Enter your name' );?>:
            </label>
            <br />
            <input type="text" name="name" id="contact_name" size="30" class="inputbox" value="" />
            <br />
            <label id="contact_emailmsg" for="contact_email">
                &nbsp;<?php echo JText::_( 'Email address' );?>:
            </label>
            <br />
            <input type="text" id="contact_email" name="email" size="30" value="" class="inputbox required validate-email" maxlength="100" />
            <br />
            <label for="contact_subject">
                &nbsp;<?php echo JText::_( 'Message subject' );?>:
            </label>
            <br />
            <input type="text" name="subject" id="contact_subject" size="30" class="inputbox" value="" />
            <br /><br />
            <label id="contact_textmsg" for="contact_text">
                &nbsp;<?php echo JText::_( 'Enter your message' );?>:
            </label>
            <br />
            <textarea cols="50" rows="10" name="text" id="contact_text" class="inputbox required"></textarea>
            <?php if ($this->contact->params->get( 'show_email_copy' )) : ?>
            <br />
                <input type="checkbox" name="email_copy" id="contact_email_copy" value="1"  />
                <label for="contact_email_copy">
                    <?php echo JText::_( 'EMAIL_A_COPY' ); ?>
                </label>
            <?php endif; ?>
            <br />
            <br />
            <button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button>
        </div>

    <input type="hidden" name="option" value="com_contact" />
    <input type="hidden" name="view" value="contact" />
    <input type="hidden" name="id" value="<?php echo $this->contact->id; ?>" />
    <input type="hidden" name="task" value="submit" />
    <?php echo JHTML::_( 'form.token' ); ?>
</form>

そのindex.phpファイルに追加のコードを追加して、フォームが送信されると、フォームが検証されて送信される前にコードがチェックされるようにする必要があります。

私がここにいる理由は、index.phpがルートindex.phpファイルを参照していると仮定しているためですか?または、私が間違っている場合、どこをJRoute::_( 'index.php' );指していますか?

そのインデックス ファイルで、次のようにrecaptchalib.phpを参照する必要があります。

        require_once('templates/templatename/html/com_contact/contact/recaptchalib.php');

これが index.php ファイルから recaptchalib.php を参照する正しい方法であることを願っていますか?

4

1 に答える 1

3

JRoute::_("index.php") は実際にはルートの index.php です。ただし、投稿したフォームは不完全であり、欠落しています

<input type='hidden' name='option' value='mycomponent'
<input type='hidden' name='task' ...

オプションはコンポーネントの名前なので、リクエストを処理するファイルは /components/com_mycomponent/mycomponent.php です。

そのようなコンポーネントで呼び出される関数は、パラメータ「タスク」で指定できます。

さらに、コントローラー、ビュー、およびレイアウトを指定するのが通例です。

ビュー内に recaptcha require を挿入する必要があると思います。

Joomla MVC または少なくとも MVC に関する情報を読んで、コア コンポーネントから学びましょう :-)

于 2013-02-13T23:27:53.017 に答える