【问题标题】:$_POST[] is not working$_POST[] 不工作
【发布时间】:2013-02-11 05:37:21
【问题描述】:

我是 PHP 新手。我正在尝试执行这个简单的代码。从一个 php 页面获取文本字段值,我想在另一个 php 页面中显示它。但是,它不起作用。我的错误在哪里??

new1.php

<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Untitled Document</title>
    </head>

    <body>
        <form action="welcome1.php" method="POST">
            <input name="Name" type="text" />
            <input name="submit" type="submit" value="Submit" />
        </form>
    </body>
    <?php
        SESSION_START();
        $var="";
            if(!empty($_POST['Name'])){
            $var=$_POST['Name'];
        } else {
            $var="NOT SET";
        }
        $_SESSION['name11']=$var;
    ?>
</html>

welcome1.php

<html>
    <body>
        <?php
        session_start();
        $n="";
        if(isset($_SESSION['name11'])){
            $n=$_SESSION['name11'];
            echo $n;
        } else {
            echo "no session";
        }
        ?>
    </body>
</html>

【问题讨论】:

  • 下面的蒙蒂卡洛给出了答案。我想建议session_start() 应该是页面的第一行,这是一个很好的做法,并且使调试更容易。另请阅读 PHP 中的 sessionsforms 的更多信息。
  • 所有后缀1的是什么
  • 它没有显示任何错误?????
  • @PrasanthBendra,不,它没有显示任何错误。但它给出了错误的输出。它在welcome1.php 页面中显示“未设置”。我想显示 new1.php 的文本字段中给出的值。我的错误在哪里?

标签: php post


【解决方案1】:

您的代码在错误的文件中。

这应该都在welcome1.php中,目前在new1.php中。

<?php
    SESSION_START();
    $var="";
    if(!empty($_POST['Name'])){
        $var=$_POST['Name'];
    }
    else
    {
        $var="NOT SET";
    }
    $_SESSION['name11']=$var;
?>

【讨论】:

  • 不,我真正想做的是,从一个页面(这里是 new1.php)访问文本字段值,在另一个页面(welcome1.php)中显示它。如果您详细说明您的解决方案...
  • PHP 无法按照您的预期工作。它在服务器端执行一次。如果您遵循我的解决方案,文本字段仍将位于 new1.php 页面上,但将在 Welcome1.php 中进行处理。
  • 非常感谢。我错了。
【解决方案2】:

您的代码错误。只是因为 session_start() 需要在发送标头之前运行。

您的解决方案是:

移动 session_start();以上

请访问: Why can't I use session_start() in my php script? It says headers are already sent

【讨论】:

  • 不,它仍然无法正常工作。我把脚本部分放在首位。 &lt;?php session_start();.... new1.php 的 else 部分正在执行。因此,在welcome1.php 中显示“未设置”。这不是预期的结果。
【解决方案3】:

问题是因为您将表单发布到welcome1.php(表单的操作)并且获取发布值的代码在new1.php中。

将文件更改为:

new1.php

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Untitled Document</title>
    </head>
    <body>
        <form action="welcome1.php" method="POST">
            <input name="Name" type="text" />
            <input name="submit" type="submit" value="Submit" />
        </form>
    </body>
</html>

welcome1.php

<?php
    session_start();
    $var="";
    if(!empty($_POST['Name'])){
        $var=$_POST['Name'];
    } else {
        $var="NOT SET";
    }
    $_SESSION['name11']=$var;

    echo $_SESSION['name11']; /// you get this $_SESSION['name11'] in all the pages.
?>

【讨论】:

  • 我建议你阅读表单提交和会话的基础知识,参考w3schools.com
  • 在堆栈中,我们接受答案并投票表示感谢:D
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
  • 2012-02-18
  • 2012-09-13
  • 2015-03-05
相关资源
最近更新 更多