1

Я пытаюсь внедрить Recaptcha в Silverstripe, все работает хорошо, но обязательное сообщение «Пожалуйста, ответьте на вопрос captcha» не будет отображаться только в одной из моих форм, когда информация captcha не заполняется ,Внедрение Recaptcha в Silverstripe

Может ли кто-нибудь дать мне несколько инструкций о том, как исправить эту проблему? Спасибо, кучи.

Это то, что я сделал после выполнения шагов и установил recaptcha и защиту от спама.

Я добавил новый RecaptchaField ('MyCaptcha') к моему BookingFormPage.php

$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) 

спасибо много.

Сердечные приветы Сэм

+0

Эй, там. Просто из интереса - вы взглянули на модуль повторной поимки: https://github.com/chillu/silverstripe-recaptcha Я успешно использовал его с 2.4. –

+0

Привет, Шейн, да. кажется, что ответ Ксерры работает, мне нужно ослабить в bookingform.ss Спасибо за предложение. Cheers, S – grumpypanda

ответ

1

обязательное сообщение «Пожалуйста, ответьте на вопрос каптчи» не будет показан только на одном из моих форм, когда информация расшифрованы не заполнено

ли вы имеете в виду он вообще не показывался или показывался несколько раз?

Мой шаблон выглядит следующим образом (в том числе 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> 

ли это помощь?

+0

Привет, Xeraa, я добавил , как вы предложили в bookingform.ss, похоже, сейчас работает. Большое спасибо за вашу помощь. Приветствия, S :) – grumpypanda