| 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)