Revision 760
Added by Matthias over 16 years ago
view.php | ||
---|---|---|
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 |
?> |
Also available in: Unified diff
Updated form modul for valid output, removed all javascript (Big thanks to BerndJM)