隐藏字段中的PHP变量作为字符串文字传递到下一页

时间:2015-12-09 19:01:10

标签: php html

我正在做一个小任务并遇到一个我似乎无法弄清楚的问题。作业由三页组成。第一页包含一个接受用户输入的简单字段。第二页验证该输入,如果有效,则显示第二个输入字段。第三页验证第2页输入,然后将其添加到第1页输入。

我在第2页上使用了隐藏字段来存储第1页输入,以便将其提交到第3页。但是,因为第2页必须仅在前一个输入有效时才显示表单,所以我实现了表单在php条件语句中。所以,我直接引用了将页面1输入作为隐藏字段值的php变量。这是我的第2页代码:

<?php
if (isset($_POST["get_number1"] )) {
$number1 = $_POST['get_number1'];
$button_pressed = $_POST['sbmt'];
$message;
$error1 = false;
if ($number1==null) {
    $message = 'ERROR: input field empty';
    $error1=true;
}
else if (!is_numeric($number1)) {
    $message = 'ERROR: input must be numeric';
    $error1=true;            
}
else if (strpos((String)$number1,'.')!=null && strlen((String)$number1)-strpos((String)$number1,'.')>4) {
    $message = 'ERROR: input must contain 0 to 3 decimals';
    $error1=true;
}
else if (!strcmp($button_pressed,"sbmt")){
    $message = 'ERROR: submit button not pressed';
    $error1 = true;
}
}
?>
<html>
<head>
    <title>GetNumber2.html</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <?php
    if ($error1==true){
       echo $message .'<br>'. '<a href="GetNumber1.html">Return to Form 1</a>';
    }
    else {
        echo 'Your number 1: '.$number1.
         '  <form action="AddNumbers.php" method="post">
            <label>Enter the second number (format : 999999.999) :</label>
            <input type="text" name="get_number2">
            <input type="submit" name="sbmt" value="SubmitNumber">
            <input type="hidden" name="hf_number1" value="$number1";>             
            </form>
         ';
    }
    ?>
</body>
</html>

下一页显示隐藏字段值为$ number1,即使我删除了引号。任何提示将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

不解析带有'(单引号)的字符串。

这意味着'中的任何变量都将被视为字符串。

使用连接,例如:

$str = '<input type="hidden" name="hf_number1" value="' . $number1 . '">';