PHP:表单值未正确传递给处理程序脚本

时间:2015-07-31 09:08:37

标签: php

我使用hidden.php将两个值传递给“hidden_​​handler.php”,以便它们显示在网页上。使用的两个变量是hidden.php中的$ user和$ time。但是,当它们被传递给hidden_​​handler.php时,这两个值显示为 “$ user”和“$ time”而不是他们的指定值,即“Hunt”和实际时间。

我试图找出相当长一段时间,但却找不到它的原因。提前感谢任何有价值的反馈。

以下是带有代码的两个文件。

hidden.php

<?php
date_default_timezone_set(' UTC ');
$time = date(' H:i, F j');
$user = 'Hunt';
?>

<form action = "hidden_handler.php" method = "POST">
    <fieldset>
        <legend>Send us your comments</legend>
        <textarea rows="5" cols="20" name="comment">
        </textarea>

        <input type="hidden" name="user" value="$user">
        <input type="hidden" name="time" value="$time">


    </fieldset><p><input type="submit" ></p></form>
?>

hidden_​​handler.php

<?php
if (!empty($_POST['comment'])) {
    $comment = $_POST['comment'];
} else {
    $comment = NULL;
    echo 'You must enter a comment';
}

$time = (!isset($_POST['time']) ) ? NULL : $_POST['time'];

$user = (!isset($_POST['user']) ) ? NULL : $_POST['user'];

if (( $comment != NULL ) &&
        ( $time != NULL ) && ( $user != NULL )) {
    echo "<p>Comment received :\" $comment\" <br>
                                        From $user at $time </p>";
}
?>

当hidden.php运行时,我将注释键入为“test” 而$ user和$ time是硬编码的[ $ user ='Hunt'和$ time = date('H:i,F j')]。

结果如下所示:

  

收到的评论:“测试”   来自$ user at $ time

2 个答案:

答案 0 :(得分:0)

当你

<input type="hidden" name="user" value="$user">
<input type="hidden" name="time" value="$time">

你是用HTML而不是用PHP做的,所以这些值是字面意思的 - 变量没有被替换。

你需要

<?php
   echo "<input type=\"hidden\" name=\"user\" value=$user>"
   echo "<input type=\"hidden\" name=\"time\" value=$time>"
?>

答案 1 :(得分:0)

你应该使用:

<input type="hidden" name="user" value="<?php echo $user;?>">
<input type="hidden" name="time" value="<?php echo $time?>">

在HTML中使用引号将内部值视为字符串,它们不会被解释为PHP变量。