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:
<script src='https://www.google.com/recaptcha/api.js'></script>
ami a helyén.

Illetve az alábbi html kód :
<div class="col-md-8 col-lg-6 block-content">
                <div data-form-type="formoid">
                    <div class="form-block" data-form-type="formoid">
                        <div data-form-alert="" hidden="">Köszönjük levelét!</div>
                        <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">
                            <div class="row">
                                <div class="col-md-12" data-for="name">
                                    <input type="text" class="form-control input" name="name" data-form-field="Name" placeholder="Név" required="" id="name-form6-d">
                                </div>
                                <div class="col-md-12" data-for="email">
                                    <input type="text" class="form-control input" name="email" data-form-field="Email" placeholder="Email cím" required="" id="email-form6-d">
                                </div>
                                <div class="col-md-12" data-for="message">
                                    <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>
                                </div>
                                <div class="g-recaptcha" data-sitekey="........."></div>
                                <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>
                            </div>
                        </form>
                    </div>
                </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
jQuery(function($){

    var Formoid = (function(){
    
        var API_URL = ('https:' == location.protocol ? 'https:' : 'http:') + '//formoid.net/api/push';
        
        var $ajax = (function(){
            var ie = (/MSIE (\d+)\./.exec(navigator.userAgent) || [0, 0])[1];
            if (8 == ie || (9 == ie && 'file:' != location.protocol)){
                return function(url, settings){
                    var xdr = new XDomainRequest(), defer = $.Deferred();
                    xdr.open(settings.type, url);
                    xdr.onload = function(){ defer.resolve(this.responseText); };
                    xdr.onerror = function(){ defer.reject(); };
                    xdr.send(settings.data);
                    return defer;
                };
            } else {
                $.support.cors = true;
                return $.ajax;
            }
        })();
    
        var prop = function(name, args){
            name = '__' + name + '__';
            if (args.length){
                this[name] = args[0];
                return this;
            }
            return this[name];
        };
    
        var attachMethods = function(obj, context, methods){
            $.each(methods, function(i, method){
                obj[method] = function(){
                    return context[method].apply(context, arguments);
                };
            });
            return obj;
        };
    
        var Form = function(settings){
            settings = settings || {};
            this.__email__ = settings.email || '';
            this.__title__ = settings.title || '';
            this.__data__  = settings.data  || [];
        };
    
        Form.prototype.email = function(value){
            return prop.call(this, 'email', arguments);
        };
    
        Form.prototype.title = function(value){
            return prop.call(this, 'title', arguments);
        };
    
        Form.prototype.data = function(value){
            return prop.call(this, 'data', arguments);
        };
    
        Form.prototype.send = function(data, beforeStart){
            var defer = attachMethods($.Deferred(), this, ['email', 'title', 'data', 'send']);
            if (beforeStart){
                beforeStart.call(this, defer);
                if ('pending' != defer.state())
                    return defer;
            }
            $ajax(API_URL, {
                type : 'POST',
                data : JSON.stringify({
                    email : this.__email__,
                    form : {
                        title : this.__title__,
                        data : (arguments.length ? data : this.__data__)
                    }
                })
            }).done(function(responseText){
                try {
                    var data = JSON.parse(responseText);
                    if (data.error) defer.reject(data.error);
                    else defer.resolve(data.response);
                } catch (e) {
                    defer.reject('Incorrect server response.');
                }
            }).fail(function(){
                var error = 'Failed to query the server. ';
                if ('onLine' in navigator && !navigator.onLine)
                    error += 'No connection to the Internet.';
                else error += 'Check the connection and try again.';
                defer.reject(error);
            });
            return defer;
        };
    
        return {
            Form : function(settings){
                return new Form(settings);
            }
        }
    
    })();

    var isValid = function(input){
        if (input.checkValidity) return input.checkValidity(); // native validation
        var isValid = true, value = $(input).val(), type = $(input).attr('type');
        // regexp rules from https://github.com/running-coder/jquery-form-validation
        if (value) isValid = !('email' === type && !/^([^@]+?)@(([a-z0-9]-*)*[a-z0-9]+\.)+([a-z0-9]+)$/i.test(value));
        else if ($(input).attr('required')) isValid = false;
        $(input)[ (isValid ? 'remove' : 'add') + 'Class' ]('form-invalid');
        return isValid;
    };

    $('[data-form-type="formoid"]').each(function(){
        var form,
            $this   = $(this),
            $form   = $this.is('form') ? $this : $this.find('form'),
            $alert  = $this.find('[data-form-alert]'),
            $title  = $this.is('[data-form-title]') ? $this : $this.find('[data-form-title]'),
            $submit = $this.find('[type="submit"]'),
            alertSuccess = $alert.html();
        $submit
            .click(function(){ $form.addClass('form-active'); });
        $form.submit(function(event){
            event.preventDefault();
            $form.addClass('form-active');
            if ($submit.hasClass('btn-loading')) return;
            var isValidForm = true, data = [];
            form = form || Formoid.Form({
                email : $this.find('[data-form-email]').val(),
                title : $title.attr('data-form-title') || $title.text()
            });
            $alert.html('');
            $this.find('[data-form-field]').each(function(){
                if (!isValid(this))
                    isValidForm = false;
                data.push([
                    $(this).attr('data-form-field') || $(this).attr('name'),
                    $(this).val()
                ]);
            });
            if (!isValidForm) return;
            $submit.addClass('btn-loading').prop('disabled', true);
            form.send(data).done(function(message){
                $form.removeClass('form-active');
                $this.find('[data-form-field]').val('');
                $alert.removeAttr('hidden');
                $alert.append($('<div class="alert alert-form alert-success text-xs-center"/>').text(alertSuccess || message));
            }).fail(function(error){
                $alert.append($('<div class="alert alert-form alert-danger text-xs-center"/>').text(error));
            }).always(function(){
                $submit.removeClass('btn-loading').prop('disabled', false);
            });
        });
    });

});
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.