【问题标题】:Propagate value of hidden field in php在php中传播隐藏字段的值
【发布时间】:2014-02-18 14:48:46
【问题描述】:

这是我的代码

<?php
    if (!strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'){ 
        $hdnNumber = rand(10, 500);}
    else
        if(isset($_POST["hiddenNumber"]))
            $hdnNumber = $_POST["hiddenNumber"];
    echo $hdnNumber ; 
    ?>        
<form action="" method="post">
        Number: <input type="text" name="number"><br>
        <input type="hidden" name="hiddenNumber" value="<?= $hdnNumber ?>" />
        <input type="submit" value="submit">
        </form>

我想在所有表单帖子上传播 $hdnNumber 的值,它的值应该是页面加载时生成的随机值。

当我提交表单时,它会再次创建一个新的随机数,但我只想保留第一个值。

请帮忙。 提前致谢

【问题讨论】:

  • 我认为您需要将 $hdnNumber 存储在 Session 中
  • 你可以使用会话。分配$_SESSION['hidden_number']=$hdnNumber;vice-versa,然后在之后回显它,它也适用于其他页面。 session_start(); 也将被包括在内。
  • 我没有看到你的评论@MarioJohnathan 我正忙着输入我的。大声笑
  • 所以你的意思是隐藏字段不可能做到这一点?
  • 是的,有可能@HariChaudhary

标签: php post hidden-field


【解决方案1】:

您应该只在值为空白/未设置时设置该值,例如

$hdnNumber = isset($_POST['hiddenNumber']) ? $_POST['hiddenNumber'] : rand(10,500);

【讨论】:

    【解决方案2】:

    为了恭维Marc B's answerternary operator 的使用,您可以使用sessions 在使用会话时将该(隐藏)值传递给另一个页面和任何后续页面。

    旁注:尽管您可以使用
    $hdnNumber = $_POST['hiddenNumber']; 在第二页中传递该(隐藏)号码,但仅限于此。

    如果您想将其用于与 DB 相关的工作,您可以将其分配给会话变量,该变量随后可以在其他任何地方使用。

    这在实施到数据库工作时可能会很有用。

    HTML 表单

    <?php
    session_start();
    // Borrowed from Marc B's answer
    $hdnNumber = isset($_POST['hiddenNumber']) ? $_POST['hiddenNumber'] : rand(10,500); 
    $_SESSION['hiddenNumber']=$hdnNumber;
    
    // my own testing method
        if(isset($_POST['submit'])){
            echo $_SESSION['hiddenNumber'];
    }
    ?>        
    <form action="" method="post">
    Number: <input type="text" name="number"><br>
    <input type="hidden" name="hiddenNumber" value="<?= $hdnNumber ?>" />
    <input type="submit" name="submit" value="submit">
    </form>
    
    <a href="hidden_session.php">Verify the number</a>
    

    hidden_​​session.php

    (将回显初始 HTML 表单中的数字)

    <?php
    session_start();
    $test=$_SESSION['hiddenNumber'];
    echo $test;
    ?>
    <a href="session_check2.php">Go here</a>
    

    session_check2.php

    (将回显相同的数字,最初来自 HTML 表单,已传递到第二页)

    <?php
    session_start();
    $test=$_SESSION['hiddenNumber'];
    echo $test;
    

    使用echo $_SESSION['hiddenNumber']; 也可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多