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
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

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
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
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
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.

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

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...