搜索了大约3个小时后,我仍然无法想出这个。 我有一个带有联系表单的html模板,我试图使用PHP脚本使其工作。 我将模板更改为PHP并将PHP表单脚本粘贴到其中。除了确认文本外,一切正常。 成功提交后,它将刷新页面而不是打印"您的邮件已成功发送!感谢您的反馈和#34;。我不想要重定向,我只是想让它在同一页上打印。
有什么想法吗? 我得到了我的代码示例。
var open = false;
$("#aboutbtn").click(function () {
if(!open) $(this).parent().animate({ right: '0px'}, 500);
else $(this).parent().animate({ right: '-285px'}, 500);
open = !open ? true : false;
});
答案 0 :(得分:0)
首先,你有这个:$subject = (Contact_form);
应该抛出一个错误,所以我假设你关闭了错误报告。在开发时,您应该有错误报告,以便您可以在代码中看到错误...否则您只是盲目工作。我的意思并不是在每个文件中都发出俗气error_reporting(0)
,我的意思是将您的错误报告级别设置为E_ALL
中的php.ini
。
你还有:$headers .= 'Cc:'. $email2 . "\r\n";
但是,$email2
未在任何地方定义,因此您也会在此处收到错误。这就是为什么使用错误报告进行测试非常重要。
看看是否有效:
<?php
$error = '';
if(isset($_POST['submit']))
{
if ( !empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']) )
{
$email = $_POST['email'];
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if ( $email = filter_var($email, FILTER_VALIDATE_EMAIL) )
{
$subject = '(Contact_form)';
$message = $_POST['message'];
$headers = 'From:'. $email . "\r\n"; // Sender's Email
$message = wordwrap($message, 70);
if ( $result = mail("something@domain.com", $subject, $message, $headers) ) {
$error = 'Success';
} else {
$error = 'There was an error sending your email!';
}
} else {
$error = 'Invalid Email Address!';
}
} else {
$error = 'Please fill all fields.';
}
}
?>
<p><?= $error ?></p>
<form action="" method="post">
<input type="text" name="name" value="" /><br />
<input type="email" name="email" value="" /><br />
<textarea name="message" rows="5"></textarea><br />
<input type="submit" name="submit" value="submit" />
</form>
答案 1 :(得分:0)
尝试将$ subject放入一个字符串值,如:
$subject = 'Test subject';
还将以下行更改为此(没有定义$ email2):
$headers .= 'Cc:'. $email . "\r\n"; // Carbon copy to Sender
并尝试一下。您也可以将代码放在第一行
<?php error_reporting(E_ALL); ?>
并在提交表单时检查错误。