FOSSology  4.4.0
Open Source License Compliance by Open Source Software
common-parm.php
Go to the documentation of this file.
1 <?php
2 /*
3  SPDX-FileCopyrightText: © 2008-2012 Hewlett-Packard Development Company, L.P.
4 
5  SPDX-License-Identifier: LGPL-2.1-only
6 */
7 
14 define("PARM_INTEGER",1);
16 define("PARM_NUMBER",2);
18 define("PARM_STRING",3);
20 define("PARM_TEXT",4);
22 define("PARM_RAW",5);
23 
46 function GetParm($parameterName, $parameterType)
47 {
48  $Var = null;
49  if (array_key_exists($parameterName, $_GET)) {
50  $Var = $_GET[$parameterName];
51  }
52  if (! isset($Var) && isset($_POST) && array_key_exists($parameterName, $_POST)) {
53  $Var = $_POST[$parameterName];
54  }
55  if (! isset($Var) && isset($_SERVER) &&
56  array_key_exists($parameterName, $_SERVER)) {
57  $Var = $_SERVER[$parameterName];
58  }
59  if (! isset($Var) && isset($_SESSION) &&
60  array_key_exists($parameterName, $_SESSION)) {
61  $Var = $_SESSION[$parameterName];
62  }
63  if (! isset($Var) && isset($_COOKIE) &&
64  array_key_exists($parameterName, $_COOKIE)) {
65  $Var = $_COOKIE[$parameterName];
66  }
67  if (! isset($Var)) {
68  return null;
69  }
70  /* Convert $Var to a string */
71  switch ($parameterType) {
72  case PARM_INTEGER:
73  return (intval($Var));
74  case PARM_NUMBER:
75  return (floatval($Var));
76  case PARM_TEXT:
77  return (stripslashes($Var));
78  case PARM_STRING:
79  return (urldecode($Var));
80  case PARM_RAW:
81  return ($Var);
82  }
83  return null;
84 } // GetParm()
85 
89 function Traceback()
90 {
91  return(@$_SERVER['REQUEST_URI']);
92 } // Traceback()
93 
97 function Traceback_uri()
98 {
99  $V = explode('?',@$_SERVER['REQUEST_URI'],2);
100  return($V[0]);
101 } // Traceback_uri()
102 
109 function Traceback_parm($ShowMod=1)
110 {
111  $V = explode('?',@$_SERVER['REQUEST_URI'],2);
112  /* need to check the size to avoid accessing past the array, there are
113  * request URI's that only have a single entry after the explode.
114  */
115  if (count($V) >= 2) {
116  $V = preg_replace("/^mod=/", "", $V[1]);
117  } else if (count($V) == 1) {
118  $V = 'Default';
119  }
120 
121  if (! $ShowMod) {
122  $V = preg_replace("/^[^&]*/", "", $V);
123  }
124 
125  if (is_array($V)) {
126  return $V[0];
127  }
128  return $V;
129 } // Traceback_parm()
130 
136 function Traceback_parm_keep($List)
137 {
138  $Opt="";
139  $Max = count($List);
140  for ($i = 0; $i < $Max; $i ++) {
141  $L = &$List[$i];
142  $Val = GetParm($L, PARM_STRING);
143  if (! empty($Val)) {
144  $Opt .= "&" . "$L=$Val";
145  }
146  }
147  return($Opt);
148 } // Traceback_parm_keep()
149 
153 function Traceback_dir()
154 {
155  $V = explode('?',@$_SERVER['REQUEST_URI'],2);
156  $V = $V[0];
157  $i = strlen($V);
158  while (($i > 0) && ($V[$i - 1] != '/')) {
159  $i --;
160  }
161  $V = substr($V,0,$i);
162  return($V);
163 } // Traceback_uri()
164 
169 {
170  if (! empty(@$_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' &&
171  $_SERVER['HTTPS'] == 'on' || @$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
172  $protoUri = 'https://';
173  } else {
174  $protoUri = 'http://';
175  }
176  $portUri = (@$_SERVER["SERVER_PORT"] == "80") ? "" : (":" . @$_SERVER["SERVER_PORT"]);
177  $V = $protoUri . @$_SERVER['SERVER_NAME'] . $portUri . Traceback_uri();
178  return($V);
179 } // tracebackTotalUri()
const PARM_NUMBER
Definition: common-parm.php:16
Traceback_uri()
Get the URI without query to this location.
Definition: common-parm.php:97
Traceback_parm($ShowMod=1)
Get the URI query to this location.
const PARM_TEXT
Definition: common-parm.php:20
const PARM_INTEGER
Definition: common-parm.php:14
tracebackTotalUri()
Get the total url without query.
Traceback_dir()
Get the directory of the URI without query.
Traceback()
Get the URI + query to this location.
Definition: common-parm.php:89
const PARM_RAW
Definition: common-parm.php:22
const PARM_STRING
Definition: common-parm.php:18
GetParm($parameterName, $parameterType)
This function will retrieve the variables and check data types.
Definition: common-parm.php:46
Traceback_parm_keep($List)
Create a new URI, keeping only these items.