Php 将Recaptcha实现到Silverstripe

Php 将Recaptcha实现到Silverstripe,php,javascript,content-management-system,spam,silverstripe,Php,Javascript,Content Management System,Spam,Silverstripe,我正在尝试将Recaptcha实现到Silverstripe,这一切都很好,但是当验证码信息未填写时,强制消息“请回答验证码问题”不会仅显示在我的一个表单上 谁能告诉我如何解决这个问题?谢谢你 这就是我在遵循步骤并安装了recaptcha和spamprotection之后所做的 我在BookingFormPage.php中添加了新的RecaptchaField(“MyCaptcha”) $fields = new FieldSet( $TourDropDown,

我正在尝试将Recaptcha实现到Silverstripe,这一切都很好,但是当验证码信息未填写时,强制消息“请回答验证码问题”不会仅显示在我的一个表单上

谁能告诉我如何解决这个问题?谢谢你

这就是我在遵循步骤并安装了recaptcha和spamprotection之后所做的

我在BookingFormPage.php中添加了新的RecaptchaField(“MyCaptcha”)

$fields = new FieldSet(
        $TourDropDown, 
        new TextField('FirstName'),
        new TextField('LastName'),
        new TextField('EmailAddress')
        new DropdownField('People','People Travelling',$People),
        new DropdownField('Accommodation','Accommodation Standard',$Accommodation),
        new DropdownField('Rooms','How Many Rooms',$Rooms),
        new DropdownField('Transport','Transport Option',$Transport),
        new DropdownField('TransportSelfDrive','If self drive select grade',$TransportSelfDrive),
        new TextField('FlightArrival','Flight Arrival Details'),
        new TextField('FlightDeparture','Flight Departure Details'),
        new DropdownField('LengthOfStay','Length of stay',$LengthOfStay),
        new TextareaField('Comments'),
        **new RecaptchaField('MyCaptcha')**

    );

and I added 

<div class="formHoizontal">
<div id="MyCaptcha" class="field recaptcha ">
$dataFieldByName(MyCaptcha) 
</div>
</div>

to the BookingForm.ss

<form $FormAttributes class="threecolumnform">
<% if Message %>
  <p id="{$FormName}_error" class="message $MessageType">$Message</p>
<% else %>
  <p id="{$FormName}_error" class="message $MessageType" style="display: none"></p>
<% end_if %>
<fieldset>
<div class="formHoizontal">
        <div class="field text">
            <label class="left" for="$FormName_Tour">Tour</label>
            $dataFieldByName(Tour)
        </div>
    </div>
    <div class="clear"></div>
    <div class="formHoizontal">
        <div id="FirstName" class="field text">
            <label class="left" for="$FormName_FirstName">First name</label>
            $dataFieldByName(FirstName)
        </div>
        <div>
            <label class="left" for="$FormName_LastName">Last name</label>
            $dataFieldByName(LastName)
        </div>
    </div>
    <div class="clear"></div>
    <div class="formHoizontal">
        <div id="EmailAddress" class="field email">
            <label class="left" for="$FormName_EmailAddress">Email</label>
            $dataFieldByName(EmailAddress)
        </div>

    </div>
    <div class="clear"></div>
    <div class="formHoizontal">

        <div class="field text">
            <label class="left" for="$FormName_LengthOfStay">Length of stay</label>
            $dataFieldByName(LengthOfStay)
        </div>
    </div>
    <div class="clear"></div>


    <div class="formHoizontal">
        <div class="field text">
            <label class="left" for="$FormName_People">Number of Adults</label>
            $dataFieldByName(People)
        </div>


    </div>


    <div class="clear"></div>
    <br />
    <h4>Accommodation</h4>
    <div class="formHoizontal">
        <div class="field text">
            <label class="left" for="$FormName_Accomadation">Type</label>
            $dataFieldByName(Accommodation)
        </div>
        <div class="field text">
            <label class="left" for="$FormName_Rooms">Number of rooms</label>
            $dataFieldByName(Rooms)
        </div>
        <div class="field text">
            <label class="left" for="$FormName_RoomConfig">Room requirements</label>
            $dataFieldByName(RoomConfig)
        </div>
    </div>


    <div class="clear"></div>
    <br />
    <h4>Transport</h4>
    <div class="formHoizontal">
        <div class="field text">
            <label class="left" for="$FormName_Transport">Type</label>
            $dataFieldByName(Transport)
        </div>

        <div>
            <label class="left" for="$FormName_TransportSelfDrive">If self drive select grade</label>
            $dataFieldByName(TransportSelfDrive)
        </div>
        <div class="clear"></div>
    </div>


    <div class="clear"></div>
        <div>
            <div class="field text">
                <label class="left" for="$FormName_SightSeeing">Enter any sightseeing or activities you would like included</label>
                $dataFieldByName(SightSeeing)
            </div>
        <div><h4>Sightseeing</h4></div>
        </div>
    <br />

    <div class="formHoizontal">
        <div class="field text">
            <label class="left" for="$FormName_FlightArrival">Flight Arrival Details</label>
            $dataFieldByName(FlightArrival)
        </div>
        <div class="field text">
            <label class="left" for="$FormName_FlightDeparture">Flight Departure Details</label>
            $dataFieldByName(FlightDeparture)
        </div>
    </div>

    <div class="clear"></div>
    <br /><br /><br />


        **<div class="formHoizontal">
        <div id="MyCaptcha" class="field recaptcha ">
            $dataFieldByName(MyCaptcha)

    </div>
    </div>**


    <div class="clear"></div>
    <br /><br /><br />



    <div class="formHoizontalTwoColumn">

        <div class="field text">
            <label class="left" for="$FormName_Comments">Extra Information</label>
            $dataFieldByName(Comments)
        </div>
    </div>


  $dataFieldByName(SecurityID)
$fields=新字段集(
$TourDropDown,
新文本字段('FirstName'),
新文本字段('LastName'),
新文本字段('EmailAddress')
新的DropdownField('人','人旅行',$人),
新的DropdownField(‘住宿’、‘住宿标准’、$住宿),
新的DropdownField('Rooms'、'How Number Rooms'、$Rooms),
新的下拉字段('Transport','Transport Option',$Transport),
新下拉字段('TransportSelfDrive','If self drive select grade',$TransportSelfDrive),
新文本字段('FlightArrival','FlightArrival Details'),
新文本字段(“航班起飞”,“航班起飞详细信息”),
新的DropdownField('LengthOfStay'、'LengthOfStay'、$LengthOfStay),
新建TextareaField(“注释”),
**新的RecaptchaField('MyCaptcha')**
);
我补充说
$dataFieldByName(MyCaptcha)
到BookingForm.ss

$message

游览 $dataFieldByName(教程) 名字 $dataFieldByName(名字) 姓 $dataFieldByName(姓氏) 电子邮件 $dataFieldByName(电子邮件地址) 停留时间 $dataFieldByName(LengthOfStay) 成人人数 $dataFieldByName(人员)
住宿 类型 $dataFieldByName(住宿) 房间数 $dataFieldByName(房间) 房间要求 $dataFieldByName(RoomConfig)
运输 类型 $dataFieldByName(传输) 如果自动驾驶,选择坡度 $dataFieldByName(TransportSelfDrive) 输入您希望包括的任何观光或活动 $dataFieldByName(观光) 观光
航班抵达详情 $dataFieldByName(FlightArrival) 航班起飞详情 $dataFieldByName(航班起飞)


** $dataFieldByName(MyCaptcha) **


额外信息 $dataFieldByName(注释) $dataFieldByName(SecurityID)

非常感谢

问候 萨姆

当验证码信息未填写时,强制信息“请回答验证码问题”不会仅显示在我的一张表格上

你的意思是它根本没有显示,还是它显示了多次

我的模板如下所示(包括CSS网格等)-其中应显示错误消息:

<div class="push_2 grid_15 formbackground">
    <div class="grid_4">
        <label for="recaptcha_response_field" class="right">Captcha*<br/><span>Bitte die Zeichen der Grafik in das Feld eingeben</span></label>
    </div>
    <div class="grid_9">
        $dataFieldByName(MyCaptcha)
        <span class="message $dataFieldByName(MyCaptcha).MessageType">$dataFieldByName(MyCaptcha).Message</span>
    </div>
</div>

验证码*
在das Feld eingeben的Grafik中 $dataFieldByName(MyCaptcha) $dataFieldByName(MyCaptcha)。消息
这有用吗

当验证码信息未填写时,强制信息“请回答验证码问题”不会仅显示在我的一张表格上

你的意思是它根本没有显示,还是它显示了多次

我的模板如下所示(包括CSS网格等)-其中应显示错误消息:

<div class="push_2 grid_15 formbackground">
    <div class="grid_4">
        <label for="recaptcha_response_field" class="right">Captcha*<br/><span>Bitte die Zeichen der Grafik in das Feld eingeben</span></label>
    </div>
    <div class="grid_9">
        $dataFieldByName(MyCaptcha)
        <span class="message $dataFieldByName(MyCaptcha).MessageType">$dataFieldByName(MyCaptcha).Message</span>
    </div>
</div>

验证码*
在das Feld eingeben的Grafik中 $dataFieldByName(MyCaptcha) $dataFieldByName(MyCaptcha)。消息

那有帮助吗?

嘿。只是出于兴趣-你有没有看过《夺回》模块:我已经成功地在2.4中使用了它。嗨,Shane,是的,我看过了。看来Xera的答案是有效的,我需要看一下表格。谢谢你的建议。干杯,谢伊。只是出于兴趣-你有没有看过《夺回》模块:我已经成功地在2.4中使用了它。嗨,Shane,是的,我看过了。看来Xera的答案是有效的,我需要看一下表格。谢谢你的建议。“干杯,SHi Xeraa,”我按照您在bookingform.ss中的建议补充道,“它现在似乎起作用了。”。非常感谢你的帮助。干杯,S:)嗨,Xeraa,我按照你在bookingform.ss中的建议加了一句,它现在似乎起作用了。非常感谢你的帮助。干杯,S:)