Formularz kontaktowy

2016-05-12 14:40:43 Post #1 bubaluki

 
Ma problem z wysyłką maili z formularza kontaktowego. Prośba o pomoc bo próbowałem już kilku zmian ale nadal nic nie daje:
HTML:
<!-- Contact Section -->
<section id="contact">
    <div class="container">
        <div class="row">
            <div class="col-lg-12 text-center">
                <h2 class="section-heading">Contact Us</h2>
                <h3 class="section-subheading" style="color: white">To contact us: <br> - use formular below, <br> - write a mail to mgnt.teamincognito.pl, <br> - go to TS3: teamincognito.pl(no password required).</h3>
            </div>
        </div>
        <div class="row">
            <div class="col-lg-12">
                <form action="mail/contact_me.php" method="post" name="sentMessage" id="contactForm">
                    <div class="row">
                        <div class="col-md-6">
                            <div class="form-group">
                                <input type="text" class="form-control" placeholder="Your Name *" id="name" required data-validation-required-message="Please enter your name.">
                                <p class="help-block text-danger"></p>
                            </div>
                            <div class="form-group">
                                <input type="email" class="form-control" placeholder="Your Email *" id="email" required data-validation-required-message="Please enter your email address.">
                                <p class="help-block text-danger"></p>
                            </div>
                            <div class="form-group">
                                <input type="tel" class="form-control" placeholder="Your Phone *" id="phone" required data-validation-required-message="Please enter your phone number.">
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                <textarea class="form-control" placeholder="Your Message *" id="message" required data-validation-required-message="Please enter a message."></textarea>
                                <p class="help-block text-danger"></p>
                            </div>
                        </div>
                        <div class="clearfix"></div>
                        <div class="col-lg-12 text-center">
                            <div id="success"></div>
                            <button type="submit" class="btn btn-xl">Send Message</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</section>


Skrypt do wysyłki maili:
<?php
// Check for empty fields
if(empty($_POST['name'])  		||
   empty($_POST['email']) 		||
   empty($_POST['phone']) 		||
   empty($_POST['message'])	||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
	echo "No arguments Provided!";
	return false;
   }
	
$name = $_POST['name'];
$email_address = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
	
// Create the email and send the message

$to = 'mgnt@teamincognito.pl';
$email_subject = "Website Contact Form:  $name";
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message";
$headers = "From: mgnt@teamincognito.pl";
mail($to,$email_subject,$email_body,$headers);
return true;			
?>


php.ini z konfiguracja lampp:

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP=localhost
; http://php.net/smtp-port
;smtp_port=25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;http://php.net/sendmail-path
sendmail_path = /usr/sbin/sendmail -t -i mgnt@teamincognito.pl

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header=On

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =


Nie mam pomysłu czemu nie ida maile czy jest jeszcze jakaś inna konfiguracja którą powinienem wykonać.
Z tego co sprawdzałem na serwerze mam w /usr/sbin/ jest sendmail wiec powinno byc spoko.
Skrypt też wykonuje mi się poprawnie w konsoli dev mam dla skryptu: 200 OK 279ms
Prośba o pomoc

2016-05-12 15:01:29 Post #2 nospor

 
Włącz wyświetlanie wszystkich błędów:
http://nospor.pl/php-faq.html#faq-2

Jeśli mail() się nie wysyła to powinny być błędy.

2016-05-12 16:08:49 Post #3 bubaluki

 
A tak z ciekawości gdybym zmienił w php.ini te wpisy i zrestartował lampp, będzie to to samo?

; display_errors
;   Default Value: On
   Development Value: On
;   Production Value: Off

; display_startup_errors
;   Default Value: Off
;   Development Value: On
;   Production Value: Off

; error_reporting
   Default Value: E_ALL & ~E_NOTICE
;   Development Value: E_ALL | E_STRICT
;   Production Value: E_ALL & ~E_DEPRECATED

; html_errors
;   Default Value: On
   Development Value: On
;   Production value: Off

; log_errors
;   Default Value: Off
   Development Value: On
;   Production Value: On

2016-05-12 16:16:36 Post #4 nospor

 
Jak zmienisz na wyswietlanie to tak

2016-05-12 16:27:53 Post #5 bubaluki

 
Pewnie chodzi Ci o te parametry?

error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT
display_startup_errors=On
display_errors=On
log_errors=On

Tak, mam to obecnie ustawione + to co wcześniej wkleiłem dodatkowo dodałem na końcu skryptu
echo "$name, $email_address, $phone ,$message";

i w przeglądarce dostaje prawidłowe wartości które faktycznie wprowadzam na formularzu.

2016-05-12 16:38:25 Post #6 nospor

 
if (mail($to,$email_subject,$email_body,$headers)) echo 'OK'; else echo 'NOT OK';

co wyswietla?

2016-05-12 16:43:28 Post #7 bubaluki

 
NOT OK

czyli coś jeszcze w PHP.ini nie mam przestawionego :/

2016-05-12 16:52:00 Post #8 bubaluki

 
Co do tego skryptu z FAQ,

<?php
error_reporting(E_ALL);
ini_set('display_errors','1');
?>


to jeśli bazuje na stronie w html wystarczy wrzucić go w head czy trzeba inaczej zainicializować?
Czy muszę tu dodać plik .htaccess z wpisem:

AddType application/x-httpd-php .htm .html

2016-05-12 16:53:07 Post #9 nospor

 
Kod z ERROR_REPORTING masz dac w kodzie php a konkrektnie w skrypcie ktory wysyla maila

2016-05-12 16:56:52 Post #10 bubaluki

 
Dodane i nadal nic:
<?php

error_reporting(E_ALL);
ini_set('display_errors','1');

// Check for empty fields
if(empty($_POST['name'])  		||
   empty($_POST['email']) 		||
   empty($_POST['phone']) 		||
   empty($_POST['message'])	||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
	echo "No arguments Provided!";
	return false;
   }
	
$name = $_POST['name'];
$email_address = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
	
// Create the email and send the message

$to = 'mgnt@teamincognito.pl';
$email_subject = "Website Contact Form:  $name";
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message";
$headers = "From: mgnt@teamincognito.pl";
mail($to,$email_subject,$email_body,$headers);

if (mail($to,$email_subject,$email_body,$headers)) echo 'OK'; else echo 'NOT OK';

?>

2016-05-12 16:59:05 Post #11 bubaluki

 
Przywróciłem tez zmiany w php.ini i zrobiłem restart lampp.

2016-05-12 17:00:11 Post #12 bubaluki

 
I dostałem odpowiedź OK.

2016-05-12 17:03:10 Post #13 nospor

 
Skoro dostales OK, znaczy, ze sie wyslal. Moze trafia ci do spamu lub cos w ten desen.

2016-05-12 17:03:24 Post #14 bubaluki

 
Mail nie doszedł, wysłałem jeszcze przed chwilą z normalnej poczty i inne maile dochodzą do skrzynki.

2016-05-12 17:26:50 Post #15 nospor

 
Skoro mail() zwraca true, znaczy ze mail wyszedł.

2016-05-12 17:52:56 Post #16 bubaluki

 
Dzięki za pomoc czyli muszę sprawdzić konfiguracje sendmail
Co lepsze jak daje sobie w terminalu: echo "My test email being sent from sendmail" | /usr/sbin/sendmail mojmail@gmail.com
i jest to Gmail to dochodzi A jak z formularza to już nie.
A na pocztę domenową w ogole nie idzie

2016-05-12 18:09:18 Post #17 nospor

 
Na Twoim miejscu wzialbym normalny lib do maili np. PhpMailer.

2016-05-12 22:27:23 Post #18 bubaluki

 
Spróbuje, ale na dziś wieczór zaplanowane mam wyrzucenie lampp i zostanie przy samym apache2 + php.
Jak zrobię to skrobnę czy się udało

Odpowiedz

Skrypty użytkowników

  1. Klasa obsługi szablo... Lirdoner
  2. Sekcje user76
  3. Klasa walidująca for... user76
  4. Licznik Gości online korey
  5. Form Builder Comandeer
  6. Dynamiczny licznik z... korey
  7. Captcha Comandeer