Revision: 38889
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 9, 2011 15:31 by jschilling
Initial Code
<?php
class HttpReq {
public $param; // the returned POST/GET values
public $cookie; // the returned COOKIE values
public $session; // the returned SESSION values
private $strength; // the strength of sanitization
/**
* Class constructor takes one argument to set the strength of sanitization
* @param string $strength values can be 'normal', 'strong', or 'strict'
*/
public function __construct($strength='normal'){
$this->param = array();
$this->cookie = array();
$this->session = array();
$this->strength = $strength;
}
/**
* Method to set, clean &/or sanitize a $_GET value if set
* @param string $name the name of the value sought
* @param boolean $urlDecode set to TRUE if the method should urldecode the value
* @param boolean $san set to TRUE if the method should sanitize the value against XSS vulnerabilities
* @return array
*/
public function by_get($name='', $urlDecode=FALSE, $san=FALSE) {
if (isset($_GET[$name]))
{
if ($urlDecode && $san) {
$this->param[$name] = $this->clean_data(
$this->san_data($_GET[$name]),
TRUE);
}
elseif ($urlDecode) {
$this->param[$name] = $this->clean_data($_GET[$name], TRUE);
}
elseif ($san) {
$this->param[$name] = $this->clean_data(
$this->san_data($_GET[$name]),
FALSE);
}
else {
$this->param[$name] = $this->clean_data($_GET[$name], FALSE);
}
}
else {
$this->param[$name] = NULL;
}
return $this->param;
}
/**
* Method to set, clean &/or sanitize a $_POST value if set
* @param string $name the name of the value sought
* @param boolean $urlDecode set to TRUE if the method should urldecode the value
* @param boolean $san set to TRUE if the method should sanitize the value against XSS vulnerabilities
* @return array
*/
public function by_post($name='', $urlDecode=FALSE, $san=FALSE) {
if (isset($_POST[$name]))
{
if ($urlDecode && $san) {
$this->param[$name] = $this->clean_data(
$this->san_data($_POST[$name]),
TRUE);
}
elseif ($urlDecode) {
$this->param[$name] = $this->clean_data($_POST[$name], TRUE);
}
elseif ($san) {
$this->param[$name] = $this->clean_data(
$this->san_data($_POST[$name]),
FALSE);
}
else {
$this->param[$name] = $this->clean_data($_POST[$name], FALSE);
}
}
else {
$this->param[$name] = NULL;
}
return $this->param;
}
/**
* Additional method to set a $_COOKIE value if set
* @param string $name the name of the value sought
*/
public function by_cookie($name='') {
$this->cookie[$name] = (isset($_COOKIE[$name])) ?
$_COOKIE[$name] : NULL;
return $this->cookie;
}
/**
* Additional method to set a $_SESSION value if set
* @param string $name the name of the value sought
*/
public function by_session($name='') {
$this->session[$name] = (isset($_SESSION[$name])) ?
$_SESSION[$name] : NULL;
return $this->session;
}
/**
* Private method to clean data
* @param mixed $data
* @param Boolean $isUrlEncoded
*/
private function clean_data($data, $isUrlEncoded=FALSE) {
return ($isUrlEncoded) ?
strip_tags(trim(urldecode($data))) :
strip_tags(trim($data));
}
/**
* Private method to sanitize data
* @param mixed $data
*/
private function san_data($data) {
switch($this->strength){
default:
return htmlspecialchars($data, ENT_QUOTES, "UTF-8");
break;
case 'strong':
return htmlentities($data, ENT_QUOTES | ENT_IGNORE, "UTF-8");
break;
case 'strict':
return urlencode($data);
break;
}
}
}
Initial URL
http://www.six-degrees.com/six-degrees.html
Initial Description
Feel free to use this class however you'd like
Initial Title
HTTP request class for easy POST/GET manipulation
Initial Tags
http, object, post, forms
Initial Language
PHP