1<?php if (!defined('BB2_CORE')) die('I said no cheating!');
2
3// Functions called when a request has been denied
4// This part can be gawd-awful slow, doesn't matter :)
5
6require_once(BB2_CORE . "/responses.inc.php");
7
8function bb2_display_denial($settings, $key, $previous_key = false)
9{
10	define('DONOTCACHEPAGE', true);	// WP Super Cache
11	if (!$previous_key) $previous_key = $key;
12	if ($key == "e87553e1") {
13		// FIXME: lookup the real key
14	}
15	// Create support key
16	$ip = explode(".", $_SERVER['REMOTE_ADDR']);
17	$ip_hex = "";
18	foreach ($ip as $octet) {
19		$ip_hex .= str_pad(dechex($octet), 2, 0, STR_PAD_LEFT);
20	}
21	$support_key = implode("-", str_split("$ip_hex$key", 4));
22
23	// Get response data
24	$response = bb2_get_response($previous_key);
25	header("HTTP/1.1 " . $response['response'] . " Bad Behavior");
26	header("Status: " . $response['response'] . " Bad Behavior");
27	$request_uri = $_SERVER['REQUEST_URI'];
28	if (!$request_uri) $request_uri = $_SERVER['SCRIPT_NAME'];	# IIS
29?>
30<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
31<!--< html xmlns="http://www.w3.org/1999/xhtml">-->
32<head>
33<title>HTTP Error <?php echo $response['response']; ?></title>
34</head>
35<body>
36<h1>Error <?php echo $response['response']; ?></h1>
37<p>We're sorry, but we could not fulfill your request for
38<?php echo htmlspecialchars($request_uri) ?> on this server.</p>
39<p><?php echo $response['explanation']; ?></p>
40<p>Your technical support key is: <strong><?php echo $support_key; ?></strong></p>
41<p>You can use this key to <a href="http://www.ioerror.us/bb2-support-key?key=<?php echo $support_key; ?>">fix this problem yourself</a>.</p>
42<p>If you are unable to fix the problem yourself, please contact <a href="mailto:<?php echo htmlspecialchars(str_replace("@", "+nospam@nospam.", bb2_email())); ?>"><?php echo htmlspecialchars(str_replace("@", " at ", bb2_email())); ?></a> and be sure to provide the technical support key shown above.</p>
43<?php
44}
45
46function bb2_log_denial($settings, $package, $key, $previous_key=false)
47{
48	if (!$settings['logging']) return;
49	bb2_db_query(bb2_insert($settings, $package, $key));
50}
51
52?>
53