PHP表单确认解析错误

时间:2013-12-12 09:34:09

标签: php forms post confirmation php-parse-error

我有一些非常简单的PHP代码,我用它来确认来自表单的输入。

HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>Unit 7 - Homework 5</title>
    </head>
    <body>
        <h1>Contact us</h1>
        <table>
            <form method="POST" action="script.php">
                <tr>
                    <td>First Name:</td> 
                    <td><input type="text" name="First Name" id="fname"></td>
                </tr>
                <tr>
                    <td>Last Name:</td>
                    <td><input type="text" name="Last Name" id="lname"></td>
                </tr>
                <tr>
                    <td>E-mail:</td>
                    <td><input type="text" name="E-mail" id="email"></td>
                </tr>
                <tr>
                    <td>Comments</td>
                    <td><textarea rows="10" cols="40"></textarea></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" value="Contact"> &nbsp; <input type="reset"></td>
                </tr>
            </form>
        </table>
    </body>
</html>

PHP

<?php print "<!DOCTYPE html>
<html lang=\"en\">
<head>
    <title>Form Confirmation</title>
</head>
<body>
    <h1>Congratulations, registration done!</h1>";
    $message = ";
    foreach ($_POST as $key => $value) {
        $message .= $key . ":" .$value. "<br>\r\n";
    }

    print $message;
    print "<br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <form action=\"#\">
    <input type=\"button\" value=\"Back\" onclick=\"javascript:history.go(-1)\" />
    </form>
</body>
</html>"
?>

PHP代码不断产生错误。

Parse error: syntax error, unexpected ':' in <PHP path goes here> on line 10

我不确定我做错了什么,虽然我觉得我可能忘记了分号。

5 个答案:

答案 0 :(得分:3)

PHP解析器对此感到困惑:

$ message =“;

替换为

$ message =“”;

答案 1 :(得分:1)

除了错误$message = ";$message = "";您正在print内使用print来显示消息(print $message)。

替代解决方案: -

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Form Confirmation</title>
</head>
<body>
    <h1>Congratulations, registration done!</h1>
    <?php

    $message = '';
    foreach ($_POST as $key => $value) {
        $message .= $key . ":" .$value. "<br>\r\n";
    }

    print $message;
    ?>
    <form action="#">
    <input type="button" value="Back" onclick="javascript:history.go(-1)" />
    </form>
</body>
</html>

答案 2 :(得分:0)

你有:

$message = ";

也许是:

$message = "";

此外,您不需要以这种方式声明它,您也可以:

$message;

答案 3 :(得分:0)

你唯一的错误就是你把文本thjat想要php用双引号打印,这意味着php会对它进行评估,看看它是否需要用它来处理。相反,你应该把它放在单引号中:......':'...

单引号中引用的任何内容都将按字符逐个打印。 任何双引号都将被评估。

答案 4 :(得分:0)

我认为可能是

$message = "";
foreach ($_POST['somevalue'] as $key => $value) {
    $message .= $key . ":" .$value. "<br>\r\n";
}