POST命令(PHP)拒绝连接


POST command (PHP) refuses to concatenate

所以我正在尝试设计一个网站,允许用户输入数据来设计塔。当谈到塔的基本部件的尺寸(高度、宽度和深度(时,我想以H x W x D的格式(即3 x 2 x 2(呈现它们。问题是,我在显示所有内容的网站第二页的PHP文件中遇到了连接问题。

到目前为止,我的代码是这样的:

<!DOCTYPE html>
<html>
<head>
    <title>Results for tower design</title>
</head>
<body>
    Pillar base shape: <?php echo $_POST["tBase"]; ?><br>
    Pillar dimensions: <?php echo ($_POST["tHeight"];)." x ".($_POST["tWidth"];)." x ".($_POST["tDepth"];) ?><br>
</body>
</html>

我很有可能犯了一个常见的初学者错误。如果是这样的话,我想知道我哪里出了问题以及如何避免它。

您在不合适的地方有一些额外的分号。分号表示PHP语句的结尾。您不应该在构建字符串的过程中使用它们。

($_POST["tHeight"];)

删除它们并确保您对输出进行消毒(否则您将面临XSS攻击(

htmlspecialchars($_POST["tHeight"])." x ".htmlspecialchars($_POST["tWidth"])." x ".htmlspecialchars($_POST["tDepth"])

运行这个,会抛出:Parse error: syntax error, unexpected ';' in...

在测试期间使用错误报告。

  • http://php.net/manual/en/function.error-reporting.php

此外,请确保POST数组包含值,并且表单使用具有匹配命名属性的POST方法。

有趣的事实是,您可以将其全部显示为一行:

Pillar dimensions: <?php echo "{$_POST["tHeight"]} x {$_POST["tWidth"]} x {$_POST["tDepth"]}"; ?>

每个用双引号包装的回显都可以只使用{}包装变量。

删除半列

<?php echo ($_POST["tHeight"] ." x ".$_POST["tWidth"] ." x ".$_POST["tDepth"]); ?>