<?php
include('backoffice/dbconnect.php');
if(isset($_POST['contact_submitted']))
{
$nome = $_POST["name"];
$email = $_POST["email"];
$mensagem = $_POST["message"];
if (empty($nome)) {
$noname = '<span class="error">Insira o seu nome!</span></br>';
echo $noname;
}
if (empty($email)) {
$noemail = '<span class="error">Insira o seu email!</span></br>';
echo $noemail;
}
if (empty($mensagem)) {
$nomensagem = '<span class="error">Insira uma mensagem!</span></br>';
echo $nomensagem;
}
else
{
global $email;
mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
"Nome: $nome\n Email: $email\n Mensagem: $mensagem\n");
$sucesso = '<span class="yes">Mensagem enviada com sucesso!</span>';
echo $sucesso;
}
} //END IF
?>
这段代码有什么问题?我想验证所有字段,如果它们都不为空,则发送消息。如果所有都是空的,那就好了,但如果i $ mensagem得到了什么,它会说“echo $ sucesso;”但所有其他领域都是空的,所以它不会发生..
答案 0 :(得分:2)
if (empty($nome)) {
$noname = '<span class="error">Insira o seu nome!</span></br>';
echo $noname;
}
else if (empty($email)) {
$noemail = '<span class="error">Insira o seu email!</span></br>';
echo $noemail;
}
else if (empty($mensagem)) {
$nomensagem = '<span class="error">Insira uma mensagem!</span></br>';
echo $nomensagem;
}
else
{
global $email;
mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
"Nome: $nome\n Email: $email\n Mensagem: $mensagem\n"
);
$sucesso = '<span class="yes">Mensagem enviada com sucesso!</span>';
echo $sucesso;
}
仅适用于条件if
和else
。
答案 1 :(得分:0)
if (empty($nome)) {
$noname = '<span class="error">Insira o seu nome!</span></br>';
echo $noname;
}
if (empty($email)) {
$noemail = '<span class="error">Insira o seu email!</span></br>';
echo $noemail;
}
if (empty($mensagem)) {
$nomensagem = '<span class="error">Insira uma mensagem!</span></br>';
echo $nomensagem;
}
if(!empty($nome) && !empty($email) && !empty($mensagem))
{
global $email;
mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
"Nome: $nome\n Email: $email\n Mensagem: $mensagem\n"
);
$sucesso = '<span class="yes">Mensagem enviada com sucesso!</span>';
echo $sucesso;
}
如果多个字段为空,这也会显示多个验证错误。
这就是为什么我使用简单的if
语句而不是if else if..else
语句
答案 2 :(得分:0)
这是因为你错过了ifs之间的else
陈述......
<?php
include('backoffice/dbconnect.php');
if(isset($_POST['contact_submitted']))
{
$nome = $_POST["name"];
$email = $_POST["email"];
$mensagem = $_POST["message"];
if (empty($nome)) {
$noname = '<span class="error">Insira o seu nome!</span></br>';
echo $noname;
} else if (empty($email)) {
$noemail = '<span class="error">Insira o seu email!</span></br>';
echo $noemail;
} else if (empty($mensagem)) {
$nomensagem = '<span class="error">Insira uma mensagem!</span></br>';
echo $nomensagem;
} else {
global $email;
mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
"Nome: $nome\n Email: $email\n Mensagem: $mensagem\n"
);
$sucesso = '<span class="yes">Mensagem enviada com sucesso!</span>';
echo $sucesso;
}
} //END IF
?>
但这只会一次显示一条错误消息。 您可以设置一个错误变量并在其中存储错误字符串,然后检查此字符串是否为空,如果是,则发送电子邮件等,如果不是回显字符串
<?php
include('backoffice/dbconnect.php');
if(isset($_POST['contact_submitted']))
{
$nome = $_POST["name"];
$email = $_POST["email"];
$mensagem = $_POST["message"];
// initialize error variable
$error = '';
if (empty($nome)) {
$error .= '<span class="error">Insira o seu nome!</span></br>';
} if (empty($email)) {
$error .= '<span class="error">Insira o seu email!</span></br>';
} if (empty($mensagem)) {
$error .= '<span class="error">Insira uma mensagem!</span></br>';
}
if ($error == '') {
global $email;
mail ("pedrofidalgo@live.com.pt","$nome, Contato Turismo Murtoseiro",
"Nome: $nome\n Email: $email\n Mensagem: $mensagem\n"
$sucesso = '<span class="yes">Mensagem enviada com sucesso!</span>';
echo $sucesso;
} else {
echo $error;
};
}
} //END IF
?>