让我们开始说我还是这个php的新手。我不会放弃,我会学习的。我把我的表单代码放在一起时遇到了问题。验证所有输入字段后,我无法发送它。不明白为什么。也许我可以得到一些帮助?也许您可以修复它以便工作?因此,我有一些需要配合的东西。
<?php
// This is your email address
$to = "[email protected]";
// Subject title
$subject = 'Testing work now pls';
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// More headers
$headers .= 'From: <[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= "Reply-To: ".$email."\r\n";
// If press send
if (isset($_POST['send'])) {
// If not empty
$errors = array(
$errorsname = $errorsemail
);
// Start validation
// Check if name not empty
if (empty($_POST["name"])) {
$errorsname = "You must write their name.";
} else {
$name = ($_POST["name"]);
// Check if only letters in name
if (!preg_match("/^[a-zA-Z æøå-ÆØÅ]*$/",$name)) {
$errorsname = "Their name only content letters.";
}
// Check if name to short
if(strlen($_POST['name']) < 2 )
{
$errorsname = 'Their name is too short.'; }
// Check if name to long name
if(strlen($_POST['name']) > 30 )
{
$errorsname = 'Their name is too long'; }
}
// Check email
if (empty($_POST["email"])) {
$errorsemail = "You must enter their email."; }
else {
$email = ($_POST["email"]);
// Check if e-mail address syntax is valid
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
$errorsemail = "Invalid email address."; }
}
// Check errors if non continue
if (empty($errors))
{
// Make message ready
$message = "
Stupid just work pls! $navn, $email
";
// Then send mail
mail($to,$subject,$message,$headers);
// Redirect to sucesse page
header('Location: mysite.php');
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
<style>
.errors {
color: #FF0000;
}
</style>
</head>
<body>
<h2>Hmmm....Help?</h2>
<span class="errors"><?php echo $errormessage; ?></span>
<form name="kontakt" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input name="name" type="text" placeholder="Deres navn.." value="<?php echo $name;?>">
<span class="errors"><?php echo $errorsname;?></span>
<br><br>
E-mail: <input name="email" type="text" placeholder="Din e-mail.." value="<?php echo $email;?>">
<span class="errors"><?php echo $errorsemail;?></span>
<br><br>
<br><br>
<input type="submit" name="send" value="Send">
</form>
</body>
</html>
您在这里有很多问题。首先,在您的HTML中,您需要检查是否设置了错误变量,如果已设置,则显示它们,否则将得到php错误:
<span class="errors"><?php
if (isset($errormessage)) {
echo $errormessage;
}
?></span>
<form name="kontakt" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
Name: <input name="name" type="text" placeholder="Deres navn.." value="<?php
if (isset($name)) {
echo $name;
}
?>">
<span class="errors"><?php
if (isset($errorsname)) {
echo $errorsname;
}
?></span>
<br><br>
E-mail: <input name="email" type="text" placeholder="Din e-mail.." value="<?php echo $email; ?>">
<span class="errors"><?php if (isset($errorsemail)) {
echo $errorsemail;
}
?></span>
其次,如上所述,您的$ erros数组应类似于Barmar所示实例化。
最后,加载页面时不会实例化$ email变量,您将不得不为其设置默认值:
if(isset($_POST['email'])){
$email = $_POST['email'];}
else{
$email = '';
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句