Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过GET正确使用变量?_Php - Fatal编程技术网

Php 如何通过GET正确使用变量?

Php 如何通过GET正确使用变量?,php,Php,如何将变量正确地传递到路径? photos.php?fname=MARERINA <?php foreach(glob('.$_GET["fname"]./*.*') as $filename){ echo $filename; } ?> 首先,不要让用户输入到glob()中,除非您希望此目录可能位于服务器上的任何位置,即存在安全问题 使用字符串连接 $_GET["fname"] . '/*.*' …或带大括号的双引号 "{$_GET[fname]}/*.*" 您可

如何将变量正确地传递到路径? photos.php?fname=MARERINA

<?php
foreach(glob('.$_GET["fname"]./*.*') as $filename){
     echo $filename;
 }
?>

首先,不要让用户输入到
glob()
中,除非您希望此目录可能位于服务器上的任何位置,即存在安全问题

使用字符串连接

$_GET["fname"] . '/*.*'
…或带大括号的双引号

"{$_GET[fname]}/*.*"
您可以使用:

<?php
foreach(dirname(__file__).glob(".$_GET[fname]/*.*") as $filename){
     echo $filename;
 }
?>

或:



但请记住,请求文件“./”将显示父目录。因此,您可以检查文件名中的“.”并删除这些内容或打印错误…

您能告诉我怎么做吗?@Kaoukkos:手册会告诉您怎么做,就像您的PHP book.303在
PHP
标记中发布一样,您不能执行基本的字符串连接吗?@LightnessRacesinOrbit是的!
<?php
foreach(dirname(__file__).glob($_GET["fname"].'/*.*') as $filename){
     echo $filename;
 }
?>