51 |
51 |
} elseif ($n == ']') {
|
52 |
52 |
$n = '</optgroup>';
|
53 |
53 |
} else {
|
54 |
|
if(in_array($n, $values))
|
|
54 |
if(in_array($n, $values)) {
|
55 |
55 |
$n = '<option selected="selected" value="'.$n.'">'.$n.'</option>';
|
56 |
|
else
|
|
56 |
} else {
|
57 |
57 |
$n = '<option value="'.$n.'">'.$n.'</option>';
|
|
58 |
}
|
58 |
59 |
}
|
59 |
60 |
}
|
60 |
61 |
}
|
... | ... | |
63 |
64 |
function make_checkbox(&$n, $idx, $params) {
|
64 |
65 |
$field_id = $params[0][0];
|
65 |
66 |
$seperator = $params[0][1];
|
66 |
|
//$n = '<input class="field_checkbox" type="checkbox" id="'.$n.'" name="field'.$field_id.'" value="'.$n.'">'.'<font class="checkbox_label" onclick="javascript: document.getElementById(\''.$n.'\').checked = !document.getElementById(\''.$n.'\').checked;">'.$n.'</font>'.$seperator;
|
67 |
|
if(in_array($n, $params[1]))
|
68 |
|
$n = '<input class="field_checkbox" type="checkbox" id="'.$n.'" name="field'.$field_id.'['.$idx.']" value="'.$n.'" checked="checked">'.'<font class="checkbox_label" onclick="javascript: document.getElementById(\''.$n.'\').checked = !document.getElementById(\''.$n.'\').checked;">'.$n.'</font>'.$seperator;
|
69 |
|
else
|
70 |
|
$n = '<input class="field_checkbox" type="checkbox" id="'.$n.'" name="field'.$field_id.'['.$idx.']" value="'.$n.'">'.'<font class="checkbox_label" onclick="javascript: document.getElementById(\''.$n.'\').checked = !document.getElementById(\''.$n.'\').checked;">'.$n.'</font>'.$seperator;
|
|
67 |
$label_id = 'wb_'.str_replace(" ", "_", $n);
|
|
68 |
if(in_array($n, $params[1])) {
|
|
69 |
$n = '<input class="field_checkbox" type="checkbox" id="'.$label_id.'" name="field'.$field_id.'['.$idx.']" value="'.$n.'" checked="checked" />'.'<label for="'.$label_id.'" class="checkbox_label">'.$n.'</lable>'.$seperator;
|
|
70 |
} else {
|
|
71 |
$n = '<input class="field_checkbox" type="checkbox" id="'.$label_id.'" name="field'.$field_id.'['.$idx.']" value="'.$n.'" />'.'<label for="'.$label_id.'" class="checkbox_label">'.$n.'</label>'.$seperator;
|
|
72 |
}
|
71 |
73 |
}
|
72 |
74 |
}
|
73 |
75 |
// Function for generating a radio button
|
... | ... | |
76 |
78 |
$field_id = $params[0];
|
77 |
79 |
$group = $params[1];
|
78 |
80 |
$seperator = $params[2];
|
79 |
|
if($n == $params[3])
|
80 |
|
$n = '<input class="field_radio" type="radio" id="'.$n.'" name="field'.$field_id.'" value="'.$n.'" checked="checked">'.'<font class="radio_label" onclick="javascript: document.getElementById(\''.$n.'\').checked = true;">'.$n.'</font>'.$seperator;
|
81 |
|
else
|
82 |
|
$n = '<input class="field_radio" type="radio" id="'.$n.'" name="field'.$field_id.'" value="'.$n.'">'.'<font class="radio_label" onclick="javascript: document.getElementById(\''.$n.'\').checked = true;">'.$n.'</font>'.$seperator;
|
|
81 |
$label_id = 'wb_'.str_replace(" ", "_", $n);
|
|
82 |
if($n == $params[3]) {
|
|
83 |
$n = '<input class="field_radio" type="radio" id="'.$label_id.'" name="field'.$field_id.'" value="'.$n.'" checked="checked" />'.'<label for="'.$label_id.'" class="radio_label">'.$n.'</label>'.$seperator;
|
|
84 |
} else {
|
|
85 |
$n = '<input class="field_radio" type="radio" id="'.$label_id.'" name="field'.$field_id.'" value="'.$n.'" />'.'<label for="'.$label_id.'" class="radio_label">'.$n.'</label>'.$seperator;
|
|
86 |
}
|
83 |
87 |
}
|
84 |
88 |
}
|
85 |
89 |
// Generate temp submission id
|
... | ... | |
117 |
121 |
$footer = '';
|
118 |
122 |
}
|
119 |
123 |
|
120 |
|
$java_fields = '';
|
121 |
|
$java_titles = '';
|
122 |
|
$java_tween = ''; // I know kinda stupid, anyone better idea?
|
123 |
|
$java_mailcheck = '';
|
124 |
|
|
125 |
|
// Add form starter code
|
126 |
124 |
?>
|
127 |
|
<form name="form" onsubmit="return formCheck(this);" action="<?php echo htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])); ?>" method="post">
|
|
125 |
<form name="form" action="<?php echo htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])); ?>" method="post">
|
128 |
126 |
<input type="hidden" name="submission_id" value="<?php echo $_SESSION['form_submission_id']; ?>" />
|
129 |
127 |
<?php
|
130 |
|
|
131 |
|
// Print header
|
132 |
|
echo $header;
|
133 |
|
|
134 |
128 |
if(ENABLED_ASP) { // first add some honeypot-fields
|
135 |
129 |
?>
|
136 |
130 |
<input type="hidden" name="submitted_when" value="<?php $t=time(); echo $t; $_SESSION['submitted_when']=$t; ?>" />
|
... | ... | |
146 |
140 |
<input id="url" name="url" size="61" value="" /><br />
|
147 |
141 |
Comment:
|
148 |
142 |
<label for="comment">Enter not your comment here:</label>
|
149 |
|
<textarea name="comment" cols="50" rows="10"></textarea><br />
|
|
143 |
<textarea id="comment" name="comment" cols="50" rows="10"></textarea><br />
|
150 |
144 |
</p>
|
|
145 |
|
151 |
146 |
<?php }
|
152 |
147 |
|
|
148 |
// Print header
|
|
149 |
echo $header;
|
|
150 |
|
153 |
151 |
// Get list of fields
|
154 |
152 |
$query_fields = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' ORDER BY position ASC");
|
|
153 |
|
155 |
154 |
if($query_fields->numRows() > 0) {
|
156 |
155 |
while($field = $query_fields->fetchRow()) {
|
157 |
156 |
// Set field values
|
... | ... | |
159 |
158 |
$value = $field['value'];
|
160 |
159 |
// Print field_loop after replacing vars with values
|
161 |
160 |
$vars = array('{TITLE}', '{REQUIRED}');
|
162 |
|
$values = array($field['title']);
|
163 |
|
if($field['required'] == 1) {
|
164 |
|
$values[] = '<font class="required">*</font>';
|
165 |
|
$java_fields .= $java_tween.'"field'.$field_id.'"';
|
166 |
|
$java_titles .= $java_tween.'"'.$field['title'].'"';
|
167 |
|
$java_tween = ', ';
|
|
161 |
if (($field['type'] == "radio") || ($field['type'] == "checkbox")) {
|
|
162 |
$field_title = $field['title'];
|
168 |
163 |
} else {
|
|
164 |
$field_title = '<label for="field'.$field_id.'">'.$field['title'].'</label>';
|
|
165 |
}
|
|
166 |
$values = array($field_title);
|
|
167 |
if ($field['required'] == 1) {
|
|
168 |
$values[] = '<span class="required">*</span>';
|
|
169 |
} else {
|
169 |
170 |
$values[] = '';
|
170 |
171 |
}
|
171 |
172 |
if($field['type'] == 'textfield') {
|
... | ... | |
173 |
174 |
$values[] = '<input type="text" name="field'.$field_id.'" id="field'.$field_id.'" maxlength="'.$field['extra'].'" value="'.(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:$value).'" class="textfield" />';
|
174 |
175 |
} elseif($field['type'] == 'textarea') {
|
175 |
176 |
$vars[] = '{FIELD}';
|
176 |
|
$values[] = '<textarea name="field'.$field_id.'" id="field'.$field_id.'" class="textarea">'.(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:$value).'</textarea>';
|
|
177 |
$values[] = '<textarea name="field'.$field_id.'" id="field'.$field_id.'" class="textarea" cols="25" rows="5">'.(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:$value).'</textarea>';
|
177 |
178 |
} elseif($field['type'] == 'select') {
|
178 |
179 |
$vars[] = '{FIELD}';
|
179 |
180 |
$options = explode(',', $value);
|
180 |
181 |
array_walk($options, 'make_option', (isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:array()));
|
181 |
|
$field['extra'] = explode(',',$field['extra']);
|
182 |
|
$values[] = '<select name="field'.$field_id.'[]" id="field'.$field_id.'" size="'.$field['extra'][0].'" '.$field['extra'][1].' class="select">'.implode($options).'</select>';
|
|
182 |
$field['extra'] = explode(',',$field['extra']);
|
|
183 |
$values[] = '<select name="field'.$field_id.'[]" id="field'.$field_id.'" size="'.$field['extra'][0].'" '.$field['extra'][1].'="'.$field['extra'][1].'" class="select">'.implode($options).'</select>';
|
183 |
184 |
} elseif($field['type'] == 'heading') {
|
184 |
185 |
$vars[] = '{FIELD}';
|
185 |
186 |
$values[] = '<input type="hidden" name="field'.$field_id.'" id="field'.$field_id.'" value="===['.$field['title'].']===" />';
|
... | ... | |
199 |
200 |
$values[] = implode($options);
|
200 |
201 |
} elseif($field['type'] == 'email') {
|
201 |
202 |
$vars[] = '{FIELD}';
|
202 |
|
$values[] = '<input type="text" name="field'.$field_id.'" onChange="return checkmail(this.form.field'.$field_id.')" id="field'.$field_id.'" value="'.(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:'').'" maxlength="'.$field['extra'].'" class="email" />';
|
203 |
|
$java_mailcheck .= 'onChange="return checkmail(this.form'.$field_id.'" ';
|
|
203 |
$values[] = '<input type="text" name="field'.$field_id.'" id="field'.$field_id.'" value="'.(isset($_SESSION['field'.$field_id])?$_SESSION['field'.$field_id]:'').'" maxlength="'.$field['extra'].'" class="email" />';
|
204 |
204 |
}
|
205 |
205 |
if(isset($_SESSION['field'.$field_id])) unset($_SESSION['field'.$field_id]);
|
206 |
206 |
if($field['type'] != '') {
|
... | ... | |
218 |
218 |
</tr>
|
219 |
219 |
<?php
|
220 |
220 |
}
|
221 |
|
echo '
|
222 |
|
<script language="JavaScript">
|
223 |
|
<!--
|
224 |
221 |
|
225 |
|
/***********************************************
|
226 |
|
* Required field(s) validation v1.10- By NavSurf
|
227 |
|
* Visit Nav Surf at http://navsurf.com
|
228 |
|
* Visit http://www.dynamicdrive.com/ for full source code
|
229 |
|
***********************************************/
|
230 |
|
|
231 |
|
function formCheck(formobj){
|
232 |
|
// Enter name of mandatory fields
|
233 |
|
var fieldRequired = Array('.$java_fields.');
|
234 |
|
// Enter field description to appear in the dialog box
|
235 |
|
var fieldDescription = Array('.$java_titles.');
|
236 |
|
// dialog message
|
237 |
|
var alertMsg = "'.$MESSAGE['MOD_FORM']['REQUIRED_FIELDS'].':\n";
|
238 |
|
|
239 |
|
var l_Msg = alertMsg.length;
|
240 |
|
|
241 |
|
for (var i = 0; i < fieldRequired.length; i++){
|
242 |
|
var obj = formobj.elements[fieldRequired[i]];
|
243 |
|
if (obj){
|
244 |
|
switch(obj.type){
|
245 |
|
case "select-one":
|
246 |
|
if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
|
247 |
|
alertMsg += " - " + fieldDescription[i] + "\n";
|
248 |
|
}
|
249 |
|
break;
|
250 |
|
case "select-multiple":
|
251 |
|
if (obj.selectedIndex == -1){
|
252 |
|
alertMsg += " - " + fieldDescription[i] + "\n";
|
253 |
|
}
|
254 |
|
break;
|
255 |
|
case "text":
|
256 |
|
case "textarea":
|
257 |
|
if (obj.value == "" || obj.value == null){
|
258 |
|
alertMsg += " - " + fieldDescription[i] + "\n";
|
259 |
|
}
|
260 |
|
break;
|
261 |
|
default:
|
262 |
|
}
|
263 |
|
if (obj.type == undefined){
|
264 |
|
var blnchecked = false;
|
265 |
|
for (var j = 0; j < obj.length; j++){
|
266 |
|
if (obj[j].checked){
|
267 |
|
blnchecked = true;
|
268 |
|
}
|
269 |
|
}
|
270 |
|
if (!blnchecked){
|
271 |
|
alertMsg += " - " + fieldDescription[i] + "\n";
|
272 |
|
}
|
273 |
|
}
|
274 |
|
}
|
275 |
|
}
|
276 |
|
|
277 |
|
if (alertMsg.length == l_Msg){
|
278 |
|
return true;
|
279 |
|
}else{
|
280 |
|
alert(alertMsg);
|
281 |
|
return false;
|
282 |
|
}
|
283 |
|
}
|
284 |
|
/***********************************************
|
285 |
|
* Email Validation script- ? Dynamic Drive (www.dynamicdrive.com)
|
286 |
|
* This notice must stay intact for legal use.
|
287 |
|
* Visit http://www.dynamicdrive.com/ for full source code
|
288 |
|
***********************************************/
|
289 |
|
|
290 |
|
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
|
291 |
|
|
292 |
|
function checkmail(e){
|
293 |
|
var returnval=emailfilter.test(e.value);
|
294 |
|
if (returnval==false){
|
295 |
|
alert("Please enter a valid email address.");
|
296 |
|
e.select();
|
297 |
|
}
|
298 |
|
return returnval;
|
299 |
|
}
|
300 |
|
-->
|
301 |
|
|
302 |
|
</script>';
|
303 |
|
|
304 |
|
|
305 |
222 |
// Print footer
|
306 |
223 |
echo $footer;
|
307 |
224 |
|
... | ... | |
384 |
301 |
// Add to message body
|
385 |
302 |
if($field['type'] != '') {
|
386 |
303 |
if(!empty($_POST['field'.$field['field_id']])) {
|
387 |
|
if(isset($captcha_error)) $_SESSION['field'.$field['field_id']] = htmlspecialchars($_POST['field'.$field['field_id']]);
|
|
304 |
if (is_array($_POST['field'.$field['field_id']])) {
|
|
305 |
$_SESSION['field'.$field['field_id']] = $_POST['field'.$field['field_id']];
|
|
306 |
} else {
|
|
307 |
$_SESSION['field'.$field['field_id']] = htmlspecialchars($_POST['field'.$field['field_id']]);
|
|
308 |
}
|
388 |
309 |
if($field['type'] == 'email' AND $admin->validate_email($_POST['field'.$field['field_id']]) == false) {
|
389 |
310 |
$email_error = $MESSAGE['USERS']['INVALID_EMAIL'];
|
390 |
311 |
}
|
... | ... | |
405 |
326 |
}
|
406 |
327 |
}
|
407 |
328 |
}
|
408 |
|
|
409 |
|
// Addslashes to email body - proposed by Icheb in topic=1170.0
|
410 |
|
// $email_body = $wb->add_slashes($email_body);
|
411 |
|
|
|
329 |
|
412 |
330 |
// Check if the user forgot to enter values into all the required fields
|
413 |
331 |
if($required != array()) {
|
414 |
332 |
if(!isset($MESSAGE['MOD_FORM']['REQUIRED_FIELDS'])) {
|
... | ... | |
420 |
338 |
foreach($required AS $field_title) {
|
421 |
339 |
echo '<li>'.$field_title;
|
422 |
340 |
}
|
423 |
|
if(isset($email_error)) { echo '<li>'.$email_error.'</li>'; }
|
424 |
|
if(isset($captcha_error)) { echo '<li>'.$captcha_error.'</li>'; }
|
425 |
|
echo '</ul><a href="javascript: history.go(-1);">'.$TEXT['BACK'].'</a>';
|
426 |
|
|
|
341 |
if(isset($email_error)) {
|
|
342 |
echo '<li>'.$email_error.'</li>';
|
|
343 |
}
|
|
344 |
if(isset($captcha_error)) {
|
|
345 |
echo '<li>'.$captcha_error.'</li>';
|
|
346 |
}
|
|
347 |
echo '</ul><a href="'.htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])).'">'.$TEXT['BACK'].'</a>';
|
427 |
348 |
} else {
|
428 |
|
|
429 |
349 |
if(isset($email_error)) {
|
430 |
350 |
echo '<br /><ul>';
|
431 |
351 |
echo '<li>'.$email_error.'</li>';
|
432 |
|
echo '</ul><a href="javascript: history.go(-1);">'.$TEXT['BACK'].'</a>';
|
|
352 |
echo '</ul><a href="'.htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])).'">'.$TEXT['BACK'].'</a>';
|
433 |
353 |
} elseif(isset($captcha_error)) {
|
434 |
354 |
echo '<br /><ul>';
|
435 |
355 |
echo '<li>'.$captcha_error.'</li>';
|
436 |
|
echo '</ul><a href="javascript: history.go(-1);">'.$TEXT['BACK'].'</a>';
|
|
356 |
echo '</ul><a href="'.htmlspecialchars(strip_tags($_SERVER['PHP_SELF'])).'">'.$TEXT['BACK'].'</a>';
|
437 |
357 |
} else {
|
438 |
|
|
439 |
358 |
// Check how many times form has been submitted in last hour
|
440 |
359 |
$last_hour = time()-3600;
|
441 |
360 |
$query_submissions = $database->query("SELECT submission_id FROM ".TABLE_PREFIX."mod_form_submissions WHERE submitted_when >= '$last_hour'");
|
... | ... | |
500 |
419 |
|
501 |
420 |
// Now check if the email was sent successfully
|
502 |
421 |
if(isset($success) AND $success == true) {
|
503 |
|
if ($success_page=='none') {
|
|
422 |
if ($success_page=='none') {
|
504 |
423 |
echo str_replace("\n","<br />",$success_email_text);
|
505 |
424 |
} else {
|
506 |
425 |
$query_menu = $database->query("SELECT link,target FROM ".TABLE_PREFIX."pages WHERE `page_id` = '$success_page'");
|
507 |
426 |
if($query_menu->numRows() > 0) {
|
508 |
|
$fetch_settings = $query_menu->fetchRow();
|
509 |
|
$link = WB_URL.PAGES_DIRECTORY.$fetch_settings['link'].PAGE_EXTENSION;
|
510 |
|
echo "<script type='text/javascript'>location.href='".$link."';</script>";
|
|
427 |
$fetch_settings = $query_menu->fetchRow();
|
|
428 |
$link = WB_URL.PAGES_DIRECTORY.$fetch_settings['link'].PAGE_EXTENSION;
|
|
429 |
echo "<script type='text/javascript'>location.href='".$link."';</script>";
|
511 |
430 |
}
|
512 |
431 |
}
|
|
432 |
// clearing session on success
|
|
433 |
$query_fields = $database->query("SELECT field_id FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' AND required = 1");
|
|
434 |
while($field = $query_fields->fetchRow()) {
|
|
435 |
$field_id = $field[0];
|
|
436 |
if(isset($_SESSION['field'.$field_id])) unset($_SESSION['field'.$field_id]);
|
|
437 |
}
|
513 |
438 |
} else {
|
514 |
|
echo '<br />'.$TEXT['ERROR'];
|
515 |
|
}
|
516 |
|
|
|
439 |
if(isset($success) AND $success == false) {
|
|
440 |
echo $TEXT['ERROR'];
|
|
441 |
}
|
|
442 |
}
|
517 |
443 |
}
|
518 |
444 |
|
519 |
|
?>
|
|
445 |
?>
|
Updated form modul for valid output, removed all javascript (Big thanks to BerndJM)