Итак, у меня есть базовая формуляр почты(), данные POSTS через сценарий jQuery, и я хочу проверить и дезинформировать данные. Очевидно, что основная причина заключается в безопасности, а также для предотвращения ошибок. На данный момент единственной формой проверки является HTML (IE type = "tel"), которого, очевидно, недостаточно и не безопасно.Sanitizing/Validating контактная форма PHP, которая отправляется с использованием jQuery
Вопрос: как мне защитить этот скрипт? В jQuery или PHP. Извините, но я довольно новичок в этом. (Edit- я задаюсь вопросом, как конкретно обеспечить это. Пример кода, учебник и т.д. -Edit)
index.html
<div class="order_info">
<form id="order-form" class="order_form" action="php/order.php" method="post">
<input id="or_name" class="or_field" required type="text" name="or_name" placeholder="Name*">
<input id="or_company" class="or_field" type="text" name="or_company" placeholder="Company Name">
<input id="or_email" class="or_field" required type="email" name="or_email" placeholder="Email*">
<input id="or_tel" class="or_field" type="tel" name="or_tel" placeholder="Phone">
<select id="or_package" class="or_field" required name="or_package">
<option value="" selected disabled>Select Package*</option>
<option value="Starter">Starter</option>
<option value="Business">Business</option>
<option value="Premier">Premier</option>
</select>
<textarea id="or_tarea" class="or_field" required name="or_details" placeholder="Project Details*"></textarea>
<input id="or_submit" class="or_button" type="submit" value="SUBMIT!">
</form>
</div>
custom.js
$(window).load(function(){
"use strict";
$('.order_info .order-form').each(function(){
var form = $(this);
//form.validate();
form.submit(function(e) {
if (!e.isDefaultPrevented()) {
jQuery.post(this.action,{
'or_name':$('input[name="or_name"]').val(),
'or_company':$('input[name="or_company"]').val(),
'or_email':$('input[name="or_email"]').val(),
'or_tel':$('input[name="or_tel"]').val(),
'or_package':$('select[name="or_package"]').val(),
'or_details':$('textarea[name="or_details"]').val(),
},function(data){
form.fadeOut('fast', function() {
$(this).siblings('p.newsletter_success_box').show();
});
});
e.preventDefault();
}
});
});
});
order.php
<?php
$field_name = $_POST['or_name'];
$field_company = $_POST['or_company'];
$field_email = $_POST['or_email'];
$field_tel = $_POST['or_tel'];
$field_package = $_POST['or_package'];
$field_details = $_POST['or_details'];
$mail_to = '[email protected]'; //Change to your email
$subject = 'Enquiry from '.$field_name.' ('.$field_company.')'; //Change to your subject
$body_message = 'From: '.$field_name."\n";
$body_message .= 'Company: '.$field_company."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Phone: '.$field_tel."\n";
$body_message .= 'Package: '.$field_package."\n";
$body_message .= 'Details: '.$field_details;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
mail($mail_to, $subject, $body_message, $headers);
?>
* Всегда * проверить свои формы на сервере! Представьте, что кто-то нацелился на ваш 'order.php' со сценарием, который делает прямые запросы POST к нему в десятитысячном цикле итераций. Вы становитесь массовым спам-реле (потенциально злонамеренным) без контроля того, что отправляется в письмах. – brezanac
Спасибо holodoc :) –