Php会话无法处理输入


Php session unable to process input

我有这段代码,要求用户输入一个数字,然后将创建该数量的课程。

<form action="k1levelselect.php" method="post"> How many lessons do you want to create?
<input type="text" name="number" value=""><br>
<input type="submit" value="Submit">
</form>
<?php
session_start();
$_SESSION['views']=$number;
?>

然后它会把我带到下一页,并打印出用户想要的"课程"的数量。

 <?php
    session_start();
    $noOfLesson = $_SESSION['views'];
        for($i = 1; $i <= $noOfLesson; $i++) {
        echo "Pageviews=". $_SESSION['views'];
    echo "<div>
        <a href='"k1levelX.php?lesson=".$i."'"><span>Lesson ".$i."</span></a>           
    </div>
    <br>";
        }
        ?>

问题是在第一个代码中,我无法使用$_SESSION['views']=$number将输入的'number'带到会话;然而,它工作时,我硬编码一个数字,如eg。$ _SESSION("视图")= 4;

您从未为$number分配任何值,该值必须首先来自您的命名表单元素number。为您的命名表单元素的POST变量分配一个变量,然后使用会话名称并将其分配给$number变量。

session_start();
$number = $_POST['number'];
$_SESSION['views']=$number;

前言:
(编辑)我注意到自从第一次加入Stack以来,你问了一些问题,但没有接受任何问题。

如果你有理由没有接受任何答案,可能是因为没有一个答案解决了一个问题,一定要让这个人或几个人详细说明他们的答案。

  • 请阅读以下文章:如何接受回答?

答:

在这里,这是你需要做的,关于你的评论"不工作":(另外,你没有分配一个变量关于你的POST表单元素)。这已经解释过了。

你的(新)表单: -确保上面没有任何内容(没有空间,cookie, HTML,什么都没有),因为它会导致/抛出" Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at... "错误;if错误报告默认为ON。

<?php
session_start();
// check if session is set, which will echo the last entered number
if(isset($_SESSION['views'])){
echo $_SESSION['views'];
}
?>
<form action="k1levelselect.php" method="post">
How many lessons do you want to create?
<input type="text" name="number" value=""><br>
<input type="submit" value="Submit">
</form>

将此复制到您的k1levelselect.php文件: -确保上面没有任何内容(没有空间,cookie, HTML,什么都没有),因为它会导致/抛出" Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at... "错误;if错误报告默认为ON。

<?php 
session_start();
$number = $_POST['number']; // assign variable from POST
$_SESSION['views']=$number; // assign session to variable
    $noOfLesson = $_SESSION['views'];
        for($i = 1; $i <= $noOfLesson; $i++) {
        echo "Pageviews=". $_SESSION['views'];
    echo "<div>
        <a href='"k1levelX.php?lesson=".$i."'"><span>Lesson ".$i."</span></a>           
    </div>
    <br>";
        }
?>

如果错误报告默认情况下不是ON,请在您的<?php标签下面添加以下内容:

error_reporting(E_ALL);
ini_set('display_errors', 1);

它将显示任何错误;如果任何.