Как можно добавлять в базу данных контакты полученные через заполнение клиентами контактной формы?
У меня есть купленный шаблон, на котором клиент заполняет контактную форму после чего мне приходят заполненные данные на почту. Но мне бы хотелось, чтобы они автоматически добавлялись в базу данных.
Как это можно сделать?
<form action="./includes/contact/contact-process.php" method="post" class="contact-form wpcf7-form">
Затем проверяется:
$error = false;
$fields = array( 'name', 'email', 'subject', 'phone', 'message' );
foreach ( $fields as $field ) {
if ( empty( $_POST[$field] ) || trim( $_POST[$field] ) == '' )
$error = true;
}
if ( ! $error ) {
$name = stripslashes( $_POST['name'] );
$email = trim( $_POST['email'] );
$subject = stripslashes( $_POST['subject'] );
$message = stripslashes( $_POST['message'] );
$phone =$_POST['phone'];
$msge .= "Nombre del remitente:".$name."\r\n";
$msge .= "Correo:".$email."\r\n";
$msge .= "Teléfono:".$phone."\r\n";
$msge .= "Mensaje:".$message."\r\n";
$mail = mail( WEBMASTER_EMAIL, $subject, $msge,
"From: " . $name . " <" . $email . ">\r\n"
."Reply-To: " . $email . "\r\n"
."X-Mailer: PHP/" . phpversion()
);
if ( $mail ) {
echo "Success";
} else {
echo "Error";
}
}
?>
И еще есть вот такая функция:
ajaxContactForm: function() {
if ( $().validate ) {
$('.contact-form').each(function() {
$(this).validate({
submitHandler: function( form ) {
var
$form = $(form),
str = $form.serialize();
$.ajax({
type: "POST",
url: $form.attr('action'),
data: str,
beforeSend: function () {
$form.find('.bwp-alert').remove();
},
success: function( msg ) {
var result, cls;
if ( msg == 'Success' ) {
result = 'Su mensaje ha sido enviado';
cls = 'success';
} else {
result = 'Su mensaje NO ha sido enviado';
cls = 'error';
}
$form.prepend(
$('<div />', {
'class': 'bwp-alert ' + cls,
'text' : result
}).append(
$('<a class="remove" href="#"><i class="fa fa-close"></i></a>')
)
);
$form.find(':input').not('.submit').val('');
}
});
}
});
});
}
$(document).on('click', '.bwp-alert .remove', function(e) {
$(this).parent().slideUp();
e.preventDefault();
})
Плюс валидация в отдельном документе:
/*! jQuery Validation Plugin - v1.11.1 - 3/22/2013\n* https://github.com/jzaefferer/jquery-validation
* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT */(function(t){t.extend(t.fn,{validate:function(e){if(!this.length)return e&&e.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."),void 0;var i=t.data(this[0],"validator");return i?i:(this.attr("novalidate","novalidate"),i=new t.validator(e,this[0]),t.data(this[0],"validator",i),i.settings.onsubmit&&(this.validateDelegate(":submit","click",function(e){i.settings.submitHandler&&(i.submitButton=e.target),t(e.target).hasClass("cancel")&&(i.cancelSubmit=!0),void 0!==t(e.target).attr("formnovalidate")&&(i.cancelSubmit=!0)}),this.submit(function(e){function s(){var s;return i.settings.submitHandler?(i.submitButton&&(s=t("<input type='hidden'/>").attr("name",i.submitButton.name).val(t(i.submitButton).val()).appendTo(i.currentForm)),i.settings.submitHandler.call(i,i.currentForm,e),i.subm.....
В общем сделала вот так. правла теперь хотя все и работает но выводится текст об ошибке при введении данных
<?php
define( "WEBMASTER_EMAIL", 'info@.com' );
$error = false;
$fields = array( 'name', 'email', 'subject', 'phone', 'message' );
foreach ( $fields as $field ) {
if ( empty( $_POST[$field] ) || trim( $_POST[$field] ) == '' )
$error = true;
}
if ( ! $error )
{
$name = stripslashes( $_POST['name'] );
$email = trim( $_POST['email'] );
$subject = stripslashes( $_POST['subject'] );
$message = stripslashes( $_POST['message'] );
$phone =$_POST['phone'];
$msge .= "Nombre del remitente:".$name."\r\n";
$msge .= "Correo:".$email."\r\n";
$msge .= "Teléfono:".$phone."\r\n";
$msge .= "Mensaje:".$message."\r\n";
$mail = mail( WEBMASTER_EMAIL, $subject, $msge,
"From: " . $name . " <" . $email . ">\r\n"
."Reply-To: " . $email . "\r\n"
."X-Mailer: PHP/" . phpversion()
);
if ( $mail )
{
echo "Success";
$host='localhost';
$db='';
$user='';
$pass='';
$charset='utf8';
// Create connection
$conn = new mysqli($host, $user, $pass, $db);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="insert into bd_clientes( name, email, phone, subject, message) values ('$name', '$email','$phone','$subject', '$message')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
else {
echo "Error";
}
}
?>
в бд всем полям разрешите null и не забудьте их создать
<?php
define( "WEBMASTER_EMAIL", 'info@.com' );
$error = false;
$fields = array( 'name', 'email', 'subject', 'phone', 'message' );
foreach ( $fields as $field ) {
if ( empty( $_POST[$field] ) || trim( $_POST[$field] ) == '' )
$error = true;
}
if ( ! $error )
{
$name = stripslashes( $_POST['name'] );
$email = trim( $_POST['email'] );
$subject = stripslashes( $_POST['subject'] );
$message = stripslashes( $_POST['message'] );
$phone =$_POST['phone'];
$msge .= "Nombre del remitente:".$name."\r\n";
$msge .= "Correo:".$email."\r\n";
$msge .= "Teléfono:".$phone."\r\n";
$msge .= "Mensaje:".$message."\r\n";
$mail = mail( WEBMASTER_EMAIL, $subject, $msge,
"From: " . $name . " <" . $email . ">\r\n"
."Reply-To: " . $email . "\r\n"
."X-Mailer: PHP/" . phpversion()
);
if ( $mail )
{
$host = '127.0.0.1';
$db = 'test';
$user = 'root';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
$sql = "INSERT INTO users SET :name,:phone, :email, :subject, :message";
$stm = $pdo->prepare($sql);
$stm->bindParam(':name', $_POST["name"]);
$stm->bindParam(':phone', $_POST["phone"]);
$stm->bindParam(':email', $_POST["email"]);
$stm->bindParam(':subject', $_POST["subject"]);
$stm->bindParam(':message', $_POST["message"]);
$stm->execute();
if($stm){
echo "Success";
}
else {
echo "в бд запрос не прошел";
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Доброго времени сутокИзучаю MySQL, но столкнулся с проблемой, которую никак не могу решить