Project

General

Profile

« Previous | Next » 

Revision 596

Added by thorn almost 17 years ago

added new CAPTCHA and ASP (Advanced Spam Protection)

View differences:

view.php
39 39
	echo "\n</style>\n";
40 40
} 
41 41

  
42
require_once(WB_PATH.'/include/captcha/captcha.php');
43
require_once(WB_PATH.'/include/captcha/asp.php');
44

  
42 45
// Function for generating an optionsfor a select field
43 46
if (!function_exists('make_option')) {
44 47
function make_option(&$n) {
......
119 122
// Print header
120 123
echo $header;
121 124

  
125
if(ENABLED_ASP) { // first add some honeypot-fields
126
?>
127
<input type="hidden" name="submitted_when" value="<?php $t=time(); echo $t; $_SESSION['submitted_when']=$t; ?>" />
128
<p class="nixhier">
129
email address:
130
<label for="email">Your e-mail address is not relevant Leave this field blank:</label>
131
<input id="email" name="email" size="56" value="" /><br />
132
Homepage:
133
<label for="homepage">Do not enter a homepage-url www.whatever.com here:</label>
134
<input id="homepage" name="homepage" size="55" value="" /><br />
135
URL:
136
<label for="url">Don't write anything in this field:</label>
137
<input id="url" name="url" size="61" value="" /><br />
138
Comment:
139
<label for="comment">Enter not your comment here:</label>
140
<textarea name="comment" cols="50" rows="10"></textarea><br />
141
</p>
142
<?php }
143

  
122 144
// Get list of fields
123 145
$query_fields = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' ORDER BY position ASC");
124 146
if($query_fields->numRows() > 0) {
......
179 201
}
180 202

  
181 203
// Captcha
182
if($use_captcha) {
183
	$_SESSION['captcha'] = '';
184
	for($i = 0; $i < 5; $i++) {
185
		$_SESSION['captcha'] .= rand(0,9);
186
	}
187
	?><tr><td class="field_title"><?php echo $TEXT['VERIFICATION']; ?>:</td><td>
188
	<table cellpadding="2" cellspacing="0" border="0">
189
	<tr><td><img src="<?php echo WB_URL; ?>/include/captcha.php?t=<?php echo time(); ?>" alt="Captcha" /></td>
190
	<td><input type="text" name="captcha" maxlength="5" /></td>
191
	</tr></table>
192
	</td></tr>
204
if($use_captcha) { ?>
205
	<tr>
206
	<td class="field_title"><?php echo $TEXT['VERIFICATION']; ?>:</td>
207
	<td><?php call_captcha(); ?></td>
208
	</tr>
193 209
	<?php
194 210
}
195 211
echo '
......
292 308
		// Set new submission ID in session
293 309
		$_SESSION['form_submission_id'] = new_submission_id();
294 310
		
311
		if(ENABLED_ASP && ( // form faked? Check the honeypot-fields.
312
			(!isset($_POST['submitted_when']) OR !isset($_SESSION['submitted_when'])) OR 
313
			($_POST['submitted_when'] != $_SESSION['submitted_when']) OR
314
			(!isset($_POST['email']) OR $_POST['email']) OR
315
			(!isset($_POST['homepage']) OR $_POST['homepage']) OR
316
			(!isset($_POST['comment']) OR $_POST['comment']) OR
317
			(!isset($_POST['url']) OR $_POST['url'])
318
		)) {
319
			exit(header("Location: ".WB_URL.PAGES_DIRECTORY.""));
320
		}
321

  
295 322
		// Submit form data
296 323
		// First start message settings
297 324
		$query_settings = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_settings WHERE section_id = '$section_id'");
......
354 381
		}
355 382
		
356 383
		// Captcha
357
		if(extension_loaded('gd') AND function_exists('imageCreateFromJpeg')) { /* Make's sure GD library is installed */
358
			if($use_captcha) {
359
				if(isset($_POST['captcha']) AND $_POST['captcha'] != ''){
360
					// Check for a mismatch
361
					if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
362
						$captcha_error = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'];
363
					}
364
				} else {
384
		if($use_captcha) {
385
			if(isset($_POST['captcha']) AND $_POST['captcha'] != ''){
386
				// Check for a mismatch
387
				if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
365 388
					$captcha_error = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'];
366 389
				}
390
			} else {
391
				$captcha_error = $MESSAGE['MOD_FORM']['INCORRECT_CAPTCHA'];
367 392
			}
368 393
		}
369 394
		if(isset($_SESSION['captcha'])) { unset($_SESSION['captcha']); }
......
431 456
					}				
432 457
			
433 458
					// Write submission to database
434
					if(isset($admin) AND $admin->get_user_id() > 0) {
435
						$admin->get_user_id();
459
					if(isset($admin) AND $admin->is_authenticated() AND $admin->get_user_id() > 0) {
460
						$submitted_by = $admin->get_user_id();
436 461
					} else {
437 462
						$submitted_by = 0;
438 463
					}

Also available in: Unified diff