Add sendmail script WIP
This commit is contained in:
31
contact.php
Normal file
31
contact.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$ok = true;
|
||||
if ($_POST['email'] && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
|
||||
$email = $_POST['email'];
|
||||
} else {
|
||||
$ok = false;
|
||||
echo "<p>Email validation failed</p>";
|
||||
}
|
||||
if ($_POST['name'] && strlen($_POST['name']) <= 30) {
|
||||
$name = htmlspecialchars($_POST['name']);
|
||||
} else {
|
||||
$ok = false;
|
||||
echo "<p>Name validation failed</p>";
|
||||
}
|
||||
if ($_POST['body'] && strlen($_POST['body']) <= 2000) {
|
||||
$body = htmlspecialchars($_POST['body']);
|
||||
} else {
|
||||
$ok = false;
|
||||
echo "<p>Message validation failed</p>";
|
||||
}
|
||||
if ($ok) {
|
||||
// TODO: Sendmail
|
||||
echo "<p>Validation passed</p>";
|
||||
} else {
|
||||
echo "<p>Validation failed. Please check your data</p>";
|
||||
}
|
||||
} else {
|
||||
echo 'Method not allowed';
|
||||
}
|
||||
?>
|
||||
19
src/App.vue
19
src/App.vue
@@ -10,7 +10,7 @@
|
||||
b-navbar-nav(class="ml-auto")
|
||||
b-nav-item(@click="modalShow = !modalShow") {{$t('contact_us')}}
|
||||
b-modal(id="contactus" hide-footer :title="$t('contact_us')" v-model="modalShow")
|
||||
b-form(@sumbit="send")
|
||||
b-form(action="http://localhost:8000/contact.php" method="post")
|
||||
b-form-group(id="EmailInputGroup"
|
||||
label="Email address"
|
||||
label-for="EmailInput"
|
||||
@@ -18,6 +18,7 @@
|
||||
b-form-input(id="EmailInput"
|
||||
type="email"
|
||||
v-model="form.email"
|
||||
name="email"
|
||||
required
|
||||
placeholder="Enter email")
|
||||
b-form-group(id="NameInputGroup"
|
||||
@@ -26,6 +27,7 @@
|
||||
b-form-input(id="NameInput"
|
||||
type="text"
|
||||
v-model="form.name"
|
||||
name="name"
|
||||
required
|
||||
placeholder="Enter name")
|
||||
b-form-group(id="TextInputGroup"
|
||||
@@ -33,12 +35,13 @@
|
||||
label-for="TextInput")
|
||||
b-form-textarea(id="TextInput"
|
||||
v-model="form.text"
|
||||
name="body"
|
||||
required
|
||||
placeholder=""
|
||||
:rows="3")
|
||||
vue-recaptcha(:sitekey="sitekey" @verify="captchaPass")
|
||||
vue-recaptcha(:sitekey="sitekey" @verify="captchaPass" @expired="captchaFailed")
|
||||
p
|
||||
b-button(type="submit" variant="primary" @click.prevent="send") Submit
|
||||
b-button(type="submit" variant="primary" :disabled="!allowsend") Submit
|
||||
b-nav-form
|
||||
label(for="locale" style="margin: 5px") {{$t('language')}}:
|
||||
b-form-select(v-model="locale")
|
||||
@@ -49,6 +52,7 @@
|
||||
router-view
|
||||
hr
|
||||
footer
|
||||
// TODO: Mailto
|
||||
p © 2018 TeamFND
|
||||
</template>
|
||||
|
||||
@@ -63,20 +67,19 @@ export default
|
||||
email: ''
|
||||
name: ''
|
||||
text: ''
|
||||
captcha_challenge: ''
|
||||
}
|
||||
sitekey: '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI'
|
||||
allowsend: false
|
||||
watch:
|
||||
locale: (val) ->
|
||||
this.$root.$i18n.locale = val
|
||||
window.localStorage.language = val
|
||||
methods:
|
||||
send: (evt) ->
|
||||
# TODO: Check data
|
||||
console.log(JSON.stringify(@form))
|
||||
@modalShow = !@modalShow
|
||||
captchaPass: (key) ->
|
||||
@form.captcha_challenge = key
|
||||
@allowsend = true
|
||||
captchaFailed: () ->
|
||||
@allowsend = false
|
||||
components: { VueRecaptcha }
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user