Php $\u GET和fopen出现问题

Php $\u GET和fopen出现问题,php,Php,我对$\u GET方法有一个奇怪的问题。我有这样一个php代码: $fopen("files/" . $_GET['file'], "r"); 当我写文件路径参数my self时,它运行良好,但当我从$\u get方法获取文件名时,它会显示一些错误,比如路径错误 怎么了 对于$\u GET方法是否有任何特殊编码,以将其解码为正确的字符串样式。我尝试了urldecode,但没有任何改变 正如下面所说: 尝试使用print、print\u r或var\u dump转储$\u GET 设法 删除代码

我对
$\u GET
方法有一个奇怪的问题。我有这样一个php代码:

$fopen("files/" . $_GET['file'], "r");
当我写文件路径参数my self时,它运行良好,但当我从$\u get方法获取文件名时,它会显示一些错误,比如路径错误

  • 怎么了
  • 对于
    $\u GET
    方法是否有任何特殊编码,以将其解码为正确的字符串样式。我尝试了urldecode,但没有任何改变
  • 正如下面所说:

  • 尝试使用print、print\u r或var\u dump转储$\u GET
  • 设法
  • 删除代码中的前导$(**$**fopen)
  • 使用if(is_file($path)测试指定目录中是否存在文件
  • 问题不是由文件扩展名或权限引起的吗
  • 可能还有更多。这还取决于您使用的系统(Win、Unix、Mac等)。

    如底部所述:

  • 尝试使用print、print\u r或var\u dump转储$\u GET
  • 设法
  • 删除代码中的前导$(**$**fopen)
  • 使用if(is_file($path)测试指定目录中是否存在文件
  • 问题不是由文件扩展名或权限引起的吗

  • 可能还有更多。这还取决于您使用的系统(Win、Unix、Mac…。

    第一条规则是清理您的输入。像这样使用$只会自找麻烦。
    做正确的事情。将$\u GET值放入变量中,验证它是否为有效输入,然后尝试打开文件。

    第一条规则是清理输入。像这样使用$\u GET只会自找麻烦。

    做正确的事情。将$\u GET值放入一个变量中,验证它是有效的输入,然后尝试打开文件。

    不要在未经验证的情况下使用用户输入,特别是不要在主机上打开文件!我不能过分强调这有多危险。如果有人输入了一个值为“../../../../../etc/passwo”的GET字符串怎么办在应用程序中输入rd?

    不要在未经验证的情况下使用用户输入,尤其是不要在主机上打开文件!我不能夸大这有多危险。如果有人在应用程序中输入了值为“../../../../../../../etc/password”的GET字符串,该怎么办?

    您是否尝试打印您获得的内容?(a)您使用什么URL来查看页面?(b)
    var_dump($_-GET);
    向您展示了什么?请注意,$_-GET不是一个方法,它是一个变量,特别是PHP的变量。
    echo“files/”$_-GET['file'];
    并向我们展示结果首先,“一些错误”?什么错误?“语法错误”与“未找到文件”。在您的示例中,您编写了
    $fopen
    ,这肯定不起作用。您真正的代码是否只使用
    fopen
    ?在该语句执行之前,
    $\u GET['File']
    的值是多少?(尝试回显它,看看有什么。)-1回答格式错误的问题。不要问陌生人“它有什么问题?”“,他们不知道。虽然您在错误消息中有一个全面的解释。或者至少在这里发布此消息-我们在这里不是媒介。您是否尝试打印您得到的内容?(a)您使用什么URL查看页面?(b)什么是
    var\u dump($\u-get)
    show you?还要注意$\u GET不是一个方法,它是一个变量,特别是PHP的变量。
    echo“files/”$\u GET['file'];
    并向我们展示结果首先,“一些错误”?什么错误?“语法错误”与“file not found”是一个本质上不同的问题。在您的示例中,您编写了
    $fopen
    ,这肯定不起作用。您真正的代码是否只使用
    fopen
    ?在该语句执行之前,
    $\u GET['file']
    的值是多少?(尝试回显它,看看有什么。)-1表示格式错误的问题。不要问陌生人“它有什么问题”,他们不知道。虽然您在错误消息中有一个全面的解释。或者至少在这里发布此消息-我们在这里不是媒介。这应该是对问题的评论,而不是答案。嗨,我意识到了,但我没有看到问题下方的添加评论按钮。我是盲人还是ff 4不喜欢stackoverflow?:-)@Bery Naah。你只是没有足够的声誉。是的,我在常见问题解答中发现了这一点:-),但谢谢你提供信息。@Bery你来了,我有+1,现在你可以发表评论了!:)这应该是对问题的评论,而不是回答。嗨,我意识到这一点,但我没有看到问题下方的添加评论按钮。我是盲人还是ff 4不喜欢stackoverflow?:-)@贝里那。你只是没有足够的声誉。是的,我在常见问题解答中发现了这一点:-),但谢谢你提供的信息。@Bery你来了,我有+1,现在你可以发表评论了!:)你知道,你指出了一个很好的项目,我会解决它。顺便说一下,我验证了我的数据,它确实是正确的。你知道,你指出了一个好项目,我会解决它。顺便说一句,我验证了我的数据,它确实是正确的。我明白了。你说得对。我不知道为什么我这样做,而我在我的数据库中存储的变量,可以用来在某种程度上只是获得文件id和下一个。。。谢谢你们所有人!我明白了。你说得对。我不知道为什么我这样做,而我在我的数据库中存储的变量,可以用来在某种程度上只是获得文件id和下一个。。。谢谢你们所有人!