我想知道如何在用户提交消息时在同一页面上添加错误或成功消息字段正确。
PS:我的工作在本地主机和了解很少PHP的,所以请解释一下像我5.感谢如何在用户用PHP提交邮件时在同一页面添加错误或成功消息
<?php
$errorMSG = "";
// NAME
if (empty($_POST["name"])) {
$errorMSG = "Por favor preencha o seu nome ";
} else {
$name = $_POST["name"];
}
// EMAIL
if (empty($_POST["email"])) {
$errorMSG .= "Por favor preencha com o seu email ";
} else {
$email = $_POST["email"];
}
// MSG SUBJECT
if (empty($_POST["msg_subject"])) {
$errorMSG .= "Por favor escreva um assunto da mensagem";
} else {
$msg_subject = $_POST["msg_subject"];
}
// MESSAGE
if (empty($_POST["message"])) {
$errorMSG .= "Por favor escreva uma mensagem ";
} else {
$message = $_POST["message"];
}
//email here
$EmailTo = "[email protected]";
$Subject = "New Message Received";
//email body text
$Body = "";
$Body .= "Nome: ";
$Body .= $name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Assunto: ";
$Body .= $msg_subject;
$Body .= "\n";
$Body .= "Mensagem: ";
$Body .= $message;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "De:".$email);
//success message
if ($success && $errorMSG == ""){
echo "sucesso";
}else{
if($errorMSG == ""){
echo "Algo correu mal :(";
} else {
echo $errorMSG;
}
}
?>
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Title</title>
<!-- css -->
<link href="css/contactform.css" rel="stylesheet" />
<link href="css/bootstrap.min.css" rel="stylesheet" />
<link href="css/style.css" rel="stylesheet" />
</head>
<body>
<!-- Start Contact Form -->
<form role="form" id="contactForm" class="contact-form" data-toggle="validator" class="shake">
<div class="form-group">
<div class="controls">
<input type="text" id="name" class="form-control" placeholder="Nome" required data-error="Por favor escreva o seu nome">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="form-group">
<div class="controls">
<input type="email" class="email form-control" id="email" placeholder="Email" required data-error="Por favor escreva o seu email">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="form-group">
<div class="controls">
<input type="text" id="msg_subject" class="form-control" placeholder="Assunto" required data-error="Por favor escreva o assunto da mensagem">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="form-group">
<div class="controls">
<textarea id="message" rows="7" placeholder="Mensagem" class="form-control" required data-error="Escreva a sua mensagem"></textarea>
<div class="help-block with-errors"></div>
</div>
</div>
<button type="submit" id="submit" class="btn btn-effect"><i class="fa fa-check"></i>Enviar</button>
<div id="msgSubmit" class="h3 text-center hidden"></div>
<div class="clearfix"></div>
</form>
而且,我配置sendmail的“sendmail.ini”和“的php.ini “文件,以测试电子邮件的接收我的本地服务器上,而是不断收到此错误:Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in
什么custom "From:"?
这通过PHP的方式是不可能的,因为php运行在服务器端,而你需要客户端逻辑来修改已经加载的页面。通常的做法是使用AJAX请求将表单发送到服务器。该响应包含可以通过javascript注入已显示页面的消息。听起来很可怕,但实际上大多数人都期望更容易。 – arkascha
谢谢,我会研究一下。 – patriciacodes