0

所以我有这个 php 脚本,它基本上会读取一个导演并将它变成一个列表,让我在 div 中显示:

<?php
            foreach ($entries as $entry => $is_dir) {
            $class_name = $is_dir ? 'directory' : 'file';
            $escaped_entry = htmlspecialchars($entry);
            printf('<li class="%s"><form action="page.php" method="get"><input type="hidden" name="stuff" value="%s"><input type="submit" value="%s"></form></li>' . "\n", $class_name, $escaped_entry, $escaped_entry);
            }
        ?>

我想不通的是如何将变量放入下一个脚本。它显示在下一页的网址中,但是我不知道如何将其放入脚本中,这很简单:

<?php $page = $_GET["stuff"]; include $page; ?>

CANT GET THIS 应该是从上述脚本的隐藏输入字段传递的任何内容。如何从 URL 中获取该值或将其传递到新脚本中?

我知道这将是一个简单的答案,我会为此拼命敲门,但我完全迷失了!任何和所有的帮助将不胜感激!而且我知道这里还有其他几个关于 get 方法的问题,但我没有看到任何与这个非常相似的问题,或者我很愚蠢。

编辑:Errrr 我基本上把整个情况复杂化了,并试图变得比需要的更花哨!我已经更改了上面的代码以反映正确和有效的方法!在大多数情况下,我让#escaped_entry 进入表单操作属性以及隐藏的输入名称字段......长话短说现在一切都很好!

4

2 回答 2

1
<?php 
$page = basename($_GET["THIS"]);
include $page;

basename() 是必不可少的,并且在寻址变量时引号是错误的。

于 2013-05-24T14:16:53.170 回答
1

尽量不要使用“this”这个词,也尽量不要在输入名称中使用空格。'this' 是 php 中的保留字。你可以简化你的代码并做这样的事情:

 <?php
    foreach ($entries as $entry => $is_dir) {
       $class_name = $is_dir ? 'directory' : 'file';
       $escaped_entry = htmlspecialchars($entry);
       $url = 'http://domain.com/yourscriptname.php?Mydir='.$escaped_entry;
       printf('<li class="%s"><a href="%s">%s</a></li>', $class_name, $url,$escaped_entry);
    }
?>

然后在 yourscriptname.php 你的 $escaped_entry 将存储在 $_GET['Mydir'];

对于傻瓜:之后您的网址中包含的所有内容?(问号),称为“QUERY_STRING”,可以通过 $_SERVER['QUERY_STRING'] 访问。这是 $key=>$value 变量对的序列化集合,由 & (与号)分隔,作为数组存储在 $_GET var 中。 http://en.wikipedia.org/wiki/Query_string

于 2013-05-24T15:16:33.800 回答