似乎不能得到联系表单脚本的工作


Can't seem to get Contact Form Script to work

粘贴PHP代码:http://pastie.org/6427151

粘贴HTML表单:http://pastie.org/6427155

知道为什么这不起作用吗?它吐出'请填写所有的字段。,即使所有字段都正确填写。我对PHP了解甚少,所以它很可能是一些简单的东西。我在另一个网站上使用相同的脚本,虽然它在那里工作得很好,这就是我为什么感到困惑的原因。

您的form标记中的输入字段需要name属性。name属性作为键来访问用户提交的$_POST$_GET数组中的值。

所以你需要有:

<form ... method="post">
...
<input type="text" name="name" id="name" placeholder="Name" ... />
...
<input type="email" name="email" id="email" placeholder="Email" ... />
...
<textarea name="message" id="message" ... ></textarea>
然后使用每个name(区分大小写)访问

:

$name = $_POST['name']; // not $_POST['Name'], or $_GET['name']

还要确保仔细地验证和清理您处理的所有用户提交的内容。

首先,为所有想要从表单提交数据的inputtextareaselectbutton元素定义name属性。

我还建议您使用filter_var()FILTER_VALIDATE_EMAIL标志来最佳处理呈现给脚本的内容:

// If invalid, this will return nothing.
// If valid, the email address as a string.
function validateEmail($eamil) {
    return filter_var($email, FILTER_VALIDATE_EMAIL);
}

这是最佳实践比脚本版本更安全的。对于这个函数,还有其他值得使用的筛选器和验证标志。

您需要在所有input类型中定义name属性。

<input type="text" placeholder="Name" class="full" required name="name" id="name" />

name属性值与$_POST相关,定义name attribute后可以得到$_POST['name']的值

您忘记为所有输入字段定义name attributes了。

name attribute指定<input>元素的名称。

name attribute用于引用JavaScript中的元素,或者用于在表单提交后引用表单数据。

<input type="text" placeholder="Name" name="name" class="full" required id="name" />
<input type="email" placeholder="Email" name="email" class="full" required id="email" />
<textarea id="message" cols="30" name="message" rows="10" class="full"></textarea>