Witam wszystkich.
Na stronie internetowej chciałbym umieścić prosty formularz kontaktowy. Przy pomocy poradnika ze strony kurshtml.boo.pl stworzyłem coś takiego:
Co musiałbym teraz zrobić, by po umieszczeniu go na stronie można było wysłać emaile z tym? Musiałbym połączyć to jakoś z PHP? Wydaje mi się, że takie coś możliwe jest na PHP, a na HTML niestety nie.
Jeśli tak to jak to by trzeba było zrobić?
15-04-2011, 21:08 (Ten post był ostatnio modyfikowany: 15-04-2011, 21:08 przez dziamber.)
W miejsce atrybutu action znacznika form wpisz nazwę pliku php w którym wysyłasz te maile, np. mail.php. Następnie skorzystaj z funkcji mail udostępnianej standardowo przez php.
To jest tylko przykład, normalnie musisz się upewnić że nadesłane dane są zabezpieczone przed wysłaniem i takie tam. No ale ja wszystkiego za Ciebie nie zrobie.
<?php
if (!nick || !numer || !mail || !temat || !tresc)
{
echo "Nie uzupełniłeś wszystkich rubryk.";
exit;
}
$wiadomosc =
"Imię i nazwisko: ".$_POST['nick']."
Numer telefonu: ".$_POST['numer']."
E-mail: ".$_POST['mail']."
Treść: ".$_POST['tresc']." ";
$tematyka = "Temat: ".$temat;
mail ("[email protected]", $tematyka, $wiadomosc );
echo "Dziękujemy za wysłanie do nas wiadomości.<br>";
echo "Postaramy się odpowiedzieć na nią w czasie 48h.<br><br>";
echo "Treść wiadomości:<br>";
echo "Twoje imię i nazwisko: <strong>".$_POST['nick']."</strong><br>";
echo "Twój numer telefonu: <strong>".$_POST['numer']."</strong><br>";
echo "Twój adres e-mail: <strong>".$_POST['mail']."</strong><br>";
echo "Temat: <strong>".$_POST['temat']."</strong><br>";
echo "Treść: <strong>".$_POST['tresc']."</strong><br>";
?>
Wszysto prócz jednej rzeczy jest OK. Wpiszę temat wiadomości, ale nie wyświetli mi tematu we wiadomości na poczcie. Tylko wychodzi "Temat:", a chciałbym, żeby do tego dodało jeszcze temat wpisany przez użytkownika.
Co muszę zmienić w tej linijce?
1. Nie zabezpieczasz w żaden sposób wartości otrzymywanych od użytkownika. "Dane dostarczane od użytkownika należy zawsze traktować jako skarzone"
2. Sposób sprawdzania czy użytkownik wypełnił pole jest bezużyteczne. Wystarczy wcisnąć spacje i takim sposobem skrypt traktuje zmienną jakby miała wartość.
3. Są bardziej eleganckie sposoby obsługi błędów niż zatrzymywanie całego skryptu funkcją exit. Użytkownik musi cofać się w przeglądarce aby ponownie wypełnić formularz
Pierwszy raz robie taki formularz, więc skąd mam o tym wszystkim mieć pojęcie?
1. Jak mam niby zabezpieczyć te wartości?
2. Może i bezużyteczne, ale może być ;p
3. Co do tego to nie mam również żadnych pomysłów...
Szukanie w googlach nie boli, na prawdę. Powiem Ci, że co do 1 to masz od tego ogrom funkcji choćby htmlspecialchars i inne. Reszte sam rusz się i poszukaj