html — простая форма PHP с Honeypot — действие на другой странице

У меня есть простая форма PHP, которая имеет весь код на 1 странице.

Я хочу отделить страницу формы Contact.php от действия send.php, создав отдельную страницу PHP.

Если я объединяю код в одну страницу, все это работает, но если я разделяю их на 2 страницы, это не работает. Любая помощь будет благодарна за то, как отделить форму PHP от сценария PHP.

Проблема с приведенным ниже кодом заключается в том, что когда я нажимаю кнопку send, он переходит к send.php, но остается пустым и не выполняет скрипт формы php.

Пример того, что я хочу:

contact.php

<!--form-->
<form method="post" action="send.php" id="myform">

<?php echo $error; ?>
<?php echo $success; ?>

<input  name="name" type="text" id="name"  class="form1" value="<?php echo $name; ?>" onfocus="if(this.value == 'Name') { this.value = ''; }" onblur="toUpper(this.value); if(this.value == '') { this.value = 'Name'; }" value="Name" />

<input name="email" type="text" id="email" class="form1" value="<?php echo $email; ?>" onfocus="if(this.value == 'Email') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Email'; }" value="Email" />

<input name="email_confirm" type="text" id="email_confirm" class="form2" value="<?php echo $email_confirm; ?>" />

<textarea name="comments" cols="40" rows="3" id="comments" value="<?php echo $comments; ?>" onfocus="if(this.value == 'Message') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Message'; }" value="Message"><?php echo $comments; ?></textarea>

<p class="form1"><input name="contactus" type="submit" class="submit" id="contactus" value="Submit" /></p>

</form>
<!--end form-->

Send.php

<?php
//fields
$link_address   = 'home.html'; // page to redirect to home page
$honeypot   = '';
$error      = '';
$name       = 'Name';
$email      = 'Email';
$comments   = 'Message';

if(isset($_POST['contactus'])) {

$honeypot   = $_POST['email_confirm'];
$name       = $_POST['name'];
$email      = $_POST['email'];
$comments   = $_POST['comments'];

// honeypot
if($honeypot)
exit(1);//error messages
if(trim($name) == 'Name') {
$error = '<div class="error_message">Need your Name</div>';
} else if(trim($name) == '') {
$error = '<div class="error_message">Need your Name</div>';

} else if(trim($email) == 'Email') {
$error = '<div class="error_message">Need your Email</div>';
} else if(trim($email) == '') {
$error = '<div class="error_message">Need your Email</div>';

} else if(!isEmail($email)) {
$error = '<div class="error_message">Need a valid email</div>';

} else if(trim($comments) == 'Message') {
$error = '<div class="error_message">A Message is required</div>';
} else if(trim($comments) == '') {
$error = '<div class="error_message">A Message is required</div>';

}
if($error == '') {
if(get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}
//email address
$address = "email@example.com";
//email message
$e_subject = 'Web Message from: ' . $name . '.';
$e_body = "From:    $name\nEmail:   $email \r\n\nMessage:\n$comments\n\n\n";

$msg = $e_body . $e_content . $e_reply;
if(mail($address, $e_subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n"))
{
//success html page response
echo "<div id='succsess_page'>";
echo "<h1>Email Sent Successfully.</h1>";
echo "<p>Thank you. The following was sent to us. <br/><br/>$name<br/><br/>$email<br/><br/>$comments</p>";
echo "<a href='$link_address'>CLOSE THIS MESSAGE</a>";
echo "</div>";
} else echo "Error. Mail not sent";
}
}
if(!isset($_POST['contactus']) || $error != '') // Do not edit.
{

?>
<?php }

function isEmail($email) { // Email address verification, do not edit.
return(preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,12})$/",$email));
}

?>

Вот что работает, если я оставлю это на той же странице:

Рабочий код

contact.php

<?php
//fields
$link_address   = 'home.html'; // page to redirect to home page
$honeypot   = '';
$error      = '';
$name       = 'Name';
$email      = 'Email';
$comments   = 'Message';

if(isset($_POST['contactus'])) {

$honeypot   = $_POST['email_confirm'];
$name       = $_POST['name'];
$email      = $_POST['email'];
$comments   = $_POST['comments'];

// honeypot
if($honeypot)
exit(1);//error messages
if(trim($name) == 'Name') {
$error = '<div class="error_message">Need your Name</div>';
} else if(trim($name) == '') {
$error = '<div class="error_message">Need your Name</div>';

} else if(trim($email) == 'Email') {
$error = '<div class="error_message">Need your Email</div>';
} else if(trim($email) == '') {
$error = '<div class="error_message">Need your Email</div>';

} else if(!isEmail($email)) {
$error = '<div class="error_message">Need a valid email</div>';

} else if(trim($comments) == 'Message') {
$error = '<div class="error_message">A Message is required</div>';
} else if(trim($comments) == '') {
$error = '<div class="error_message">A Message is required</div>';

}
if($error == '') {
if(get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}
//email address
$address = "email@example.com";
//email message
$e_subject = 'Web Message from: ' . $name . '.';
$e_body = "From:    $name\nEmail:   $email \r\n\nMessage:\n$comments\n\n\n";

$msg = $e_body . $e_content . $e_reply;
if(mail($address, $e_subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n"))
{
//success html page response
echo "<div id='succsess_page'>";
echo "<h1>Email Sent Successfully.</h1>";
echo "<p>Thank you. The following was sent to us. <br/><br/>$name<br/><br/>$email<br/><br/>$comments</p>";
echo "<a href='$link_address'>CLOSE THIS MESSAGE</a>";
echo "</div>";
} else echo "Error. Mail not sent";
}
}
if(!isset($_POST['contactus']) || $error != '') // Do not edit.
{

?>
<!--form-->
<form method="post" action="" id="myform">

<?php echo $error; ?>

<input  name="name" type="text" id="name"  class="form1" value="<?php echo $name; ?>" onfocus="if(this.value == 'Name') { this.value = ''; }" onblur="toUpper(this.value); if(this.value == '') { this.value = 'Name'; }" value="Name" />

<input name="email" type="text" id="email" class="form1" value="<?php echo $email; ?>" onfocus="if(this.value == 'Email') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Email'; }" value="Email" />

<input name="email_confirm" type="text" id="email_confirm" class="form2" value="<?php echo $email_confirm; ?>" />

<textarea name="comments" cols="40" rows="3" id="comments" value="<?php echo $comments; ?>" onfocus="if(this.value == 'Message') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Message'; }" value="Message"><?php echo $comments; ?></textarea>

<p class="form1"><input name="contactus" type="submit" class="submit" id="contactus" value="Submit" /></p>

</form>
<!--end form-->

<?php }

function isEmail($email) { // Email address verification, do not edit.
return(preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,12})$/",$email));
}

?>

Спасибо за вашу помощь

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector