前段时间我写了一个简单的脚本来处理从我的网页发送电子邮件。这是blogspot(没有PHP),所以我使用外部服务器与PHP来解决我的问题。我不知道为什么,但在我的代码下面,函数头突然停止工作。我在寻找可能是什么原因。我在“?php”之前没有空白行,我已经正确地形成了“标题”......我没有得到它。有人能告诉我发生了什么吗?
<?php
$informacja = "success_txt";
$flaga = TRUE;
$adresat = 'podsmoczymdiamentem@gmail.com';
if (!isset($_POST['submit']))
{
$informacja = "error_submit";
$flaga = FALSE;
}
$autor = $_POST['autor'];
$autorTemp = str_replace(' ', '', $autor);
if ($autorTemp == '')
{
$informacja = 'error_name';
$flaga = FALSE;
}
$tytul = $_POST['tytul'];
$tytulTemp = str_replace(' ', '', $tytul);
$tytulTemp = str_replace('<br>', '', $tytul);
$tytulTemp = str_replace('<\ br>', '', $tytul);
$tytulTemp = str_replace('<\br>', '', $tytul);
$tytulTemp = str_replace('<BR>', '', $tytul);
$tytulTemp = str_replace('<\ BR>', '', $tytul);
$tytulTemp = str_replace('<\BR>', '', $tytul);
if ($tytulTemp == '')
{
$informacja = 'error_title';
$flaga = FALSE;
}
$nadawca = $_POST['e-mail'];
$nadawcaTemp = str_replace(' ', '', $nadawca);
if ($nadawcaTemp == '')
{
$informacja = 'error_email';
$flaga = FALSE;
}
$opowiadanie = $_POST['opowiadanie'];
$opowiadanieTemp = str_replace(' ', '', $opowiadanie);
if ($opowiadanieTemp == '')
{
$informacja = 'error_story';
$flaga = FALSE;
}
$subject = "$autor nadesłał swoją opowieść: $tytul";
$headers = "From: Pod Smoczym Diamentem<podsmoczymdiamentem@gmail.com>\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
$tresc = "Witaj Marcinie. Użytkownik <b>$autor</b> nadesłał opowiadanie do
twej karczmy. Jakbyś chciał się z nim skontaktować, tu jest jego adres:<br><a
href='mailto:$nadawca'>$nadawca</a><br><br> Oto jego
opowieść...<br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br><br><b><h1>
$tytul</h1></b><br><br> $opowiadanie";
if ($flaga == TRUE)
{
$mail_sent = @mail( $adresat, $subject, $tresc, $headers);
if($mail_sent == FALSE)
{
$informacja = "error_send";
}
}
$url = 'Location: http://www.podsmoczymdiamentem.blogspot.com/p/przeslij.html?info=';
$url .= $informacja;
header($url);
?>
来自html部分的FORM代码:
<form action="http://podsmoczymdiamentem.meximas.com/posts.php" id="post" method="POST" name="post">
<table border="0" cellpadding="4" cellspacing="0"><tbody>
<tr><td colspan="2"><b>Tytuł:</b></td></tr>
<tr><td colspan="2"><input id="tytul" name="tytul" size="30" type="text" /></td></tr>
<tr><td colspan="2"><b>Treść:</b></td> </tr>
<tr> <td colspan="2"><textarea cols="82" name="opowiadanie" rows="30" wrap="virtual"></textarea></td></tr>
<tr><td align="right"></td><td align="right"><b>Imię:</b><input name="autor" size="20" type="text" /></td></tr>
<tr><td></td><td align="right"><b>e-mail:</b><input name="e-mail" size="20" type="text" /></td></tr>
<tr> <td></td> <td align="right">
<input name="submit" type="submit" value="Wyślij" /><input name="reset" type="reset" value="Wyczyść" />
</td></tr>
<tr><td colspan="2"><div style="text-align: right;">
<span id="error"></span></div>
</td></tr>
</tbody></table>
</form>
答案 0 :(得分:2)
答案 1 :(得分:0)
试试这个并立足于以下内容:
重定向到http://www.podsmoczymdiamentem.blogspot.ca/p/przeslij.html?info=FOO
当我使用$informacja = "FOO";
时,我在服务器上测试了它,这是我浏览器中出现的地址。
<?php
// ob_start(); // uncomment to test if error of headers disappears
// $informacja = "FOO"; // commented out for testing purposes
$url = 'http://www.podsmoczymdiamentem.blogspot.com/p/przeslij.html?info=';
$url .= $informacja;
header('Location: ' . $url);
exit;
您可能没有删除Location:
$url = 'Location:...
<?php
ob_start(); // uncomment to test
// $informacja = "FOO"; // commented out for testing purposes
$informacja = "success_txt";
$flaga = TRUE;
$adresat = 'podsmoczymdiamentem@gmail.com';
// rest of code
// $informacja = "FOO";
$url = 'http://www.podsmoczymdiamentem.blogspot.com/p/przeslij.html?info=';
$url .= $informacja;
header('Location: ' . $url);
exit;
评论条件语句测试:(重定向,我收到了邮件)。
// if ($flaga == TRUE)
// {
$mail_sent = mail($adresat, $subject, $tresc, $headers);
// if($mail_sent == FALSE)
// {
// $informacja = "error_send";
// }
// }
$url = 'http://www.podsmoczymdiamentem.blogspot.com/p/przeslij.html?info=';
$url .= $informacja;
header('Location: ' . $url);
exit;
答案 2 :(得分:0)
我做到了! 由于某种原因标头不起作用,所以我在考虑另一个解决方案。我想出了这个:
echo '<META HTTP-EQUIV="Refresh" Content="0; URL='.$url . '">';
这条线完成了这项工作。感谢所有帮助我解决这个问题的人!