表单中的PHP会话数据未传递和/或未打印到屏幕

表单中的PHP会话数据未传递和/或未打印到屏幕,php,html,forms,raspberry-pi,Php,Html,Forms,Raspberry Pi,我正在玩弄我的Raspberry Pi 3作为web服务器 我想了解更多关于通过表单处理用户输入的信息 我在/var/www/html中有两个文件,即form.html和form.php: <?php session_start(); $var_value = htmlspecialchars($_SESSION['varname']); echo $var_value; ?> form.html: <form action="form.php

我正在玩弄我的Raspberry Pi 3作为web服务器

我想了解更多关于通过表单处理用户输入的信息

我在
/var/www/html
中有两个文件,即
form.html
form.php

<?php

    session_start();

    $var_value = htmlspecialchars($_SESSION['varname']);

    echo $var_value;

?>
form.html

<form action="form.php" method="post">
<input type="text" name="varname"/>
<input type="submit" name="Submit" value="Submit!" />
</form>

<?php

    session_start();

    if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname'];
    }
?>
当我点击提交!在
form.html
上,浏览器将带我进入
form.php
,其中显示一个空白页面

当然,我希望它将
$var\u value
打印到屏幕上


我的代码中是否存在问题,或者可能是其他服务器端问题?

将form.html扩展名更改为form.php

您可以使用下面的代码来完成您的工作

Form.php//单页

<?php
session_start(); // Should be in first Line
if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname'];
    $var_value = htmlspecialchars($_SESSION['varname']);
    echo $var_value;
    }
?>
<form method="post">
<input type="text" name="varname"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
?>

?>
否则://多页

form.php

<form action="some_form.php" method="post">
<input type="text" name="varname"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
<?php
session_start();
if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname'];
    $var_value = htmlspecialchars($_SESSION['varname']);
    echo $var_value;
    }
?>

some_form.php

<form action="some_form.php" method="post">
<input type="text" name="varname"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
<?php
session_start();
if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname'];
    $var_value = htmlspecialchars($_SESSION['varname']);
    echo $var_value;
    }
?>

将form.html扩展名更改为form.php

您可以使用下面的代码来完成您的工作

Form.php//单页

<?php
session_start(); // Should be in first Line
if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname'];
    $var_value = htmlspecialchars($_SESSION['varname']);
    echo $var_value;
    }
?>
<form method="post">
<input type="text" name="varname"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
?>

?>
否则://多页

form.php

<form action="some_form.php" method="post">
<input type="text" name="varname"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
<?php
session_start();
if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname'];
    $var_value = htmlspecialchars($_SESSION['varname']);
    echo $var_value;
    }
?>

some_form.php

<form action="some_form.php" method="post">
<input type="text" name="varname"/>
<input type="submit" name="Submit" value="Submit!" />
</form>
<?php
session_start();
if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname'];
    $var_value = htmlspecialchars($_SESSION['varname']);
    echo $var_value;
    }
?>


它已经在两个页面的PHP代码块的第一行;是否应该在整个文档的开头?您的服务器配置是否允许在
*.html
文件中执行PHP代码?尝试将
*.html
文件更改为
*.php
并尝试结果。将文件名从form.html更改为form.phpPHP默认情况下,代码不会在扩展名为
.html
的文件中运行。因此
form.html
中的代码将不会运行。此外,PHP代码在抛出页面之前运行,因此
form.html
中的PHP代码将无法工作,即使它已运行,因为
varname
不存在,直到您将该页面提交到
form.PHP
scriptAnd
session\u start()
应该是文件中的第一行,否则将发送标题,其中包含无法按预期启动会话的内容;是否应该在整个文档的开头?您的服务器配置是否允许在
*.html
文件中执行PHP代码?尝试将
*.html
文件更改为
*.php
并尝试结果。将文件名从form.html更改为form.phpPHP默认情况下,代码不会在扩展名为
.html
的文件中运行。因此
form.html
中的代码将不会运行。此外,PHP代码在抛出页面之前运行,因此
form.html
中的PHP代码将无法工作,即使它已运行,因为
varname
不存在,直到您将该页面提交到
form.PHP
scriptAnd
session\u start()
应该是文件中的第一个标题,否则将发送标题,其中的内容将无法按预期启动会话。谢谢。我现在有两个页面,一个是
html
,另一个是
php
html
文件不包含
session_start()。现在一切都很好,谢谢。我现在有两个页面,一个是
html
,另一个是
php
html
文件不包含
session_start()。现在一切都很好。