Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Błąd z formularzem kontaktowym


TheTroy

Pytanie

Opublikowano

Witam otóż mam problem z formularzem kontaktowym nie wysyła mi wiadomości na pocztę.

Oto kod HTML:

<form method="post" action="" >
    <h1>Formularz kontaktowy</h1>
        <p>Imię / Nick</p>
        <input type="text" name="name" maxlength="20" class="contact-input"/>
                     
        <p>Temat:</p>
        <input type="text" name="subject" maxlength="64" class="contact-input"/>
                      
        <p>Twój e-mail:</p>
        <input type="text" name="email" maxlength="50" class="contact-input"/><br/>

        <p>Kategoria:</p>
        <input type="text" name="category" maxlength="18" id="category" class="contact-input"/>
        <p class="p-mini">(Nie pamiętam hasła, Forum, Inna, Współpraca)</p>
        <p class="p-mini">Wybierz jedną z czterech kategorii, a następnie opisz nam swój problem, lub zadaj nam pytanie dotyczące tej kategorii, którą wybrałeś/łaś.</p>
                      
        <p>Treść:</p>
        <textarea type="text" name="message" maxlength="1000" id="message" rows="10" class="textarea-contact"></textarea><br/>
                      
        <input type="submit" name="submit" id="submit" value="Wyślij" class="contact"/>
</form>

A to kod PHP odpowiedzialny za wysyłanie wiadomości:

<?php
	$name = $_POST['name'];
	$subject = $_POST['subject'];
	$email = $_POST['email'];
	$category = $_POST['category'];
	$message = $_POST['message'];
	
	$from = 'Moja strona';
	$to = 'mó[email protected]';
	
	$body = "Przysłał - $name\n E-Mail: $email\n Temat: $subject\n Kategoria: $category\n Wiadomość:\n $message";
	
	if ($_POST['submit']) {			 
		if (mail ($to, $subject, $body, $from)) { 
		echo '<br/><p class="p-mini">Wiadomość została wysłana.</p>';
	} else { 
		echo '<br/><p>Twoja wiadomość nie została wysłana.</p>'; 
	} 
	}
?>

Jest tu gdzieś jakiś błąd?

Ponieważ chciałem se przetestować ten kod i wszystko dobrze pokazuje po wypełnieniu pól że wysłana a na poczcie nic niema :/

 

Próbowałem również ten kod PHP dać do osobnego pliku mail.php i wtedy <form> wyglądał tak:

<form method="post" action="mail.php">

Ale i to nie przyniosło żadnego efektu (dodam że sprawdzałem to na darmowym hostingu na CBA a nie na lokalu).

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano

PHPMailer daje większe możliwości, dzięki możliwości wysłania przez SMTP np google mamy pewność, że wiadomość nie wyląduje w SPAMIE. Ja sam na co dzień używam PHPMailer'a

Opublikowano
11 godzin temu, TheTroy napisał:

Witam otóż mam problem z formularzem kontaktowym nie wysyła mi wiadomości na pocztę.

Oto kod HTML:


<form method="post" action="" >
    <h1>Formularz kontaktowy</h1>
        <p>Imię / Nick</p>
        <input type="text" name="name" maxlength="20" class="contact-input"/>
                     
        <p>Temat:</p>
        <input type="text" name="subject" maxlength="64" class="contact-input"/>
                      
        <p>Twój e-mail:</p>
        <input type="text" name="email" maxlength="50" class="contact-input"/><br/>

        <p>Kategoria:</p>
        <input type="text" name="category" maxlength="18" id="category" class="contact-input"/>
        <p class="p-mini">(Nie pamiętam hasła, Forum, Inna, Współpraca)</p>
        <p class="p-mini">Wybierz jedną z czterech kategorii, a następnie opisz nam swój problem, lub zadaj nam pytanie dotyczące tej kategorii, którą wybrałeś/łaś.</p>
                      
        <p>Treść:</p>
        <textarea type="text" name="message" maxlength="1000" id="message" rows="10" class="textarea-contact"></textarea><br/>
                      
        <input type="submit" name="submit" id="submit" value="Wyślij" class="contact"/>
</form>

A to kod PHP odpowiedzialny za wysyłanie wiadomości:


<?php
	$name = $_POST['name'];
	$subject = $_POST['subject'];
	$email = $_POST['email'];
	$category = $_POST['category'];
	$message = $_POST['message'];
	
	$from = 'Moja strona';
	$to = 'mó[email protected]';
	
	$body = "Przysłał - $name\n E-Mail: $email\n Temat: $subject\n Kategoria: $category\n Wiadomość:\n $message";
	
	if ($_POST['submit']) {			 
		if (mail ($to, $subject, $body, $from)) { 
		echo '<br/><p class="p-mini">Wiadomość została wysłana.</p>';
	} else { 
		echo '<br/><p>Twoja wiadomość nie została wysłana.</p>'; 
	} 
	}
?>

Jest tu gdzieś jakiś błąd?

Ponieważ chciałem se przetestować ten kod i wszystko dobrze pokazuje po wypełnieniu pól że wysłana a na poczcie nic niema :/

 

Próbowałem również ten kod PHP dać do osobnego pliku mail.php i wtedy <form> wyglądał tak:


<form method="post" action="mail.php">

Ale i to nie przyniosło żadnego efektu (dodam że sprawdzałem to na darmowym hostingu na CBA a nie na lokalu).

 

Kod HTML oraz PHP jest poprawny, u mnie wszystko działa.

Prawdopodobnie nie posiadasz skonfigurowanego serwera STMP.

Opublikowano

Żeby wysyłać maile z PHP, musisz najpierw skonfigurować SMTP w pliku php.ini . Gdyby się dało wysyłać wiadomości bez żadnej konfiguracji, to wyobraź sobie, jakby wyglądała twoja skrzynka mailowa z 834757489339 wiadomościami od ruskich scamerów ;) .

Further info: http://php.net/manual/en/mail.configuration.php

Non omnis moriar.

Opublikowano
Dnia 16.07.2018 o 23:35, maxaz napisał:

Zdajesz sobie sprawę, że mail() tak samo potrzebuje konfiguracji SMTP?

Tak, ale jeżeli TheTroy ma swój projekt postawiony na serwerze jak m.in. proserwer czy home.pl to automatycznie ma skonfigurowane SMTP i może używać funkcji mail() bez konfigurowania 

Opublikowano
8 godzin temu, Terbaik napisał:

Jest bardzo ciekawa alternatywa jeżeli nie chcesz/nie masz czasu na konfigurację SMTP. Użyj funkcji mail().


<?php
// Do kogo
$to = '[email protected], [email protected]'; // note the comma

// Temat
$subject = 'Zaproszenie';

// Wiadomość (może być w html)
$message = 'Cześć.';

// Header. Niezbędne informacje do wysłania. Nic tutaj nie jest do zmiany.
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

// Informacje
$headers[] = 'To: Janek <[email protected]>, Kowalski <[email protected]>';
$headers[] = 'From: Ktoś <[email protected]>';
$headers[] = 'Cc: [email protected]';
$headers[] = 'Bcc: [email protected]';

// Mail it
mail($to, $subject, $message, implode("\r\n", $headers));
?>

Minimalna wersja to PHP 4.0

Zdajesz sobie sprawę, że mail() tak samo potrzebuje konfiguracji SMTP?

Non omnis moriar.

Opublikowano

Jest bardzo ciekawa alternatywa jeżeli nie chcesz/nie masz czasu na konfigurację SMTP. Użyj funkcji mail().

<?php
// Do kogo
$to = '[email protected], [email protected]'; // note the comma

// Temat
$subject = 'Zaproszenie';

// Wiadomość (może być w html)
$message = 'Cześć.';

// Header. Niezbędne informacje do wysłania. Nic tutaj nie jest do zmiany.
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

// Informacje
$headers[] = 'To: Janek <[email protected]>, Kowalski <[email protected]>';
$headers[] = 'From: Ktoś <[email protected]>';
$headers[] = 'Cc: [email protected]';
$headers[] = 'Bcc: [email protected]';

// Mail it
mail($to, $subject, $message, implode("\r\n", $headers));
?>

Minimalna wersja to PHP 4.0

Opublikowano
15 minut temu, djtom3k napisał:

Nie używaj funkcji mail(), lepszą opcją jest PHPMailer

Uzasadnisz swoją opinię, czy mamy ci wierzyć na słowo?

Non omnis moriar.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...