اذهب إلى المحتوى

السؤال

نشر

السلام عليكم
أنا استخدم مكتبة php email form وعندما أحاول عمل submit يعطيني هذا الخطأ 
           POST https://localhost/myProject/forms/contact.php 409 (Conflict)

                  <form action="forms/contact.php" method="post" class="php-email-form" data-aos="fade-up" data-aos-delay="200">
                    <div class="row gy-4">
                        <div class="col-md-6">
                            <input type="text" name="name" class="form-control" placeholder="اسمك" required="">
                        </div>
                        <div class="col-md-6 ">
                            <input type="email" class="form-control" name="email" placeholder="بريدك الالكتروني " required="">
                        </div>
                        <div class="col-md-6 ">
                            <input type="tel" class="form-control" name="phone" placeholder="رقم الهاتف " required="">
                        </div>
                        <div class="col-md-6">
                            <select name="subject" required>
                                <option value="" disabled selected>الخدمة</option>
                                <option value="جلسات استشارية">جلسات استشارية</option>
                                <option value="تدريب المؤسسات">تدريب المؤسسات</option>
                                <option value="برنامج NLP">برنامج NLP</option>
                                <option value="برنامج الحب والانعكاس">برنامج الحب والانعكاس</option>
                                <option value="برنامج النوايا وتحقيق الأهداف">برنامج النوايا وتحقيق الأهداف</option>
                                <option value="برنامج الوعي الأنثوي">برنامج الوعي الأنثوي</option>
                                <option value="برنامج الترانسيرفينغ">برنامج الترانسيرفينغ</option>
                                <option value="برنامج شفاء الطفلة الداخلية">برنامج شفاء الطفلة الداخلية</option>
                            </select>
                        </div>
                        <div class="col-12">
                            <textarea class="form-control" name="message" rows="6" placeholder="رسالتك" required=""></textarea>
                        </div>
                        <div class="col-12 text-center">
                            <div class="loading">Loading</div>
                            <div class="error-message"></div>
                            <div class="sent-message">Your message has been sent. Thank you!</div>
                            <button type="submit">إرسال</button>
                        </div>
                    </div>
                </form>

هذا كود الفورم
 

/**
* PHP Email Form Validation - v3.9
* URL: https://bootstrapmade.com/php-email-form/
* Author: BootstrapMade.com
*/
(function () {
  "use strict";

  let forms = document.querySelectorAll('.php-email-form');

  forms.forEach( function(e) {
    e.addEventListener('submit', function(event) {
      event.preventDefault();

      let thisForm = this;

      let action = thisForm.getAttribute('action');
      let recaptcha = thisForm.getAttribute('data-recaptcha-site-key');
      
      if( ! action ) {
        displayError(thisForm, 'The form action property is not set!');
        return;
      }
      thisForm.querySelector('.loading').classList.add('d-block');
      thisForm.querySelector('.error-message').classList.remove('d-block');
      thisForm.querySelector('.sent-message').classList.remove('d-block');

      const formData = new FormData(thisForm);

      
      

      if ( recaptcha ) {
        if(typeof grecaptcha !== "undefined" ) {
          grecaptcha.ready(function() {
            try {
              grecaptcha.execute(recaptcha, {action: 'php_email_form_submit'})
              .then(token => {
                formData.set('recaptcha-response', token);
                php_email_form_submit(thisForm, action, formData);
              })
            } catch(error) {
              displayError(thisForm, error);
            }
          });
        } else {
          displayError(thisForm, 'The reCaptcha javascript API url is not loaded!')
        }
      } else {
        php_email_form_submit(thisForm, action, formData);
      }
    });
  });

  function php_email_form_submit(thisForm, action, formData) {
    console.log("thisForm:",thisForm)
    console.log("action:",action)
    console.log("formData:",formData)
    fetch(action, {
      method: 'POST',
      body: formData,
      headers: {'X-Requested-With': 'XMLHttpRequest'}
    })
    .then(response => {
      console.log(response)
      if( response.ok ) {
        return response;
      } else {
        console.log(response)
        throw new Error(`${response.status} ${response.statusText} ${response.url}`); 
      }
    })
    .then(data => {
      console.log(data)
      thisForm.querySelector('.loading').classList.remove('d-block');
      if (data.ok) {
        thisForm.querySelector('.sent-message').classList.add('d-block');
        thisForm.reset(); 
      } else {
        console.log(data)
        throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action); 
      }
    })
    .catch((error) => {
      displayError(thisForm, error);
    });
  }

  function displayError(thisForm, error) {
    thisForm.querySelector('.loading').classList.remove('d-block');
    thisForm.querySelector('.error-message').innerHTML = "there is an error here";
    thisForm.querySelector('.error-message').classList.add('d-block');
  }

})();

وهذا كود ملف validate.js
 

<?php
  /**
  * Requires the "PHP Email Form" library
  * The "PHP Email Form" library is available only in the pro version of the template
  * The library should be uploaded to: vendor/php-email-form/php-email-form.php
  * For more info and help: https://bootstrapmade.com/php-email-form/
  */

  // Replace contact@example.com with your real receiving email address
  $receiving_email_address = 'adham111mahfoud@gmail.com';

  if (file_exists($php_email_form = '../assets/vendor/php-email-form/php-email-form.php')) {
    include($php_email_form);
  } else {
    die('Unable to load the "PHP Email Form" Library!');
  }

  $contact = new PHP_Email_Form;
  $contact->ajax = true;
  
  $contact->to = $receiving_email_address;
  $contact->from_name = $_POST['name'];
  $contact->from_email = $_POST['email'];
  $contact->subject = $_POST['subject']; // استخدام حقل subject الجديد

  // Uncomment below code if you want to use SMTP to send emails. You need to enter your correct SMTP credentials
  /*
  $contact->smtp = array(
    'host' => 'example.com',
    'username' => 'example',
    'password' => 'pass',
    'port' => '587'
  );
  */

  $contact->add_message($_POST['name'], 'From');
  $contact->add_message($_POST['email'], 'Email');
  $contact->add_message($_POST['phone'], 'Phone', 10); // إضافة حقل الهاتف
  $contact->add_message($_POST['subject'], 'Service', 10); // إضافة حقل الخدمة
  $contact->add_message($_POST['message'], 'Message', 10); // إضافة حقل الرسالة

  // إرسال البريد الإلكتروني
  $response = $contact->send();

  // إعادة التوجيه إلى الصفحة السابقة
  if (isset($_SERVER['HTTP_REFERER'])) {
      header('Location: ' . $_SERVER['HTTP_REFERER']);
  } else {
      // إعادة توجيه إلى صفحة افتراضية أو رسالة خطأ
      header('Location: default-page.php');
  }
  exit();
?>

وهذا كود ملف contac.php
ما هو الخطأ؟

Recommended Posts

  • 0
نشر

هل لديك النسخة المدفوعة من PHP Email Form ؟ 

حيث لاحظ في ملف contac.php يجب أولا أن يتم تحميل ملف php-email-form.php وهذا الملف موجود في النسخة المدفوعة فقط من المكتبة . إذا كانت لديك النسخة المدفوعة فغالبا المشكلة في هذا الملف . 

يرجى فتح نافذة ال network  في خيارات المطور في المتصفح وإرسال صورة للبيانات أو الرسالة التي تظهر لك عند إرسال النموذج form هكذا وإرسال الرسالة التي تظهر لك هنا :

image.png.445ae23d972758b0b8f3dba72b05f249.png

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...