Fer*_*deh 174 php url redirect
我正在尝试将URL作为url参数传递给php,但是当我尝试获取此参数时,我什么也得不到
我正在使用以下网址表单:
http://localhost/dispatch.php?link=www.google.com
Run Code Online (Sandbox Code Playgroud)
我正试图通过:
$_GET['link'];
Run Code Online (Sandbox Code Playgroud)
但没有回来.问题是什么?
Álv*_*lez 255
$_GET不是函数或语言构造 - 它只是一个变量(数组).尝试:
<?php
echo $_GET['link'];
Run Code Online (Sandbox Code Playgroud)
特别是,它是一个超全局:一个由PHP填充的内置变量,可在所有范围内使用(您可以在没有global关键字的函数内部使用它).
由于变量可能不存在,您可以(并且应该)确保您的代码不会触发通知:
<?php
if (isset($_GET['link'])) {
echo $_GET['link'];
} else {
// Fallback behaviour goes here
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您想跳过手动索引检查并可能添加更多验证,则可以使用过滤器扩展:
<?php
echo filter_input(INPUT_GET, 'link', FILTER_SANITIZE_URL);
Run Code Online (Sandbox Code Playgroud)
Mar*_*coS 26
请发布您的代码,
<?php
echo $_GET['link'];
?>
Run Code Online (Sandbox Code Playgroud)
要么
<?php
echo $_REQUEST['link'];
?>
Run Code Online (Sandbox Code Playgroud)
做的工作......
pat*_*ick 16
为确保您始终保持安全,不使用过滤器,请使用FILTERS:
echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING);
Run Code Online (Sandbox Code Playgroud)
更多关于php.net函数filter_input的阅读,或查看不同过滤器的描述
Muh*_*man 16
用这个.我在dispatch.php中执行此操作.
$parameter = $_SERVER['QUERY_STRING'];
echo $parameter;
Run Code Online (Sandbox Code Playgroud)
接受的答案是好的.但是如果你有这样的场景:
http://www.mydomain.me/index.php?state=California.php#Berkeley
Run Code Online (Sandbox Code Playgroud)
您可以将命名锚点视为查询字符串,如下所示:
http://www.mydomain.me/index.php?state=California.php&city=Berkeley
Run Code Online (Sandbox Code Playgroud)
然后,像这样访问它:
$Url = $_GET['state']."#".$_GET['city'];
Run Code Online (Sandbox Code Playgroud)
小智 5
我没有得到任何东西$_GET["..."](例如print_r($_GET)给出一个空数组)但$_SERVER['REQUEST_URI']显示东西应该在那里。最后发现我只能访问该网页,因为我的 .htaccess 将其重定向到那里(我的 404 处理程序是同一个 .php 文件,并且我在测试时在浏览器中犯了一个拼写错误)。
简单地更改名称意味着一旦 404 重定向没有启动,相同的 php 代码就可以工作!
因此,即使 php 代码可能是正确的,也有一些方法可以返回任何内容。 $_GET
$Query_String = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] );
var_dump($Query_String)
Run Code Online (Sandbox Code Playgroud)
数组 ( [ 0] => link=www.google.com )