用 PHP 代码粘贴:http: //pastie.org/6427151
使用 HTML 表单粘贴:http: //pastie.org/6427155
知道为什么这不起作用吗?它吐出“请填写所有字段。” 即使所有字段都正确填写。我对 PHP 知之甚少,所以它很可能很简单。不过,我在另一个网站上使用了相同的脚本,并且在那里运行良好,这就是我感到困惑的原因。
用 PHP 代码粘贴:http: //pastie.org/6427151
使用 HTML 表单粘贴:http: //pastie.org/6427155
知道为什么这不起作用吗?它吐出“请填写所有字段。” 即使所有字段都正确填写。我对 PHP 知之甚少,所以它很可能很简单。不过,我在另一个网站上使用了相同的脚本,并且在那里运行良好,这就是我感到困惑的原因。
您form
的标记中的输入字段需要name
属性。该name
属性用作访问用户提交的$_POST
or数组中的值的键。$_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']
还要确保仔细验证和清理您处理的所有用户态提交的内容。
首先,为所有要从表单提交数据的 、 和 元素定义属性name
。input
textarea
select
button
我还建议您使用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);
}
这是最佳实践,并且比您可以找到的脚本版本更安全。还有其他有价值的过滤器和验证标志可用于此功能。
您需要定义name
所有input
类型的属性。
<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>