代码之家  ›  专栏  ›  技术社区  ›  Weeeen

如何使用$_POST永久更改某些内容

  •  0
  • Weeeen  · 技术社区  · 2 年前

    我正在尝试将数据从一个网站填充到另一个网站: a、 html:

    <form action="b.php" method="post">
    <textarea id="myProjects" name="mp"></textarea>
    <input id="submit" type="submit" value="Submit" />
    </form>
    

    在b.php中:

    <?php $content=$_POST['mp'];
    echo "you entered ".$content;
    ?>
    

    这是一种非常奇怪的方式,当我点击submit按钮时,我被引导到b.php页面,我可以看到我输入的内容。但如果我重新加载这个页面,而不是刷新,我的内容就会消失,并抛出 Warning: Undefined array key "mp" 看起来从$_POST收到的数据是“临时”存储的。我对PHP还不熟悉,所以我不知道该如何理解它。

    2 回复  |  直到 2 年前
        1
  •  0
  •   mindthefrequency    2 年前

    您可以使用PHP会话功能来保持数据的持久性:

    在b.php中:

    <?php
       // Start the session
       session_start();
    
       // save the input var as a SESSION property
       if (isset($_POST['mp'])) {
          $_SESSION['content'] = $_POST['mp'];
       }
    
       // display the property
       echo "you entered " . $_SESSION['content'];
    
        2
  •  0
  •   instance    2 年前

    一般来说,您要做的是将$_POST['mp']的值存储到$_SESSION变量中,以便它从一个页面请求持续到下一个页面请求。

    然而,直接操纵这些变量通常是不好的做法。除非你对用户输入进行净化,否则你将面临无数的脚本攻击。虽然需要学习一些知识,但使用一个已建立的PHP框架(例如Laravel)要好得多,它有一整套验证函数,并为您管理启动会话的过程。一个好的框架也会在很多其他方面帮助你。