重定向

时间:2016-09-16 19:59:41

标签: javascript php html

我正在为我的网站创建一个联系表单,我遇到了一些问题。它在没有使用位置时工作正常,我收到了一封电子邮件,但在使用位置时,我在输入表单时没有收到电子邮件。

如何重定向并同时收到电子邮件?

HTML:

	<div class="contact-form">
		<div class="contact-form-container">
			<form novalidate action="index.php" method="POST">
				<label id="label-0">Position</label>
				<select name="position_form">
					<option value="collaboration_partner">Samarbetspartner</option>
					<option value="youth_organization">Ungdomsorginisation</option>
					<option value="young_enterprise">Ung Företagsamhet</option>
					<option value="work_group">Arbetsgrupp</option>
					<option value="school">Skola</option>
					<option value="volunteer_trainee">Volontär/Praktikant</option>
					<option value="charity">Välgörenhet</option>
					<option value="sponsor">Sponsor</option>
					<option value="other">Annat</option>
				</select>

				<label id="label-1">Namn</label>
				<input name="name" placeholder="Namn" type="text">

				<label id="label-2">Email Adress</label>
				<input name="email" type="text" placeholder="Email Adress">

				<label id="label-3">Meddelande</label>
				<textarea name="message" placeholder="Meddelande"></textarea>

				<input id="submit" name="submit" type="submit" value="SKICKA">
			</form>
		</div>
	</div>

PHP:

<?php

$to = "random@protonmail.com";
$subject = "Kontakta Oss - Senaste Meddelande";
$name = $_POST['name'];
$email = $_POST["email"];
$position_form = $_POST["position_form"];
$message = $_POST["message"];



$body = <<<EMAIL

Namn:
$name

Email:
$email

Position:
$position_form

Meddelande:
$message

EMAIL;

$header = "from: kontakt@example.com";
header('Location: http://example.com/redirecthere.php');
exit();

if($_POST){
	mail($to, $subject, $body, $header);
}
?>

2 个答案:

答案 0 :(得分:0)

mail之后调用header('Location函数(实际上,它永远不会被调用)。即使您删除header它也不会发送邮件,因为在您获得exit之前调用了if函数。

删除exit并将header移至文件末尾

答案 1 :(得分:-1)

尝试以这种方式更改您的php文件:

<?php

$to = "random@protonmail.com";
$subject = "Kontakta Oss - Senaste Meddelande";
$name = $_POST['name'];
$email = $_POST["email"];
$position_form = $_POST["position_form"];
$message = $_POST["message"];



$body = <<<EMAIL

Namn:
$name

Email:
$email

Position:
$position_form

Meddelande:
$message

EMAIL;

$header = "from: kontakt@example.com";


if($_POST){
    mail($to, $subject, $body, $header);
    header('Location: http://example.com/redirecthere.php');
    exit();
}
?>

我希望这对你有所帮助。

顺便提一下,我建议您查找Mailgun,Sendgrid等交易电子邮件服务。