HTML 表单名称 = 会话


HTML form name = session

我将单个文件名作为会话传递给我的HTML表单名称。我的第一个代码打印我的目录"日记"中的文件列表,我正在尝试在新页面阅读页中打印所选文件的内容.html但令我震惊的是,由于我将会话 $_SESSION['文件名'] 作为变量传递,所以我的所有按钮都将我定向到我的会话变量已分配到的最后一个文件。

我该怎么做才能让每个按钮传递不同的文件名?我发现不可能传递一个php变量作为我的表单输入名称,因为$variable = $_POST[PHP VARIABLE]不起作用。

注)我正在尝试仅使用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><?

接收文件读取页.html

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

你在这里打开了一个 php 段

<?,什么时候应该><?php>

?>

<?php

不是这个

?> <表单方法 操作="readPage.html"> <?

您不需要使用会话。使用 $_POST["file"] 代替 $_SESSION["file"]。我将名称属性名称="文件"添加到您的输入中,作为值属性,我添加了文件名。在处理页面中,您可以访问变量 $_POST["文件"] 中的文件名。

$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