URL:
url.com/index.php?id=1000
如何从1000
获取id
并将其添加到页面上的<h1></h1>
?
答案 0 :(得分:6)
您从$_GET数组中获取数字并使用htmlspecialchars将其转义以防止XSS攻击:
echo '<h1>', htmlspecialchars($_GET['id']), '</h1>';
答案 1 :(得分:2)
您应该使用$_GET superglobal数组,该数组包含查询字符串参数。
例如:
<h1><?php echo $_GET['id']; ?></h1>
答案 2 :(得分:2)
您可以使用全局数组$_REQUEST[]
,也可以使用显式$_GET
:
<h1><?php echo $_GET['id']; ?></h1>
要防止XSS,您还应该使用htmlspecialchars:
<h1><?php echo htmlspecialchars($_GET['id']); ?></h1>
答案 3 :(得分:2)
<h1><?php echo $_REQUEST["id"]; ?></h1>
答案 4 :(得分:2)
$id = $_GET["id"];
//Perform checks on $id
echo '<h1>'.$id.'<h1/>';
如果你想将它注入h1,你可以回复它并使用javascript来设置标签的innerhtml。
答案 5 :(得分:2)
使用$_GET
:
$id = isset($_GET['id']) ? (int) $_GET['id'] : FALSE;
echo '<h1>', $id, '</h1>';
如果网址在变量中,请使用parse_url
Docs和parse_str
Docs:
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $vars);
$id = isset($vars['id']) ? (int) $vars['id'] : FALSE;
echo '<h1>', $id, '</h1>';
修改强>
如果您启用了register globals(高度不鼓励,那么只是为了完整性),您可以这样做:
$id = isset($id) ? (int) $id : FALSE;
echo '<h1>', $id, '</h1>';
通常在您想要从$_GET
中解耦并将其包装到请求对象的应用程序中:
class Request
{
public function getParameter($name, $default = NULL)
{
return isset($_GET[$name]) ? $_GET[$name] : $default;
}
public function getParameterInt($name, $default = NULL)
{
$value = $this->getParameter($name, NULL);
return NULL === $value ? $default : (int) $value;
}
}
$request = new Request();
$id = $request->getParameterInt('id');
echo '<h1>', $id, '</h1>';
完成后,您可以稍后将请求实现替换为另一个,以使用非http请求运行和测试您的应用程序。这也有助于更好地构建代码以实现可重用性。