Контактная форма с JQuery и PHP

Attempting to set up a jQuery and PHP Contact form on my website found here http://www.greenlite.co.uk/Contactus.html

Я думаю, что я делаю что-то неправильно с файлом PHP. Я поместил нужную электронную почту в файл PHP, но я не уверен, правильно ли я связал ее в главном коде или даже как это сделать. Или даже где добавить его в корневой файл.

Вот код, который я использую;

<!DOCTYPE HTML>
<html>
  <head>
    <title>Contact Form</title>

    <link href="js/style.css" rel="stylesheet" />

    <script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
    <script type="text/javascript" src="js/contact/jquery.validate.min.js"></script>
    <script type="text/javascript" src="js/contact/jquery.form.js"></script>
    <script type="text/javascript" src="js/contact.js"></script>
  </head>
  <body>
<div id="wrap">
  

Contact Greenlite Controls

<form id="contactform" action="processForm.php" method="post"> <table> <tr> <td></td> <td><input type="text" id="name" name="name" /></td> </tr> <tr> <td></td> <td><input type="text" id="email" name="email" /></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <td></td> <td><input type="submit" value="Send" id="send" /></td> </tr> </table> </form> <div id="response"></div> </div> </body> </html>

И вот PHP

<?php

// Clean up the input values
foreach($_POST as $key => $value) {
 if(ini_get('magic_quotes_gpc'))
$_POST[$key] = stripslashes($_POST[$key]);

  $_POST[$key] = htmlspecialchars(strip_tags($_POST[$key]));
}

// Assign the input values to variables for easy reference
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];

// Test input values for errors
$errors = array();
if(strlen($name) < 2) {
  if(!$name) {
    $errors[] = "You must enter a name.";
  } else {
    $errors[] = "Name must be at least 2 characters.";
  }
}
 if(!$email) {
  $errors[] = "You must enter an email.";
} else if(!validEmail($email)) {
  $errors[] = "You must enter a valid email.";
}
if(strlen($message) < 10) {
  if(!$message) {
    $errors[] = "You must enter a message.";
  } else {
    $errors[] = "Message must be at least 10 characters.";
  }
}

if($errors) {
 //Output errors and die with a failure message
   $errortext = "";
  foreach($errors as $error) {
    $errortext .= "
  • ".$error."
  • "; } die("The following errors occured:
      ". $errortext ."
    "); } // Send the email $to = "[email protected]"; $subject = "Contact Form: $name"; $message = "$message"; $headers = "From: $email"; mail($to, $subject, $message, $headers); // Die with a success message die("Success! Your message has been sent."); // A function that checks to see if // an email is valid function validEmail($email) { $isValid = true; $atIndex = strrpos($email, "@"); if (is_bool($atIndex) && !$atIndex) { $isValid = false; } else { $domain = substr($email, $atIndex+1); $local = substr($email, 0, $atIndex); $localLen = strlen($local); $domainLen = strlen($domain); if ($localLen < 1 || $localLen > 64) { //local part length exceeded $isValid = false; } else if ($domainLen < 1 || $domainLen > 255) { //domain part length exceeded $isValid = false; } else if ($local[0] == '.' || $local[$localLen-1] == '.') { //local part starts or ends with '.' $isValid = false; } else if (preg_match('/\\.\\./', $local)) { //local part has two consecutive dots $isValid = false; } else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) { //character not valid in domain part $isValid = false; } else if (preg_match('/\\.\\./', $domain)) { //domain part has two consecutive dots $isValid = false; } else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local))) { //character not valid in local part unless //local part is quoted if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$local))) { $isValid = false; } } if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))) { //domain not found in DNS $isValid = false; } } return $isValid; } ?>

    В принципе, если это не ясно, после использования контактной формы я получаю «Отправка», но она не умирает. Я не получаю сообщение «Успешное», и почта не отправляется. Я могу только предположить, что это связано с PHP.

    Я поместил файл PHP в папку с корнем PHP и попытался вызвать его из «action =» php/ProcessForm.php », но это не помогло.

    1
    nl ja de
    правильно настроен sendmail ?
    добавлено автор AdityaParab, источник
    Я думаю, что это может быть моя ссылка на PHP-файл на action = "ProcessForm.php", проверяющий его сейчас
    добавлено автор Craig Walker, источник

    1 ответы

    Почему вы не проверяете форму с помощью JQuery, а внутри PHP?

    Попробуйте использовать AJAX для отправки вашей формы и пользовательского интерфейса JQuery, чтобы ответить вашему пользователю с успехом или неудачей.

    Попробуйте использовать .serialize() ( http://api.jquery.com/serialize/ ) функции в запросе и $ .ajax.

    Таким образом, вы можете очистить свой php-файл и найти ошибку.

    Посмотрите простой пример кода:

    Вызовите функцию отправки:

      $().ready(function(e) {
        $("#cad_cliente").submit(function(e){
            e.preventDefault();
            insertDataForm(getDataForm());
                    });
            return false;
        });
    

    Сериализовать параметры:

      function getDataForm(){
        var params=$("#cad_cliente").serialize();
        return params;
      }
    

    Опубликуйте значения в файле php:

        $.ajax({
            type: 'post',
            url:'registra.php',
            data:params,
            cache:false,
            success: function(){
                Alert("mesenge");
            }
        });
    }
    

    Рад, если я могу помочь вам ...

    0
    добавлено
    Проверка jQuery является дополнением к проверке на стороне сервера, которая является обязательной . Хотя проверка на стороне клиента (javascript) является необязательной и более удобна для пользователя.
    добавлено автор Vlad Preda, источник
    Вы всегда должны проверять ввод на стороне сервера (PHP), независимо от того, проверяете ли вы его с помощью JQuery/JavaScript перед началом работы. Помни это.
    добавлено автор EM-Creations, источник
    Я понял, что если у пользователя нет javascript, когда он отправляет форму, ошибки не возникнут?
    добавлено автор Craig Walker, источник
    Правильно. Извините, совершенно новый, просто создавая сайт для моей компании. Попытка понять ответ от mpleandro. Я помещаю параметры Seralize до или после функции отправки
    добавлено автор Craig Walker, источник
    Если вы видите на greenlite.co.uk/Contactus.html , я просто застрял с «Посылка»
    добавлено автор Craig Walker, источник
    Параметр Serialize() должен получить значения вашей формы. Вы ставите перед функцией. $ .Ajax - вывести ваши значения в файл PHP.
    добавлено автор mpleandro, источник
    phpGeeks
    phpGeeks
    3 620 участник(ов)

    Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

    Верстка сайтов HTML/CSS/JS/PHP
    Верстка сайтов HTML/CSS/JS/PHP
    3 439 участник(ов)

    Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

    PHP
    PHP
    1 309 участник(ов)

    Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

    PHP — вакансии, поиск работы и аналитика
    PHP — вакансии, поиск работы и аналитика
    1 251 участник(ов)

    Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

    phpGeeksJunior
    phpGeeksJunior
    980 участник(ов)

    Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

    phpclub.ru
    phpclub.ru
    872 участник(ов)

    Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

    Devall | PHP
    Devall | PHP
    272 участник(ов)

    Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp