Sådan benyttes komponenten Server klassen
Først skal du inkludere den fil der beskriver komponenten, som en klasse fil
<? require_once(HTML_PACKAGE_PATH.'/Server.php'); ?>
Dernæst kan du enten benytte komponenten som et taglib (statiske metoder):
<? Server::display($param1, $param2, $param3, ...); ?>
eller du kan lave en instance af komponenten og benytte metoderne direkte:
<? $object = new Server($param1, $param2, $param3, ...); print $object->getHtml(); ?>
Sådan vises komponenten Server klassen
Den fulde PHP kildekode for Server klassen
<?php/** * @package util * @see HTML_UTIL_COMPONENT_PATH.'/Server.php' * @copyright (c) http://Finn-Rasmussen.com * @license http://Finn-Rasmussen.com/license/ myPHP License conditions * @author http://Finn-Rasmussen.com * @version 1.11 * @since 27-nov-2009 *//** * The required files */require_once(HTML_BASE_COMMON_PATH.'/Object.php');if (defined('HTML_LOG_UTIL_PATH')) { require_once(HTML_LOG_UTIL_PATH.'/Log.php');}if (defined('HTML_BASIC_UTIL_PATH')) { require_once(HTML_BASIC_UTIL_PATH.'/Message.php');}/** * The Server object. * Retrieves the Server information * <code> * Usage: * $html = new Server(); * print $html->getHtml(); * Or * print Server::display(); * Or * print Server::get($key); * Or * print Server::getAcceptLanguage(); * print Server::getDocumentRoot(); * print Server::getHttpHost(); * print Server::getOs(); * print Server::getPhpSelf(); * print Server::getQueryString(); * print Server::getReferer(); * print Server::getRemoteAddr(); * print Server::getRequestMethod(); * print Server::getRequestUri(); * print Server::getScriptName(); * print Server::getServerName(); * print Server::getServerPort(); * print Server::getUserAgent(); * </code> * @package util */class Server extends Object { /** * @var String $item The Item to request */ protected $item = ''; /** * Constructor * @param String $item The Item to request */ function __construct($item='') { parent::__construct(); $this->item = $item; } /** * Returns the server info as html * @return String The html */ function getHtml() { $html = ''; if ($this->item == '') { $html .= '<table border="1" class="Border" cellpadding="1" cellspacing="0" width="100%">'."\r\n"; foreach ($_SERVER as $key=>$value) { $html .= '<tr><td valign="top">'.$key.'</td><td valign="top">'.$value.' </td></tr>'."\r\n"; } $html .= "</table >\r\n"; } else { $html .= Server::get($this->item); } return $html; } /** * Display html * <code> * Usage: * Server::display($item); * </code> * @static * @param String $item The Item to request */ public static function display($item='') { $html = new Server($item); $html->addHtml(); } // ********** just helper functions *********** /** * The function verify that the get/post request uri is the same as the referer * when a get/post is requested where the command is a create, update or delete or remove CRUD * @static * @return boolean Return true, if the same referer is the same as the request uri, false othervise */ public static function isValidReferer() { $isValid = false; /** * This is where the user came from * sample: http://finnrasmussen.dk/lej-en-konsulent/ */ $referer = Server::getReferer(); /** * The url now holds the calculated domain name, without the http:// */ $url = substr($referer, strlen("http:/"."/")); /** * The domain now holds the calculated domain name */ $domain = substr($url, 0, strlen(DOMAIN_NAME)); if ($domain === DOMAIN_NAME) { $isValid = true; } if ($isValid) { // Do nothing } else { $msg = "Hacker detected: referer=$referer domain=$domain url=$url"; if (defined('HTML_LOG_UTIL_PATH')) { Log::error($msg, __FILE__, __LINE__); } else { if (defined('HTML_BASIC_UTIL_PATH')) { Message::add($msg, __FILE__, __LINE__); } else { die($msg); } } } return $isValid; } /** * Get the value from the specified key * <code> * Usage: * Server::get($key, $default); * </code> * @static * @param String $key The server param to get * @param String $default The default value to use, if not found * @return String The value of the requested key */ public static function get($key, $default='') { return empty($_SERVER[$key])?$default:$_SERVER[$key]; } /** * Get the remote addr * <code> * Usage: * Server::getRemoteAddr(); * I.e. $host = Server::getRemoteAddr(); * </code> * @static * @param String $default The default value to use, if not found * @return String The value of the requested key */ public static function getAcceptLanguage($default='') {return Server::get('HTTP_ACCEPT_LANGUAGE', $default);} //public static function getMimeType($default='') {return Server::get('MIME_TYPE', $default);} public static function getDocumentRoot($default='') {return Server::get('DOCUMENT_ROOT', $default);} // Bugfix public static function getHttpHost($default='') {return Server::get('HTTP_HOST', $default);} // Windows public static function getOs($default='') {return Server::get('OS', $default);} public static function getPhpSelf($default='') {return Server::get('PHP_SELF', $default);} public static function getQueryString($default='') {return Server::get('QUERY_STRING', $default);} public static function getReferer($default='') {return Server::get('HTTP_REFERER', $default);} public static function getRemoteAddr($default='') {return Server::get('REMOTE_ADDR', $default);} public static function getRequestMethod($default='') {return Server::get('REQUEST_METHOD', $default);} public static function getRequestUri($default='') {return Server::get('REQUEST_URI', $default);} // Bugfix public static function getScriptName($default='') {return Server::get('SCRIPT_NAME', $default);} // Windows public static function getServerName($default='') {return Server::get('SERVER_NAME', $default);} public static function getServerPort($default='') {return Server::get('SERVER_PORT', $default);} public static function getUserAgent($default='') {return Server::get('HTTP_USER_AGENT', $default);}}?>
Den fulde HTML kildekode for Server klassen
<? www.finnrasmussen.dk ?>
Her er 'klasse metoderne' for Server klassen:
Her er 'objekt variable' for Server klassen: