gpt4 book ai didi

php - $_POST 返回 "Undefined index"

转载 作者:行者123 更新时间:2023-11-28 15:56:51 26 4
gpt4 key购买 nike

我知道这个问题已经被问了很多次,但没有一个解决方案适合我!

请先阅读下面的编辑内容!

我对 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 语句包围它......不走运。

哦,电子邮件仍然发送...它只是发送:

From: () | Message:

编辑:所以这就是 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"; 时,它起作用了!然而,我确实把它们放在那里是有原因的。还有其他选择吗?我想这就是我现在要求的......

最佳答案

您必须检查所有变量 name、email、message 是否都有值,例如:

if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['message']))

如果是,请发送电子邮件。您的错误是说这些变量没有值。问题甚至可能出在你的 javascript 验证中,所以尝试把它收起来然后检查。

问题编辑后编辑:

试试这个:

<script>
function validate(form) {
fail = validateName(form.name.value)
fail += validateEmail(form.email.value)
fail += validateMessage(form.message.value)
if (fail == "") return true
else { alert(fail); return false }
}

function validateName(field) {
if (field == "") return "No Username was entered.\n"
else if (field.length < 5)
return "Usernames must be at least 5 characters.\n"
else if (field.length > 15)
return "Usernames must be shorter than 15 characters.\n"
return ""
</script>

关于php - $_POST 返回 "Undefined index",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com