'; print '

'.__('404 to Start Settings', 'f042start').'

'; print '
'; wp_nonce_field('update-options', '_wpnonce'); settings_fields( 'f042start_option-group'); print'
'.__('404 Redirect', 'f042start').'
'.__('off', 'f042start').'
'.__('301 - Moved permanently', 'f042start').'
'.__('302 - Found/ Moved temporarily (not recommended)', 'f042start').'
'.__('Email alert to: ', 'f042start').'
    '.__('Exclude logged in users from triggering email alert', 'f042start').'
    '.__('Exclude search engine agents from triggering email alert', 'f042start').'
'.__('Target Url: (Start with http://)', 'f042start').'
'; print '

'; print '
'; print ''; print '


'; require_once('whatsup.php'); } // sanitize function function f042start_check_values($input) { # check target url if (!f042start_is_valid_url($input)) { add_settings_error('f042start_option-group', 'settings_updated', __('This is not a valid Url', 'f042start'), $type = 'error'); } return $input; } function f042start_checked($checkOption, $checkValue) { return get_option($checkOption)==$checkValue ? " checked" : ""; } // Trap 404 errors and redirect them to start page // 301=permanently moved // 302=temporary function f042start_output_header() { # setting default target to prevent errors if (get_option('f042start_target')=="") { $target=home_url(); } else { $target=get_option("f042start_target"); } if ( is_404() && get_option("f042emailalert") ) { if ( (get_option("f042exclude") && is_user_logged_in()) || (get_option("f042exclude2") && f042start_is_crawlers()) ) { // no mail } else { // send email alert $message=get_bloginfo('name')."\n"; $message.=get_bloginfo('wpurl')."\n"; $message.="False URL: ".f042start_curPageURL()."\n"; $message.="Referer URL: ".$_SERVER['HTTP_REFERER']."\n"; $message.="User agent: ".$_SERVER['HTTP_USER_AGENT']."\n"; $message.="Remote Host: ".$_SERVER['REMOTE_HOST']."\n"; $message.="Remote Addres: ".$_SERVER['REMOTE_ADDR']."\n"; $returnvalue=wp_mail( get_option("f042startemailaddres"), __('404 alert from ', 'f042start').get_bloginfo('name'), $message, "From: ".get_bloginfo('admin_email') ); } } if ( !is_404() || get_option("f042start_type")=="off" ) return; wp_redirect( $target, get_option("f042start_type") ); } # http://www.roscripts.com/snippets/show/156 function f042start_is_valid_url ( $url ) { $url = @parse_url($url); if ( ! $url) { return false; } $url = array_map('trim', $url); $url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port']; $path = (isset($url['path'])) ? $url['path'] : ''; if ($path == '') { $path = '/'; } $path .= ( isset ( $url['query'] ) ) ? "?$url[query]" : ''; if ( isset ( $url['host'] ) AND $url['host'] != gethostbyname ( $url['host'] ) ) { if ( PHP_VERSION >= 5 ) { $headers = get_headers("$url[scheme]://$url[host]:$url[port]$path"); } else { $fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30); if ( ! $fp ) { return false; } fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n"); $headers = fread ( $fp, 128 ); fclose ( $fp ); } $headers = ( is_array ( $headers ) ) ? implode ( "\n", $headers ) : $headers; return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers ); } return false; } function f042start_curPageURL() { $pageURL = 'http'; if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } function f042start_is_crawlers() { $sites = 'facebookexternalhit|Squider|NING|genieo|butterfly|JS-Kit|InAGist|BUbiNG|crawler|Java|Google|Yahoo|Ask|bot|spider|Twikle|flipboard|longurl|crowsnest|peerindex|UnwindFetchor'; // Add the rest of the search-engines return (preg_match("/$sites/i", $_SERVER['HTTP_USER_AGENT']) > 0) ? true : false; } ?>