我对这一切都很陌生,但我已经创建了一个表单,这就是我写的发送它的内容。我在这里使用了“example@gmail.com”而不是真实的地址
<?php
/* Set e-mail recipient */
$myemail = "example@gmail.com";
/* Check all form inputs using check_input function */
$names = check_input($_POST['names'], "Please return to our Application Form and enter your and your future spouse's names.");
$weddingtype = check_input($_POST['weddingtype'], "Please return to our Application Form and fill in what kind of wedding you will be having.");
$religioussect = check_input($_POST['religioussect'], "Please return to our Application Form and tell us about your religion and wedding traditions.");
$dateone = check_input($_POST['dateone'], "Please return to our Application Form and give us the date for at least one event.");
$eventone = check_input($_POST['eventone'], "Please return to our Application Form and list at least one event.");
$locationone = check_input($_POST['locationone'], "Please return to our Application Form and give us the location for at least one event.");
$durationone = check_input($_POST['durationone'], "Please return to our Application Form and give us the duration of at least one event.");
$typeone = check_input($_POST['typeone'], "Please return to our Application Form and tell us whether you would like video, photo or both for at least one event.");
$datetwo = $_POST['datetwo'];
$eventtwo = $_POST['eventtwo'];
$locationtwo = $_POST['locationtwo'];
$durationtwo = $_POST['durationtwo'];
$typetwo = $_POST['typetwo'];
$datethree = $_POST['datethree'];
$eventthree = $_POST['eventthree'];
$locationthree = $_POST['locationthree'];
$durationthree = $_POST['durationthree'];
$typethree = $_POST['typethree'];
$datefour = $_POST['datefour'];
$eventfour = $_POST['eventfour'];
$locationfour = $_POST['locationfour'];
$durationfour = $_POST['durationfour'];
$typefour = $_POST['typefour'];
$guests1 = check_input($_POST['guests1'], "Please return to our Application Form and tell us how many guests will attend at least one event.");
$guests2 = $_POST['guests2'];
$guests3 = $_POST['guests3'];
$guests4 = $_POST['guests4'];
$concerns = $_POST['concerns'];
if(!isset($_POST['submit'])){
$subject = "Quote Application";
/*Message for the e-mail */
$message = "Hello!
Another happy couple has filled out a Quote Application Form :D Hooray!
Their names are $names.
What sort of wedding are they having?
'$weddingtype'.
What religious sect and wedding traditions are they following?
'$religioussect'.
Now for their wedding events... Ooh boy!
1. $dateone
$eventone
$durationone
$typeone
Estimated guests: $guests1
$locationone
2. $datetwo
$eventtwo
$durationtwo
$typetwo
Estimated guests: $guests2
$locationtwo
3. $datethree
$eventthree
$durationthree
$typethree
Estimated guests: $guests3
$locationthree
4. $datefour
$eventfour
$durationfour
$typefour
Estimated guests: $guests4
$locationfour
Any concerns the couple have follow here:
'$concerns'
You better be ready to get to work now!
And also, have a really good day :)
";
/* Functions used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<b>We apologize for the inconvenience, an error occurred.</b><br />
<?php echo $myError; ?>
<?php
exit();
}
/* Send the message using mail() function */
mail($myemail, $subject, $message);
/* Redirect visitor to the thank you page */
header('Location: thanks.html');
exit();
?>
请帮我找到我做错的事,我这里几乎不是初学者。提前谢谢!
答案 0 :(得分:2)
PHP Parse error:syntax error, unexpected $end in /var/www/test.php on line 133
通过在最后一个结束PHP标记?>
这表明:PHP Fatal Error: Call to undefined function check_input() in /var/www/test.php on line 7
将其移至顶部:
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
显示我们必须将另一个移到另一个功能的正下方。
function show_error($myError)
{
?>
<b>We apologize for the inconvenience, an error occurred.</b><br />
<?php echo $myError; ?>
<?php
exit();
}
它已修复。完整的固定代码(相当草率,我没有清理它):[link]
答案 1 :(得分:0)
我试图帮助清理代码并修复逻辑错误。我没有测试过这段代码,所以一定要测试一下。我还建议你花点时间检查一下使用的语言结构,例如foreach
,因为编写一长串变量可能非常难以调试。
<?php
if(! isset($_POST['submit'])) exit;
// Error messages
$error_messages = array(
'names' => 'Please return to our Application Form and enter your and your future spouse\'s names.',
'weddingtype' => 'Please return to our Application Form and fill in what kind of wedding you will be having.',
);
$errors = array();
foreach ($_POST as $key => &$value) {
// If value is empty and error message exists, add error to the list
if (empty($value) AND in_array($key, $error_messages)) {
$errors[] = $error_messages[$key];
continue;
}
// Variable variables, worth learning. $_POST['key'] becomes $key in your script.
${$key} = htmlspecialchars(trim($value), ENT_QUOTES, 'UTF-8');
}
// Errors existed, let's show them all
if (! empty($errors)) {
echo '<b>We apologize for the inconvenience but there were errors:</b><br />';
foreach ($errors as &$error) {
echo $error . '<br />';
}
exit;
}
// All good, let's send
$email = "example@gmail.com";
$subject = "Quote Application";
$message = "
Hello!
Another happy couple has filled out a Quote Application Form :D Hooray!
Their names are $names.
What sort of wedding are they having?
'$weddingtype'.
What religious sect and wedding traditions are they following?
'$religioussect'.
Now for their wedding events... Ooh boy!
1. $dateone
$eventone
$durationone
$typeone
Estimated guests: $guests1
$locationone
2. $datetwo
$eventtwo
$durationtwo
$typetwo
Estimated guests: $guests2
$locationtwo
3. $datethree
$eventthree
$durationthree
$typethree
Estimated guests: $guests3
$locationthree
4. $datefour
$eventfour
$durationfour
$typefour
Estimated guests: $guests4
$locationfour
Any concerns the couple have follow here:
'$concerns'
You better be ready to get to work now!
And also, have a really good day :)
";
mail($email, $subject, $message);
header('Location: thanks.html');
exit;
?>