diff options
| author | horus_arch | 2016-11-30 18:37:56 +0100 |
|---|---|---|
| committer | horus_arch | 2016-11-30 18:37:56 +0100 |
| commit | 5e8053d9ee0535f72b452cce18d581c29a435656 (patch) | |
| tree | a3857f818620169f7d566873a9f4b7aa233ddce2 | |
| parent | dbe08e91f1f931d9943b17748729aa0f03b3a003 (diff) | |
| download | iamfabulous.de-5e8053d9ee0535f72b452cce18d581c29a435656.tar.gz | |
Adds captcha to the contact form.
| -rw-r--r-- | layouts/contact/single.html | 32 | ||||
| -rw-r--r-- | static/captcha.js | 31 | ||||
| -rw-r--r-- | static/custom.css | 18 |
3 files changed, 74 insertions, 7 deletions
diff --git a/layouts/contact/single.html b/layouts/contact/single.html index 4be3a1b..852446c 100644 --- a/layouts/contact/single.html +++ b/layouts/contact/single.html @@ -16,19 +16,39 @@ </div> </div> <input type="text" class="hp" value="" name="gotit"> - <label for="message">message</label> - <textarea class="u-full-width" placeholder="type your message here …" id="message" name="message"></textarea> + <div class="row"> + <div class="twelve columns"> + <label for="message">message</label> + <textarea class="u-full-width" placeholder="type your message here …" id="message" name="message"></textarea> + </div> + </div> <!--label class="example-send-yourself-copy"> <input type="checkbox"> <span class="label-body">Send a copy to yourself</span> </label--> - <input class="button-primary contactform-button" value="submit" type="submit"> - <a style="margin-left: 10px;" class="button" href="../" title="back to index">cancel</a> + <div class="row"> + <div class="six columns"> + <label>captcha</label> + <img id="captcha-img" src="#" alt="captcha image" width=240 height=80> + <input id="captcha-id" type="hidden" name="captchaid" required> + </div> + <div class="six columns"> + <label for="captcha-solution">verification</label> + <input class="u-full-width" id="captcha-solution" type="text" name="captchaanswer" placeholder="enter the code displayed in the image" required> + </div> + </div> + <div class="row margin-top"> + <div class="twelve columns"> + <input class="button-primary contactform-button" value="submit" type="submit"> + <a class="button margin-left-extra-small" href="../" title="back to index">cancel</a> + </div> + </div> </form> - <div/> -<div/> + </div> +</div> <div class="row center"> <p class="twelve columns"> </p> </div> +<script src="/captcha.js" defer async></script> {{partial "footer.tmpl" .}} diff --git a/static/captcha.js b/static/captcha.js new file mode 100644 index 0000000..6b895bb --- /dev/null +++ b/static/captcha.js @@ -0,0 +1,31 @@ +function loadJSON(path, success, error) +{ + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = function() + { + if (xhr.readyState === XMLHttpRequest.DONE) { + if (xhr.status === 200) { + if (success) + success(JSON.parse(xhr.responseText)); + } else { + if (error) + error(xhr); + } + } + }; + xhr.open("GET", path, true); + xhr.send(); +}; +loadJSON('http://127.0.0.1:3333/json/newcaptcha', + function(data){ + console.log("success", data); + var captcha = document.getElementById('captcha-img'); + captcha.src = "http://127.0.0.1:3333/captcha/" + data.captcha_id + ".png"; + var captcha_input = document.getElementById('captcha-id'); + captcha_input.value = data.captcha_id; + }, + function(data) { + console.log("error", data); + console.log(data); + } +); diff --git a/static/custom.css b/static/custom.css index 807ab55..5dbbc64 100644 --- a/static/custom.css +++ b/static/custom.css @@ -100,6 +100,15 @@ a:hover { .margin-top-small { margin-top: 10px; } +.margin-left{ + margin-left: 20px; +} +.margin-left-small { + margin-left: 10px; +} +.margin-left-extra-small { + margin-left: 5px; +} /* Für projects/, damit der Text nicht überlappt, aber nah beieinander steht. */ @media (min-width: 755px) { @@ -141,8 +150,9 @@ a:hover { color: #1f1f1f !important; text-shadow: 0 0 1px #1f1f1f; transition: text-shadow 1s; - */ color: #3f3f3f !important; + */ + color: #1f1f1f !important; } .contactform-button:hover { text-decoration: underline; @@ -167,3 +177,9 @@ select:focus { .hp { display: none; } +#captcha-img { + background-color: #efefef; + background: #efefef; + /*box-shadow: 0 0 2px #ddd !important;*/ + border-radius: 4px; +} |
