>我有一个简单的联系表格,客户将在其中放置他们的推荐,尽管在提交表格后,它会将我带到流程页面,这很好,因为感谢页面已实现。 但是提交后,它只是将我带到POSSES页面,而不是感谢页面。我找不到问题,可能需要你们的帮助
形式:
<form action="includes/mail.php" method="post">
<table background="images/sequestrationreferral.jpg" height="408px" width="740px">
<tr>
<td width="80px" height="50px"><label>Name:</label></td>
<td><input class="input" type="text" name="name" width="225px" /></td>
</tr>
<tr>
<td width="80px" height="50px"><label>Email Address:</label></td>
<td><input class="input" type="text" name="email" width="225px" /></td>
</tr>
<tr>
<td width="80px" height="120px"><label>Referals:</label></td>
<td><textarea class="input" name="referals" cols="35" rows="5"></textarea><br /><br />Please use one per row?</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Send referals" class="btn" /></td>
</table>
</form>
"进程"页:
<?
/* Edit these preferences to suit your needs */
$mailto = 'marketing@loanro.co.za'; // insert the email address you want the form sent to
$returnpage = '../thanks.php'; // insert the name of the page/location you want the user to be returned to
$sitename = '[Loanro]'; // insert the site name here, it will appear in the subject of your email
/* Do not edit below this line unless you know what you're doing */
$name = $_POST['name'];
$email = $_POST['email'] ;
$referals = stripslashes($_POST['referals']);
if (!$name) {
print("<strong>Error:</strong> Please provide your name.<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
exit;
}
if (!$email) {
print("<strong>Error:</strong> Please provide an email address.<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
exit;
}
if (!$referals) {
print("<strong>Error:</strong> Please provide your enquiry details.<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
exit;
}
if (!eregi("^[a-z0-9]+([-_'.]?[a-z0-9])+@[a-z0-9]+([-_'.]?[a-z0-9])+'.[a-z]{2,4}", $email)){
print("<strong>Error:</strong> this email address is not in a valid format.<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
exit;
}
$message = "'n$name submitted the following message:'n'n$enquiry'n'nTheir contact details are as follows:'n'nName: $name'nEmail Address: $email'n'n";
mail($mailto, "$sitename Referal from $name", $message, "From: $email");
header("Location: " . $returnpage);
?>
还有"谢谢"页面:
<article class="art-post art-article">
<div class="art-postcontent art-postcontent-0 clearfix"><div class="art-content-layout layout-item-0">
<div class="art-content-layout-row">
</div>
</div>
<div class="art-content-layout-wrapper layout-item-4">
<div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell layout-item-5" style="width: 75%" >
<p>Thank you for contacting up, we will get back to you as soon as possible.</p>
</div>
</div>
</div>
</div>
</div>
</article>
如果您的 Web 服务器配置为显示警告(或者您可以启用它们进行开发(,请提供它们。
您的header()
呼叫似乎不起作用。如果在此调用之前有任何类型的输出,则通常就是这种情况。这可以是 php 脚本的开头<?
标记之前的任何空格(空格、换行符等(,甚至可以是像 UTF-BOM 这样的不可见字符。如果您使用像Notepad++这样的编辑器,您可以检查文件是否以UTF编码保存,并确保它没有BOM。
短php
(即<?,?>
、<?= 'something' ?>
(标签有时会出现问题。我总是把完整的php标签(<?php ?>
,<?php echo 'something' ?>
(
而且最好将ob_start();
放在任何输出之前,ob_end_clean();
放在重定向之前。
干杯
你的代码看起来不错。位置标头可能由于 2 个原因而失败:
- 您的脚本 yust 做了一些输出,用于发送标头(可能是错误,或者只是看不见的迹象,用于您的
<?php
- 位置标头应该是具有绝对 URL 的用户,也许您的相对路径有问题。
您可以将位置标题替换为:
$returnurl = "http://".$_SERVER["SERVER_NAME"]
. ($_SERVER["SERVER_PORT"]!=80?":".$_SERVER["SERVER_PORT"]:"")
. dirname($_SERVER["PHP_SELF"]) . "/"
. $returnpage;
header("Location: " . $returnurl);
为了更好地区分成功和输入错误,您可以将脚本更改为:
<?
/* Edit these preferences to suit your needs */
$mailto = 'marketing@loanro.co.za'; // insert the email address you want the form sent to
$returnpage = '../thanks.php'; // insert the name of the page/location you want the user to be returned to
$sitename = '[Loanro]'; // insert the site name here, it will appear in the subject of your email
/* Do not edit below this line unless you know what you're doing */
$name = $_POST['name'];
$email = $_POST['email'] ;
$referals = stripslashes($_POST['referals']);
$errors = array();
if (!$name) $errors[] = "Please provide your name.";
if (!$email) $errors[] = "Please provide an email address.";
if (!$referals) $errors[] = "Please provide your enquiry details.";
if (!eregi("^[a-z0-9]+([-_'.]?[a-z0-9])+@[a-z0-9]+([-_'.]?[a-z0-9])+'.[a-z]{2,4}", $email)) {
$errors[] = "this email address is not in a valid format.";
}
if(count($errors) == 0)
{
$message = "'n$name submitted the following message:'n'n$enquiry'n'nTheir contact details are as follows:'n'nName: $name'nEmail Address: $email'n'n";
mail($mailto, "$sitename Referal from $name", $message, "From: $email");
$returnurl = "http://".$_SERVER["SERVER_NAME"]
. ($_SERVER["SERVER_PORT"]!=80?":".$_SERVER["SERVER_PORT"]:"")
. dirname($_SERVER["PHP_SELF"]) . "/"
. $returnpage;
header("Location: " . $returnurl);
}
else
{
echo "<strong>Errors:</strong>";
echo "<ul><li>".implode("</li>'n<li>",$errors)."</li></ul>";
echo "<a href='javascript:history.go(-1)'>Back</a>";
}
?>
如果这仍然不起作用,请停止使用位置和执行:
readfile($returnpage);
相反。
顺便说一下,你的代码示例看起来不像完整的HTML页面,它们至少应该被包围
<html>
<body>
// Your content
</body>
</html>