HTML表单名称=会话

时间:2014-11-27 18:25:07

标签: php html forms input session-variables

我将单个文件名作为会话传递给我的HTML表单名称。我的第一个代码打印了我的目录“日记”中的文件列表,我试图在新页面readpage.html中打印所选文件的内容 但令我恐惧的是,因为我将会话$ _SESSION ['filename']作为变量传递,所有我的按钮都将我引导到我的会话变量已分配给的最后一个文件。

我可以做什么,以便每个按钮传递不同的文件名?我发现不可能将php变量作为我的表单输入名称传递,因为$ variable = $ _POST [PHP VARIABLE]不起作用..

note)我试图通过仅使用PHP(没有javascript,mysql表等)来实现这一点 谢谢

$folder = "diary";
    $files = scandir($folder);
    $fName = "diary/$file";
    ?><form method="POST" action="readPage.html"><?
    foreach ($files as $file)
    {
        if($file != "." && $file != "..")
        {
            $_SESSION["file"] = $file;
            $data = file_get_contents("diary/$file");
            $info = explode("\t",$data);
            ?>
                <input type="radio" name = <?=$_SESSION["file"] ?> >
                <?=$info[0]?> <input type="submit" value = "Go"  ><br>
            <?
        }
    }
    ?></form><?

接收文件readpage.html

    echo $_SESSION["file"];
    $fOpen = "diary/".$_SESSION["file"];
    $fData = file_get_contents($fOpen);

2 个答案:

答案 0 :(得分:0)

你在这里用

打开了一个php片段
  

&LT; ?,何时应该&lt; ?php

  

? &GT; &LT; form method =“POST”action =“readPage.html”&gt; &LT; ?php

不是这个

  

? &GT; &LT; form method =“POST”action =“readPage.html”&gt; &LT; ?

答案 1 :(得分:0)

您不需要使用会话。而不是$ _SESSION [“file”]使用$ _POST [“file”]。我在你的输入中添加了name attribute name =“file”,作为value属性我添加了文件名。在处理页面中,您可以在变量$ _POST [“file”]中访问文件名。

$folder = "diary";
$files = scandir($folder);
$fName = "diary/$file";
?><form method="POST" action="readPage.html"><?
foreach ($files as $file)
{
    if($file != "." && $file != "..")
    {
        $data = file_get_contents("diary/$file");
        $info = explode("\t",$data);
        ?>
            <input type="radio" name="file" value="<? echo $file ?>" >
            <?=$info[0]?> <input type="submit" value = "Go"  ><br>
        <?
    }
}
?></form><?

处理表格:

echo $_POST["file"];
$fOpen = "diary/".$_POST["file"];
$fData = file_get_contents($fOpen);

当然你应该将表单操作更改为php脚本readPage.html到readPage.php