forked from nextcloud/nextcloud.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
page-contactsubmit.php
167 lines (157 loc) Β· 7.35 KB
/
page-contactsubmit.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<head>
<script>
require(["require.config"], function() {
require(["pages/enterprise"])
});
</script>
<link href="<?php echo get_template_directory_uri(); ?>/assets/css/pages/form.css?v=2" rel="stylesheet">
</head>
<section class="background generic-background second-menu">
<div class="container">
<div class="row">
<div class="col-md-6 topheader">
<h1><?php echo $l->t('Contact us');?></h1>
</div>
</div>
</div>
<div class="container-fluid menu" id="menuAnchor">
<div class="container buttons">
<a class="button button--blue" href="<?php echo home_url('faq') ?>"><?php echo $l->t('FAQ');?></a>
<a class="button button--blue" href="<?php echo home_url('enterprise/order') ?>"><?php echo $l->t('Order online');?></a>
<a class="button button--blue" href="<?php echo home_url('buy') ?>"><?php echo $l->t('get a quote');?></a>
<a class="button button--blue" href="<?php echo home_url('trial') ?>"><?php echo $l->t('Trial');?></a>
<a class="button button--blue" href="<?php echo home_url('pricing') ?>"><?php echo $l->t('pricing plans');?></a>
<a class="button button--blue" href="<?php echo home_url('enterprise') ?>"><?php echo $l->t('enterprise offering');?></a>
</div>
</div>
</section>
<section class="section--links">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="text-center">
<a class="button button--white button--small" href="<?php echo home_url('faq') ?>"><?php echo $l->t('FAQ');?></a>
<a class="button button--white button--small" href="<?php echo home_url('enterprise/order') ?>"><?php echo $l->t('Order online');?></a>
<a class="button button--white button--small" href="<?php echo home_url('trial') ?>"><?php echo $l->t('Trial');?></a>
<a class="button button--white button--small" href="<?php echo home_url('buy') ?>"><?php echo $l->t('get a quote');?></a>
<a class="button button--white button--small" href="<?php echo home_url('pricing') ?>"><?php echo $l->t('pricing plans');?></a>
<a class="button button--white button--small" href="<?php echo home_url('enterprise') ?>"><?php echo $l->t('enterprise offering');?></a>
</div>
</div>
</div>
</div>
</section>
<?php
require_once realpath(dirname(__FILE__)) . '/lib/ratelimiter.php';
require_once realpath(dirname(__FILE__)) . '/lib/captcha.php';
if(!canPerformLimitedAction("contact-submit-action", 5)) {
die("Too many requests. Please try again later.");
}
if(isset($_POST['email'])) {
function died($error) {
// error code goes here
?>
<section class="section--whitepaper">
<div class="container text-center">
<h3>Sorry, there was an error with the form you submitted</h3>
<p>The error(s) detected:<br/>
<?php
echo $error . "<br />";
?>
</p>
<p>Use the back key to go to the previous page and fix the
issue!</p>
</div>
</section>
<?php
}
// validation expected data exists
$error_message = "";
if(!isset($_POST['yourname']) ||
!isset($_POST['email']) ||
!isset($_POST['phone']) ||
!isset($_POST['comments']) ||
!isset($_POST['captcha'])) {
$error_message .= 'Phone, mail, name and comments field have to have valid data! <br />'; }
$yourname = $_POST['yourname']; // required
$organization= $_POST['organization']; // required
$phone= $_POST['phone']; // required
$email_from = $_POST['email']; // required
$comments = $_POST['comments']; // required
$gdprcheck = $_POST['gdprcheck'];
$foundnextcloud = $_POST['foundnextcloud'];
if(!IsValidCaptcha($_POST['captcha'])) {
$error_message .= 'The captcha result you entered does not appear to be correct.<br />';
}
$email_exp = '/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,10}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The email address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
// remove checking name
// if(!preg_match($string_exp,$yourname)) {
// $error_message .= 'The name you entered does not appear to be valid.<br />';
// }
$string_exp = "/^((\+|00)\d{1,3})?(\d+|\s+)+\d$/";
// if(!preg_match($string_exp,$phone)) { -- remove checking on phone number, it's been a pita.
// $error_message .= 'The phone number you entered does not appear to be valid, did you add a country code like +49?<br />';
// }
if(strlen($comments) < 8) {
$error_message .= 'Your input is pretty short! <br />';
}
if(!($gdprcheck=="gdprchecked")) {
$error_message .= 'You did not agree with our privacy policy so we would not be allowed to read and reply to your inquiry.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
} else {
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
$string = str_replace($bad,"",$string);
return htmlspecialchars($string);
}
// Prepare email text
$email_message = "Form details below.\n\n";
$email_to = "[email protected]";
$email_subject = "Website Contact Form: ".clean_string($organization);
$email_message .= "Name: ".clean_string($yourname)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Organization: ".clean_string($organization)."\n";
$email_message .= "Phone: ".clean_string($phone)."\n";
$email_message .= "How did you find out about Nextcloud? ".clean_string($foundnextcloud)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: [email protected]'."\r\n".
'Reply-To: '.$email_from."\r\n" .
'Content-Type: text/plain; charset=UTF-8';
// store in log
$data = [
'to' => $email_to,
'subject' => $email_subject,
'message' => $email_message,
'headers' => $headers,
];
file_put_contents('/var/log/sales-leads.txt', json_encode($data) . PHP_EOL, FILE_APPEND | LOCK_EX);
// Send the email to the list
@mail($email_to, $email_subject, $email_message, $headers);
// Send email to given address without the input
$email_subject = 'Nextcloud Contact Form confirmation';
$email_message = "Thanks for reaching out to Nextcloud.\nYou will hear back shortly from our Sales Team.\n\n";
$headers = 'From: [email protected]'."\r\n".
'Reply-To: '.$email_to."\r\n" .
'Content-Type: text/plain; charset=UTF-8';
// Send the email to user
@mail($email_from, 'Nextcloud Contact Form', $email_message, $headers);
?>
<!-- success html here -->
<section class="section--whitepaper">
<div class="container text-center">
<h3>Thank you for contacting us</h3>
<p>We received your message and will contact you on <?php echo($email_from); ?>,</p>
<p>check your inbox for a reply in the next week. If you need a faster reply, please go back to the previous page and use one of the other forms to contact us for a trial or support options.</p>
</div>
</section>
<?php
}
}
?>