У меня есть форма, которую я создал с помощью PHP (что-то я не понимаю почти столько, сколько захочу) - я сделал форму с помощью онлайн-учебника некоторое время назад, не могу вспомнить, откуда и не может найти его снова, однако форма работает так, как должна, поэтому я доволен.Добавить флажки в форму PHP
Единственное, что мне нужно добавить флажки в моей форме, они не должны проверять (если ничего не проверяется, форма по-прежнему могут быть отправлены, если они все проверены форма может еще быть отправлено ..)
Что мне нужно сделать, это отправить электронное письмо мне, чтобы указать, какие флажки отмечены галочкой.
Это мой HTML/PHP страницы:
<!--Contact Form Section -->
<div id="contact-form" class="clearfix">
<?php
//init variables
$cf = array();
$sr = false;
if(isset($_SESSION['cf_returndata'])){
$cf = $_SESSION['cf_returndata'];
$sr = true;
}
?>
<form method="post" action="process.php">
<input type="email" id="email" name="email" placeholder="Your e-mail" value=" <?php echo ($sr && !$cf['form_ok']) ? $cf['posted_form_data']['email'] : '' ?>" required="required" />
<input type="text" id="name" name="name" placeholder="Your name" value="<?php echo ($sr && !$cf['form_ok']) ? $cf['posted_form_data']['name'] : '' ?>" required="required" />
<textarea id="message" name="message" placeholder="Your message..." required="required" data-minlength="20"><?php echo ($sr && !$cf['form_ok']) ? $cf['posted_form_data']['message'] : '' ?></textarea>
<span id="loading"></span>
<input type="submit" value=" " id="submit-button" />
<ul id="errors" class="<?php echo ($sr && !$cf['form_ok']) ? 'visible' : ''; ?>">
<li id="info">There is a problem:</li>
<?php
if(isset($cf['errors']) && count($cf['errors']) > 0) :
foreach($cf['errors'] as $error) :
?>
<li><?php echo $error ?></li>
<?php
endforeach;
endif;
?>
</ul>
<p id="success" class="<?php echo ($sr && $cf['form_ok']) ? 'visible' : ''; ?>">Thanks for your message!</p>
</div>
</form>
<?php unset($_SESSION['cf_returndata']); ?>
<!--End Contact Form Section -->
А вот мой процесс PHP документ:
<?php
if(isset($_POST)){
//form validation vars
$formok = true;
$errors = array();
//submission data
$ipaddress = $_SERVER['REMOTE_ADDR'];
$date = date('d/m/Y');
$time = date('H:i:s');
//form data
$name = $_POST['name'];
$email = $_POST['email'];
$telephone = $_POST['telephone'];
$enquiry = $_POST['enquiry'];
$message = $_POST['message'];
//validate form data
//validate name is not empty
if(empty($name)){
$formok = false;
$errors[] = "You have not entered a name";
}
//validate email address is not empty
if(empty($email)){
$formok = false;
$errors[] = "You have not entered an email address";
//validate email address is valid
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
$formok = false;
$errors[] = "You have not entered a valid email address";
}
//validate message is not empty
if(empty($message)){
$formok = false;
$errors[] = "You have not entered a message";
}
//validate message is greater than 20 characters
elseif(strlen($message) < 20){
$formok = false;
$errors[] = "Your message must be greater than 20 characters";
}
//send email if all is ok
if($formok){
$headers = "From: Goldie Locks online contact form" . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$emailbody = "<p>You have received a new message from the enquiries form on your website.</p>
<p><strong>Name: </strong> {$name} </p>
<p><strong>Email Address: </strong> {$email} </p>
<p><strong>Message: </strong> {$message} </p>
<p>This message was sent from the IP Address: {$ipaddress} on {$date} at {$time}</p>";
mail("MY EMAIL!","New Enquiry",$emailbody,$headers);
}
//what we need to return back to our form
$returndata = array(
'posted_form_data' => array(
'name' => $name,
'email' => $email,
'telephone' => $telephone,
'enquiry' => $enquiry,
'message' => $message
),
'form_ok' => $formok,
'errors' => $errors
);
//if this is not an ajax request
if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest'){
//set session variables
session_start();
$_SESSION['cf_returndata'] = $returndata;
//redirect back to form
header('location: ' . $_SERVER['HTTP_REFERER']);
}
}
Как вы можете видеть, глядя на HTML код, я взял некоторые из функции PHP, но оставили их в процессе PHP (например, тип запроса и номер телефона), потому что я совершенно не знал, что сломает что.
Все, что мне нужно сделать, это добавить флажки в документ html/php (точнее, 5), а те, которые отмечены галочкой, отображаются в электронном письме, которое я получаю, когда кто-то заполняет страницу.
Надеюсь, это непростая задача для кого-то, у кого есть знания PHP, но, к сожалению, у меня очень мало. Надеюсь, кто-то может помочь, если вам нужна дополнительная информация, пожалуйста, прокомментируйте, и я постараюсь изо всех сил.
Спасибо
Это много кода для проблемы с флажками. Не могли бы вы предоставить только * соответствующий * код? Благодарю. – PeeHaa
В вашей форме нет флажков. Это будет шаг №1. Я не уверен *, как вы действительно застреваете, потому что похоже, что вы ничего не пробовали. –
@PeeHaa - Проблема в том, что я следовал учебнику PHP, но, как я уже сказал, это меня действительно смущает, и я не совсем понимаю его, поэтому - я не знаю, какой код имеет значение, а что нет! -Простите, Джон. –