首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >if (isset($_POST["submit"]))

if (isset($_POST["submit"]))
EN

Stack Overflow用户
提问于 2015-08-28 20:10:47
回答 3查看 1.8K关注 0票数 0

我是一个全新的程序员,我正在尝试用php开发一个网站。在这部分代码中,我想要做的就是“读取”用户的输入,并将它们保存为会话变量,以便在另一个子页面中执行/计算其他操作。为了查看是否一切正常,我添加了行echo "Welcome ",$_SESSION["firstname"]; echo "ok",但它不工作。你能帮帮我吗?下面是我的代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<body>
<form method="post" action="">
        <b>First Name:</b> <input name="firstname" type="text" value=""></br></br>
        <b>Last Name:</b>  <input name="lastname" type="text" value=""></br></br>
        <b>Age:</b> <input name="age" type="number" min="0" value=""></br></br>
        <b>Number of people in household:</b> <input name="numberofpeopleinhousehold" type="number" min="1"value=""></br></br>

        </br></br>
        <input type="submit" name="submit" value="Submit">
</form

<?php
session_start();
if (isset($_POST["submit"])){
$_SESSION["firstname"]= $_POST["firstname"];
$_SESSION["lastname"]= $_POST["lastname"];
$_SESSION["age"]= $_POST["age"];
$_SESSION["numberofpeopleinhousehold"]= $_POST["numberofpeopleinhousehold"];
}
echo "Welcome ".$_SESSION["firstname"];//here is....
echo "ok"
?>

</body>
</html>
EN

回答 3

Stack Overflow用户

发布于 2015-08-28 20:17:21

这实际上是有效的。如果你看一下源代码,你会看到你的名字被重复了出来。

一个问题是在表单标签的末尾缺少一个大于号。

代码语言:javascript
复制
</form

应该是

代码语言:javascript
复制
</form>

此外,您需要在任何html之前启动会话。试试这个。

代码语言:javascript
复制
<?php
session_start();
if (isset($_POST["submit"])){
$_SESSION["firstname"]= $_POST["firstname"];
$_SESSION["lastname"]= $_POST["lastname"];
$_SESSION["age"]= $_POST["age"];
$_SESSION["numberofpeopleinhousehold"]= $_POST["numberofpeopleinhousehold"];
}
?>
<!DOCTYPE html>
<html>
<body>
<form method="post" action="">
        <b>First Name:</b> <input name="firstname" type="text" value=""></br></br>
        <b>Last Name:</b>  <input name="lastname" type="text" value=""></br></br>
        <b>Age:</b> <input name="age" type="number" min="0" value=""></br></br>
        <b>Number of people in household:</b> <input name="numberofpeopleinhousehold" type="number" min="1"value=""></br></br>

        </br></br>
        <input type="submit" name="submit" value="Submit">
</form>

<?php
if ($_SESSION["firstname"] != ""){
    echo "Welcome ",$_SESSION["firstname"];
    echo "ok";
}
?>

</body>
</html>
票数 1
EN

Stack Overflow用户

发布于 2015-08-28 20:17:37

session_start()所做的就是在向浏览器提供服务时在页眉中发送一个cookie。如果已经向浏览器发送了一些数据,比如表单,那么PHP将无法启动会话。您需要将session_atart()移动到文档的最顶部,表单或任何echos的上方。此外,正如其他人所指出的,您还缺少一个分号。此外,您还需要正确地关闭<form>标记。

票数 1
EN

Stack Overflow用户

发布于 2015-08-28 20:20:00

echo输出在if内部,delcare会话在顶部启动,经过测试并100%正常工作。注意-在顶部添加php代码并关闭form标签

代码语言:javascript
复制
<?php
session_start();  //session start must be first line

if (isset($_POST["submit"])){
    $_SESSION["firstname"]= $_POST["firstname"];
    $_SESSION["lastname"]= $_POST["lastname"];
    $_SESSION["age"]= $_POST["age"];
    $_SESSION["numberofpeopleinhousehold"]=  $_POST["numberofpeopleinhousehold"];
    echo "Welcome ".$_SESSION["firstname"];  //inside if condition
    echo "ok";
}
?>
<!DOCTYPE html>
<html>
<body>
<form method="post" action="#">
    <b>First Name:</b> <input name="firstname" type="text" value=""/></br></br>
    <b>Last Name:</b>  <input name="lastname" type="text" value=""/></br></br>
    <b>Age:</b> <input name="age" type="number" min="0" value=""/></br></br>
    <b>Number of people in household:</b> <input name="numberofpeopleinhousehold" type="number" min="1"value=""/></br></br>

    </br></br>
    <input type="submit" name="submit" value="Submit"/>
</form>  <!-- close form tag -->

</body>
</html>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32270768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档