访问域时表单操作更改为 mail.php
form action changes to mail.php when visiting domain
我正在使用基本的 php 从网站给自己发邮件。[=18=]
这是一个单页网站,其中包含所需的 PHP,而不是单独的 mail.php。我使用了内置的验证和必填字段,但是当我访问域而不是 domain/index.php 时,表单代码发生变化以执行操作 mail.php,没有验证发生并且已发送一封空白电子邮件。
我希望它具有所有必填字段,经过验证然后显示一条小的成功消息,让用户知道他们的消息已发送。
我在下面附上了我的代码。
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$message = test_input($_POST["message"]);
$formcontent="From: $name \n Message: $message";
$recipient = "me@domian";
$subject = "Contact Form Subbmission";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo ("Thanks for getting in touch, I'll get back to you as soon as possible.");
}
//clean it
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']);?>#contact">
<div class="row 50%">
<div class="6u"><input type="text" name="name" placeholder="Name" required="required"/></div>
<div class="6u"><input type="email" name="email" placeholder="Email" required="required"/></div>
</div>
<div class="row 50%">
<div class="12u"><textarea name="message" placeholder="Message" rows="6" required="required"> </textarea></div>
</div>
<div class="row">
<div class="12u">
<ul class="actions">
<li><input type="submit" value="Send Message" /></li>
</ul>
</div>
</div>
</form>
提前感谢您提供的任何帮助
在每种情况下,使用比 "or die" 邮件功能更好的错误处理。
例如;
<?php
if(mail($recipient, $subject, $formcontent, $mailheader)){
echo ("Thanks for getting in touch, I'll get back to you as soon as possible.");
}
?>
您的表单不需要此操作。如果它发布到域本身,请使用以下内容:
<form method="post" action="#contact">
试试这个:
<?php
//checks if the post variables are set and also checks that they aren't empty
if(isset($_POST['name'],$_POST['email'],$_POST['message'])&& $_POST['name'] !="" && $_POST['email'] !="" && $_POST['message'] !=""){
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$message = test_input($_POST["message"]);
$formcontent="From: $name \n Message: $message";
$recipient = "me@domian";
$subject = "Contact Form Subbmission";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader);
echo 'Thanks for getting in touch, I\'ll get back to you as soon as possible.';
}else{
echo 'You didn\'t fill out all the fields. Please try again';
}
//clean it
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form action="index.php" method="post">
<div class="row 50%">
<div class="6u"><input type="text" name="name" placeholder="Name" required="required"/></div>
<div class="6u"><input type="email" name="email" placeholder="Email" required="required"/></div>
</div>
<div class="row 50%">
<div class="12u"><textarea name="message" placeholder="Message" rows="6" required="required"></textarea></div>
</div>
<div class="row">
<div class="12u">
<ul class="actions">
<li><input type="submit" value="Send Message" /></li>
</ul>
</div>
</div>
</form>
我刚刚在服务器上做了一个单独的mail.php文件,这个项目已经超过计划了。
感谢您的回答
K
我正在使用基本的 php 从网站给自己发邮件。[=18=] 这是一个单页网站,其中包含所需的 PHP,而不是单独的 mail.php。我使用了内置的验证和必填字段,但是当我访问域而不是 domain/index.php 时,表单代码发生变化以执行操作 mail.php,没有验证发生并且已发送一封空白电子邮件。
我希望它具有所有必填字段,经过验证然后显示一条小的成功消息,让用户知道他们的消息已发送。 我在下面附上了我的代码。
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$message = test_input($_POST["message"]);
$formcontent="From: $name \n Message: $message";
$recipient = "me@domian";
$subject = "Contact Form Subbmission";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo ("Thanks for getting in touch, I'll get back to you as soon as possible.");
}
//clean it
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']);?>#contact">
<div class="row 50%">
<div class="6u"><input type="text" name="name" placeholder="Name" required="required"/></div>
<div class="6u"><input type="email" name="email" placeholder="Email" required="required"/></div>
</div>
<div class="row 50%">
<div class="12u"><textarea name="message" placeholder="Message" rows="6" required="required"> </textarea></div>
</div>
<div class="row">
<div class="12u">
<ul class="actions">
<li><input type="submit" value="Send Message" /></li>
</ul>
</div>
</div>
</form>
提前感谢您提供的任何帮助
在每种情况下,使用比 "or die" 邮件功能更好的错误处理。
例如;
<?php
if(mail($recipient, $subject, $formcontent, $mailheader)){
echo ("Thanks for getting in touch, I'll get back to you as soon as possible.");
}
?>
您的表单不需要此操作。如果它发布到域本身,请使用以下内容:
<form method="post" action="#contact">
试试这个:
<?php
//checks if the post variables are set and also checks that they aren't empty
if(isset($_POST['name'],$_POST['email'],$_POST['message'])&& $_POST['name'] !="" && $_POST['email'] !="" && $_POST['message'] !=""){
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$message = test_input($_POST["message"]);
$formcontent="From: $name \n Message: $message";
$recipient = "me@domian";
$subject = "Contact Form Subbmission";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader);
echo 'Thanks for getting in touch, I\'ll get back to you as soon as possible.';
}else{
echo 'You didn\'t fill out all the fields. Please try again';
}
//clean it
function test_input($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form action="index.php" method="post">
<div class="row 50%">
<div class="6u"><input type="text" name="name" placeholder="Name" required="required"/></div>
<div class="6u"><input type="email" name="email" placeholder="Email" required="required"/></div>
</div>
<div class="row 50%">
<div class="12u"><textarea name="message" placeholder="Message" rows="6" required="required"></textarea></div>
</div>
<div class="row">
<div class="12u">
<ul class="actions">
<li><input type="submit" value="Send Message" /></li>
</ul>
</div>
</div>
</form>
我刚刚在服务器上做了一个单独的mail.php文件,这个项目已经超过计划了。
感谢您的回答
K