ugrás a tartalomhoz

google recaptcha beillesztése

gizi · 2018. Feb. 16. (P), 15.32
Szia!

Az oldalban ott a recaptcha, csak elengedi az emailt használat nélkül is. Milyen parancs kell ahhoz, hogy ne engedje el az emailt?

Van a klasszikus script:
  1. <script src='https://www.google.com/recaptcha/api.js'></script>  
ami a helyén.

Illetve az alábbi html kód :
  1. <div class="col-md-8 col-lg-6 block-content">  
  2.                 <div data-form-type="formoid">  
  3.                     <div class="form-block" data-form-type="formoid">  
  4.                         <div data-form-alert="" hidden="">Köszönjük levelét!</div>  
  5.                         <form class="block mbr-form" action="https://" method="post" data-form-title=" Form"><input type="hidden" name="email" data-form-email="true" value="WR07F4JDFr2Ai08/GsaBNo1N6rBbXK4gxr/B5Chgo12Y3v/EoEzGOATshghcplvDZ4eD/TukHFTG5KD/BIeJED+LKLWUfMoK0R3faf5uCUCapOcOWR6K9yfZDNsAF8LM" data-form-field="Email">  
  6.                             <div class="row">  
  7.                                 <div class="col-md-12" data-for="name">  
  8.                                     <input type="text" class="form-control input" name="name" data-form-field="Name" placeholder="Név" required="" id="name-form6-d">  
  9.                                 </div>  
  10.                                 <div class="col-md-12" data-for="email">  
  11.                                     <input type="text" class="form-control input" name="email" data-form-field="Email" placeholder="Email cím" required="" id="email-form6-d">  
  12.                                 </div>  
  13.                                 <div class="col-md-12" data-for="message">  
  14.                                     <textarea class="form-control input" name="message" rows="3" data-form-field="Message" placeholder="Üzenet szövege" style="resize:none" id="message-form6-d"></textarea>  
  15.                                 </div>  
  16.                                 <span style="font-weight:bold"><div class="g-recaptcha" data-sitekey="........."></div></span>  
  17.                                 <div class="input-group-btn col-md-12" style="margin-top: 10px;"><button href="" type="submit" class="btn btn-primary btn-bgr display-4">Elküld</button></div>  
  18.                             </div>  
  19.                         </form>  
  20.                     </div>  
  21.                 </div>  
Illetve egy javascript amit használ.

De egyenlőre elküldi az emailt a capctha nélkül is. Ebben kérném a segítséget, ha érthető amit írtam.
 
1

kódszínező!!!

Pepita · 2018. Feb. 16. (P), 18.39
Be is linkeltem, ahol van leírás, hogyan tudsz kódot színezve, olvashatóan beilleszteni... :(

<form class="block mbr-form" action="https://" method="post"

Erre kíváncsi lennék, hogy hova megy a post request.

Egyébként az emailt meg is kapod?

Kérlek új hozzászólásba tedd be színezve a kódot, a nyelv legyen 'html'.
2

hova megy a post

gizi · 2018. Feb. 19. (H), 10.07
Szia!

Elnézést, hogy rosszul színeztem és köszi a módosítást.
Szóval elmegy az email és rendben meg is érkezik arra az email címre amit megadok.
Amit beillesztettem kód annál nincs több, csak nincs benne a konkrét emailcím, és a javascript amit használ ez a form.
A program amivel ez készült a mobirise nevű szerkesztő.
Remélem ez segít.
3

javascript

Pepita · 2018. Feb. 19. (H), 11.18
Nem a form használja, hanem a js használja a form adatait, de nem ez a fontos.
(Nem én módosítottam, hanem valaki, akinek van rá jogosultásga.)

Lássuk azt a javascriptet is, új hozzászólásban, színezve!
Azt a pontot kell megtalálni, ahol eldől, hogy elmegy-e az email. Eddig ez nincs meg.
Gondoltam, hogy sehova nem jut a post, mivel nem mutat feloldható címre az action attribútum..

A program amivel ez készült a mobirise nevű szerkesztő.
Remélem ez segít.
Nem igazán, mert:
- Nem tudni, mi az az "ez", ami készült vele
- Nem ismerem, milyen "program"
- Ha a beillesztett html készült vele, akkor tökmindegy, hogy milyen szerkesztőt használtál hozzá, a kész forráskód számít.

Megj.: nem láttam még olyat, hogy javascript "küld" emailt, ezt szerveroldalon szoktuk megoldani. Komoly okai is vannak ennek.
Ha ebben a html-ben élesben benne van "a konkrét emailcím" és ezalatt a from címet érted, akkor ugye tudod, hogy azt a legbutább spambot is már rég begyűjtötte?

SZERK.:
Ha látható az oldal publikusan, kérlek linkeld be.
4

javascript

gizi · 2018. Feb. 19. (H), 11.41
  1. jQuery(function($){  
  2.   
  3.     var Formoid = (function(){  
  4.       
  5.         var API_URL = ('https:' == location.protocol ? 'https:' : 'http:') + '//formoid.net/api/push';  
  6.           
  7.         var $ajax = (function(){  
  8.             var ie = (/MSIE (\d+)\./.exec(navigator.userAgent) || [0, 0])[1];  
  9.             if (8 == ie || (9 == ie && 'file:' != location.protocol)){  
  10.                 return function(url, settings){  
  11.                     var xdr = new XDomainRequest(), defer = $.Deferred();  
  12.                     xdr.open(settings.type, url);  
  13.                     xdr.onload = function(){ defer.resolve(this.responseText); };  
  14.                     xdr.onerror = function(){ defer.reject(); };  
  15.                     xdr.send(settings.data);  
  16.                     return defer;  
  17.                 };  
  18.             } else {  
  19.                 $.support.cors = true;  
  20.                 return $.ajax;  
  21.             }  
  22.         })();  
  23.       
  24.         var prop = function(name, args){  
  25.             name = '__' + name + '__';  
  26.             if (args.length){  
  27.                 this[name] = args[0];  
  28.                 return this;  
  29.             }  
  30.             return this[name];  
  31.         };  
  32.       
  33.         var attachMethods = function(obj, context, methods){  
  34.             $.each(methods, function(i, method){  
  35.                 obj[method] = function(){  
  36.                     return context[method].apply(context, arguments);  
  37.                 };  
  38.             });  
  39.             return obj;  
  40.         };  
  41.       
  42.         var Form = function(settings){  
  43.             settingssettings = settings || {};  
  44.             this.__email__ = settings.email || '';  
  45.             this.__title__ = settings.title || '';  
  46.             this.__data__  = settings.data  || [];  
  47.         };  
  48.       
  49.         Form.prototype.email = function(value){  
  50.             return prop.call(this, 'email', arguments);  
  51.         };  
  52.       
  53.         Form.prototype.title = function(value){  
  54.             return prop.call(this, 'title', arguments);  
  55.         };  
  56.       
  57.         Form.prototype.data = function(value){  
  58.             return prop.call(this, 'data', arguments);  
  59.         };  
  60.       
  61.         Form.prototype.send = function(data, beforeStart){  
  62.             var defer = attachMethods($.Deferred(), this, ['email', 'title', 'data', 'send']);  
  63.             if (beforeStart){  
  64.                 beforeStart.call(this, defer);  
  65.                 if ('pending' != defer.state())  
  66.                     return defer;  
  67.             }  
  68.             $ajax(API_URL, {  
  69.                 type : 'POST',  
  70.                 data : JSON.stringify({  
  71.                     email : this.__email__,  
  72.                     form : {  
  73.                         title : this.__title__,  
  74.                         data : (arguments.length ? data : this.__data__)  
  75.                     }  
  76.                 })  
  77.             }).done(function(responseText){  
  78.                 try {  
  79.                     var data = JSON.parse(responseText);  
  80.                     if (data.error) defer.reject(data.error);  
  81.                     else defer.resolve(data.response);  
  82.                 } catch (e) {  
  83.                     defer.reject('Incorrect server response.');  
  84.                 }  
  85.             }).fail(function(){  
  86.                 var error = 'Failed to query the server. ';  
  87.                 if ('onLine' in navigator && !navigator.onLine)  
  88.                     error += 'No connection to the Internet.';  
  89.                 else error += 'Check the connection and try again.';  
  90.                 defer.reject(error);  
  91.             });  
  92.             return defer;  
  93.         };  
  94.       
  95.         return {  
  96.             Form : function(settings){  
  97.                 return new Form(settings);  
  98.             }  
  99.         }  
  100.       
  101.     })();  
  102.   
  103.     var isValid = function(input){  
  104.         if (input.checkValidity) return input.checkValidity(); // native validation  
  105.         var isValid = truevalue = $(input).val(), type = $(input).attr('type');  
  106.         // regexp rules from https://github.com/running-coder/jquery-form-validation  
  107.         if (value) isValid = !('email' === type && !/^([^@]+?)@(([a-z0-9]-*)*[a-z0-9]+\.)+([a-z0-9]+)$/i.test(value));  
  108.         else if ($(input).attr('required')) isValid = false;  
  109.         $(input)[ (isValid ? 'remove' : 'add') + 'Class' ]('form-invalid');  
  110.         return isValid;  
  111.     };  
  112.   
  113.     $('[data-form-type="formoid"]').each(function(){  
  114.         var form,  
  115.             $this   = $(this),  
  116.             $form   = $this.is('form') ? $this : $this.find('form'),  
  117.             $alert  = $this.find('[data-form-alert]'),  
  118.             $title  = $this.is('[data-form-title]') ? $this : $this.find('[data-form-title]'),  
  119.             $submit = $this.find('[type="submit"]'),  
  120.             alertSuccess = $alert.html();  
  121.         $submit  
  122.             .click(function(){ $form.addClass('form-active'); });  
  123.         $form.submit(function(event){  
  124.             event.preventDefault();  
  125.             $form.addClass('form-active');  
  126.             if ($submit.hasClass('btn-loading')) return;  
  127.             var isValidForm = truedata = [];  
  128.             formform = form || Formoid.Form({  
  129.                 email : $this.find('[data-form-email]').val(),  
  130.                 title : $title.attr('data-form-title') || $title.text()  
  131.             });  
  132.             $alert.html('');  
  133.             $this.find('[data-form-field]').each(function(){  
  134.                 if (!isValid(this))  
  135.                     isValidForm = false;  
  136.                 data.push([  
  137.                     $(this).attr('data-form-field') || $(this).attr('name'),  
  138.                     $(this).val()  
  139.                 ]);  
  140.             });  
  141.             if (!isValidForm) return;  
  142.             $submit.addClass('btn-loading').prop('disabled', true);  
  143.             form.send(data).done(function(message){  
  144.                 $form.removeClass('form-active');  
  145.                 $this.find('[data-form-field]').val('');  
  146.                 $alert.removeAttr('hidden');  
  147.                 $alert.append($('<div class="alert alert-form alert-success text-xs-center"/>').text(alertSuccess || message));  
  148.             }).fail(function(error){  
  149.                 $alert.append($('<div class="alert alert-form alert-danger text-xs-center"/>').text(error));  
  150.             }).always(function(){  
  151.                 $submit.removeClass('btn-loading').prop('disabled', false);  
  152.             });  
  153.         });  
  154.     });  
  155.   
  156. });  
5

email

gizi · 2018. Feb. 19. (H), 11.52
Nincs benne email ilyen formában nyíltan. A probléma az még mindig az, hogy a recaptcha
engedi, hogy a küldés gombra kattintsak, pedig minden adatot úgy raktam be, ahogy a google leírásban sorban megadott.
Találtam egy hivatkozást ahol arról írtak, hogy mit kell még megadnom:

Then, add code to call the CAPTCHA check functionality defined below.

# Check Required Fields
&check_required;

+# Check the captcha challenge and response.
+&check_captcha;
+
# Send E-Mail
&send_mail;

# Return HTML Page or Redirect User
&return_html;


Talán valami hasonló hiányzik a kódból, ami a recaptcha meghívásához kell.
6

Ilyesmire számítottam :(

Pepita · 2018. Feb. 19. (H), 15.27
Én véletlenül sem bíznék semmiféle email küldést 3. félre, pláne nem arra, akiről / amiről semmit sem tudok...

http://formoid.net/ (l. API_URL)

Mit tudsz róluk?

Problémák:
- Elküldesz nekik minden érzékeny adatot a látogatódról és az oldaladról egyaránt.
- FOgalmad sincs, hogy ezeket hova - miért - hogyan tárolják, mire használják később.
- Nem tudod, hogy az email elküldésén kívül mit csinál még.
- ...
- Kliens oldalon bármit próbálsz validálni vagy kötelezővé tenni, az ígyis - úgyis hackelhető marad, szinte bárki ki fogja tudni kerülni mind a captcha-ellenőrzésed, mind a küldendő emailt stb.

Javaslom, hogy fentiek fényében gondolkodj el arról, hogy (amennyiben nem többezres nagyságrendű napi emailről van szó) Te küldd el a saját email-jeidet, php-ból.
Ebben segítségedre lehet az a fórumtéma, amire először kommenteltél.
Én nem debuggolom ki ezt a js-t, mert az egész koncepcióval nem tudok egyetérteni.