【发布时间】:2013-08-24 06:18:08
【问题描述】:
我知道这个问题被问了很多,但没有一个解决方案适合我!
请先阅读下面的编辑内容!
我对 PHP 比较陌生,我正在创建一个简单的联系表单:
HTML:
<form action="contactUsSuccess.php" id="contactForm" method="post" name="contactForm" onsubmit="return validateContactUs();">
<table>
<tr>
<td>
<input id="name" maxlength="70" name="name" placeholder="Name" type="text">
</td>
<td>
<input id="email" maxlength="255" name="email" placeholder="Email" type="text">
</td>
</tr>
<tr>
<td colspan="2">
<textarea id="message" maxlength="5000" name="message" placeholder="Message"></textarea>
</td>
</tr>
<tr>
<td colspan="2" id="submitArea">
<input id="submitButton" type="submit" value="Send">
</td>
</tr>
</table>
</form>
PHP,在另一个页面上。
<?php
$success = false;
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$to = "----@gmail.com";
$subject = "New Contact Message - ----";
$messageMail = "From: " . $name . "(" . $email . ")" . " | Message: " . $message;
$header = "From: ----@gmail.com";
if(mail($to, $subject, $messageMail, $header)) {
$success = true;
}
?>
我的错误:
Notice: Undefined index: name in Z:\Documents\Workspace\----\help\contactUsSuccess.php on line 6
Notice: Undefined index: email in Z:\Documents\Workspace\----\help\contactUsSuccess.php on line 7
Notice: Undefined index: message in Z:\Documents\Workspace\----\help\contactUsSuccess.php on line 8
如您所见,我的表单onsubmit 执行JavaScript,它只返回true 或false。如果您出于任何原因认为这可能是这不起作用的原因,请询问。
另外,我尝试了上面显示的相同 PHP 代码,并将其放在与原始 HTML 相同的文件中(并且还用isset if 语句将其包围...不走运。
哦,电子邮件仍然发送......它只是发送:
发件人:() |留言:
编辑:原来是 JavaScript!这是它的主要部分:
if (!(nameLen > 0 && nameLen <= 70 && emailLen > 0 && emailLen <= 255 && messageLen > 0 && messageLen <= 5000)) {
cont = false;
} else {
name.disabled = "true";
email.disabled = "true";
message.disabled = "true";
document.getElementById("submitButton").disabled = "true";
}
if (cont) {
return true;
} else {
return false;
}
}
当我删除 3 --.disabled = "true"; 时,它起作用了!但是,我确实将它们放在那里是有原因的。有替代方案吗?我想这就是我现在要求的......
【问题讨论】:
-
在提交事件中取出验证功能是否有效? (即 JavaScript)
-
您需要先检查是否设置了天气后变量
-
您确定在所有 $_POST 变量中都使用了您所说的 isset 方法吗?
-
在您的 php 文件中尝试 var_dump($_POST) 以查看是否有任何表单数据被发布到该页面上。有时,由于配置中的某些问题,不会发布表单数据。大约一年前发生在我的一位同事身上。
-
@rink.attendant.6 - 你是对的,但我无法摆脱所有这些。请阅读我的最新编辑。谢谢!
标签: php javascript html forms post