Hi all,
i am new to PS and didn't have enough time to learn it. I think will be great platform for my future projects. For start I use default template and create the /site/templates/contact.php . The form shows well and submit sends the mail, but after that i got page with empty body. No "Thank you ..." message neither option to go back to home page. Please ryan, point me to the right code after sending email which says "thanks" and show button to go to home. Thanks in advance! Edited: changed $page->body with simple echo solved the problem. The working code is:
<?php
include("./head.inc");
echo $page->body;
$sent = false;
$error = '';
$emailTo = 'my@email'; // or pull from PW page field
// sanitize form values or create empty
$form = array(
'fullname' => $sanitizer->text($input->post->fullname),
'email' => $sanitizer->email($input->post->email),
'comments' => $sanitizer->textarea($input->post->comments),
);
// check if the form was submitted
if($input->post->submit) {
// determine if any fields were ommitted or didn't validate
foreach($form as $key => $value) {
if(empty($value)) $error = "<p class='error'>Please check that you have completed all fields.</p>";
}
// if no errors, email the form results
if(!$error) {
$msg = "Full name: $form[fullname]\n" .
"Email: $form[email]\n" .
"Comments: $form[comments]";
mail($emailTo, "Contact Form", $msg, "From: $form[email]");
// populate body with success message, or pull it from another PW field
echo "<h2>Thank you, your message has been sent.</h2>";
$sent = true;
}
}
if(!$sent) {
// sanitize values for placement in markup
foreach($form as $key => $value) {
$form[$key] = htmlentities($value, ENT_QUOTES, "UTF-8");
}
// append form to body copy
echo <<< _OUT
$error
<form action="./" method="post">
<fieldset>
<p>
<label for="fullname">Your Name</label><br />
<input style="width:300px;" type="text" id="fullname" name="fullname" value="$form[fullname]" />
</p>
<p>
<label for="email">Your Email</label><br />
<input style="width:300px;" type="email" name="email" id="email" value="$form[email]" />
</p>
<p>
<label for="comments">Comments</label><br />
<textarea style="width:300px;" id="comments" name="comments" rows="6">$form[comments]</textarea>
</p>
<p><input type="submit" name="submit" value="Submit" /></p>
</fieldset>
</form>
_OUT;
}
// include site's footer
include("./foot.inc");