Mam na stronie formularz kontaktowy który składa się tylko z 3 pól: “imię”, “e-mail” i “Treść”.
Wszystko działa dobrze, ale chciałem dodać do niego opcję, “Wyślij kopię do mnie” (na adres e-mail wpisany w formularzu, tak jak jest to zrobione np. na TEJ STRONIE ).
Co mam dodać do tego formularza?
Mój formularz
<?php
// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST['submit'])) {
// wyświetlamy formularz
echo "<table border=\"0\"><form method=\"post\">
<tr>
<td>Imię i nazwisko:*</td>
<td><input type=\"text\" name=\"imie\" style=\"width: 450px\"></td>
</tr>
<tr>
<td>Twój e-mail:*</td>
<td><input type=\"text\" name=\"email\" style=\"width: 450px\"></td>
</tr>
<tr>
<td>Treść wiadomości:*</td>
<td><textarea name=\"tresc\" style=\"width: 450px; height: 180px\"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">
<input type=\"reset\" value=\"Wyczyść\"></td></form>
</tr>
<tr>
<td>*Pola wymagane</td>
</tr>
</table>";
}
// sprawdzamy, czy zmienne przesłane z formularza nie są puste
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
// jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
// zmienna $message zawiera treść wiadomości
$message = "$_POST[tresc]\n\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
// zmienna $header zawiera przede wszystkim adres zwrotny
$header = "From: $_POST[imie] <$_POST[email]>".PHP_EOL.'MIME-Version: 1.0'.PHP_EOL.'Content-type: text/plain; charset=UTF-8';
// funkcja mail() za pomocą której wiadomość zostanie wysłana
@mail("MÓJ-MAIL@MAIL.COM","TEMAT E-MAILA","$message","$header")
or die('Nie udało się wysłać wiadomości');
// wyświetlenie komunikatu w przypadku powodzenia
echo "<div align=\"center\"><strong><font color=gren size=4><b>Dziękujemy - Wiadomość została wysłana!</font><p></strong></div>";
}
// lub w przypadku nie wypełnienia formularza do końca
else echo "<font color=red size=4><b>Nie zostały wypełnione wszystkie wymagane pola!</b></font><p> <a href=\"formularz.php\">Powrót do formularza</a></p>";
?>
To ja wiem, do mnie na wskazany adres e-mail przychodzi, ale mi chodzi o to, żeby kopia była wysyłana także do nadawcy na e-mail który będzie wpisany w formularzu.
Skoro wiesz to zrób tak i będzie działać + ew if z checkboxem by user mógł wybrać czy chce ten mail dostać. A że nie znasz podstaw poczytaj http://webmade.org/kursy-online/kurs-php.php W tym co chcesz uzyskać nie ma żadnej głębszej wiedzy niż to co już masz.
@mail("MÓJ-MAIL@MAIL.COM","TEMAT E-MAILA","$message","$header")
or die('Nie udało się wysłać wiadomości');
@mail("$_POST[email]","KOPIA TEMAT E-MAILA","$message","$header")
or die('Nie udało się wysłać wiadomości');
<?php
// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST['submit'])) {
// wyświetlamy formularz
echo "<table border=\"0\"><form method=\"post\">
<tr>
<td>Imię i nazwisko:*</td>
<td><input type=\"text\" name=\"imie\" style=\"width: 450px\"></td>
</tr>
<tr>
<td>Twój e-mail:*</td>
<td><input type=\"text\" name=\"email\" style=\"width: 450px\"></td>
</tr>
<tr>
<td>Treść wiadomości:*</td>
<td><textarea name=\"tresc\" style=\"width: 450px; height: 180px\"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type=\"checkbox\" name=\"kopia\" >Wyślij kopię do mnie</td>
</tr>
<tr>
<td> </td>
<td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">
<input type=\"reset\" value=\"Wyczyść\"></td></form>
</tr>
<tr>
<td>*Pola wymagane</td>
</tr>
</table>";
}
// sprawdzamy, czy zmienne przesłane z formularza nie są puste
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
// jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
// zmienna $message zawiera treść wiadomości
$message = "$_POST[tresc]\n\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
// zmienna $header zawiera przede wszystkim adres zwrotny
$header = "From: $_POST[imie] <$_POST[email]>".PHP_EOL.'MIME-Version: 1.0'.PHP_EOL.'Content-type: text/plain; charset=UTF-8';
// funkcja mail() za pomocą której wiadomość zostanie wysłana
@mail("MÓJ-MAIL@MAIL.COM","TEMAT E-MAILA","$message","$header")
or die('Nie udało się wysłać wiadomości');
if($_POST['kopia']) {
@mail("$_POST[email]","KOPIA TEMAT E-MAILA","$message","$header")
or die('Nie udało się wysłać wiadomości');
}
// wyświetlenie komunikatu w przypadku powodzenia
echo "<div align=\"center\"><strong><font color=gren size=4><b>Dziękujemy - Wiadomość została wysłana!</font><p></strong></div>";
}
// lub w przypadku nie wypełnienia formularza do końca
else echo "<font color=red size=4><b>Nie zostały wypełnione wszystkie wymagane pola!</b></font><p> <a href=\"formularz.php\">Powrót do formularza</a></p>";
?>
I według mnie lepiej by było gdybyś zmienił jeszcze w formularzu typ pola do wpisywania emaila z text na email, bo teraz użytkownik może tam wpisać jakikolwiek tekst a przy typie email pokazuje się komunikat gdy w wpisanym tekście nie ma znaku “@”.
To jest źle zrobione. Jeśli do kogoś ma zostać wysłana kopia maila, to jego adres należy umieścić w polu CC, a nie wysyłać mu drugiego osobnego maila. Chociażby dlatego, że on w tej chwili nie możę odpowiedzieć wszystkim, którzy są zainteresowani grupową korespondencją.