Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Formularz HTML
#1
Witam wszystkich.
Na stronie internetowej chciałbym umieścić prosty formularz kontaktowy. Przy pomocy poradnika ze strony kurshtml.boo.pl stworzyłem coś takiego:
Kod:
<html>
<head>
<title>Formularz</title>
<meta http-equiv="Content-type" content="text/html; charset=windows-1250" />
</head>
<body>
<form action="[email protected]" method="post" enctype="text/plain">
<div>
<center>
<table>
<tr>
<td>Imię i nazwisko: </td>
<td><input type="text" name="imie" maxlength="50"></td>
</tr><br>
<tr>
<td>Numer telefonu: </td>
<td><input type="text" name="telefon"></td>
</tr><br>
<tr>
<td>E-mail: </td>
<td><input type="text" name="mail"></td>
</tr><br>
<tr>
<td>Temat: </td>
<td><input type="text" name="temat"></td>
</tr><br>
<tr>
<td>Treść wiadomości: </td>
<td><textarea name="tresc" rows="5" cols="30">Wpisz treść

wiadomości</textarea></td>
</tr><br>
</table>
</center>
<center>
<table>
<tr>
<td><input type="submit" name="wyslij" value="Wyślij"></td>
<td><input type="reset" value="Wyczyść formularz"></td>
</tr>
</table>
</center>
</div>
</form>
</body>
</html>

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

Z góry dziękuję za wszelkie odpowiedzi.
Odpowiedz
#2
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.

Coś w stylu:
Kod PHP:
<?php
$imie 
$_POST['imie'];
$tresc $_POST['tresc'];
$temat $_POST['temat'];
$email $_POST['email'];
if(
mail($email$temat$tresc)) {
echo 
"Wiadomosc zostala wyslana";
}
?>

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.
[Obrazek: 2guxq1i.gif]
Odpowiedz
#3
Wszystko jest OK, ale jest inny sposób. Podam może się przydać dla innych.

Na twoją strone do pliku .html wklejasz ten kod tam gdzie ma być wyświetlany formularz kontaktowy. Oto ten kod:
Kod:
<form method="post" action="wyslij.php" name="kontakt">
        <div><li><label for="nick">Imię: </label><ul><input type="text" class="text" id="nick" name="nick" ></div>
        <div><li><label for="temat">Temat: </label><ul><input type="text" name="temat" class="text" id="temat" ></div>
        <div><li><label for="mail">Twój adres e-mail: </label><ul><input type="text" name="mail" class="text" id="mail" ></div>
        <div><li><label for="tresc">Treść: </label><ul><textarea name="tresc" id="tresc" rows="5" cols="50" ></textarea></div>
        <div><ul><input type="submit" value="Wyślij" /></div>
        </form>

"wyslij.php" zamieniasz na nazwe pliku w którym jest kod PHP. Oto ten kod:
Kod:
<?php
if (!nick || !mail || !temat || !tresc)
{    
echo "Nie uzupełniłe¶ wszystkich rubryk.";
exit;  
}

$wiadomosc =
"Imie: ".$_POST['nick']."

e- mail: ".$_POST['mail']."

Tresc: ".$_POST['tresc']."  ";

$tematyka = "Nazwa twojej strony - ".$temat;


mail ("-----------------------------------", $tematyka, $wiadomosc );
echo "Dziekujemy za wysłanie do nas wiadomości,";
echo "<ul>o treści: <ul />";
echo "Twoje imię: <strong>".$nick."</strong><ul />";
echo "Temat: <strong>".$temat."</strong><ul />";
echo "Twój adres e-mail: <strong>".$mail."</strong><ul />";
echo "Treść: <strong>".$tresc."</strong><ul />";
?>

W miejsce ------- wpisujesz swój e-mail, na który będą przychodzić wiadomości.

Na dole dam załącznik do ppliku wyślij.php
Myśle że pomogłem. Pozdrawiam.


Załączone pliki
.php   wyslij.php (Rozmiar: 632 bajtów / Pobrań: 2)
Odpowiedz
#4
Dobra, mam coś takiego w pliku .html
Kod:
<html>
<head>
<title>Formularz</title>
<meta http-equiv="Content-type" content="text/html; charset=windows-1250" />
</head>
<body>
<form method="post" action="wyslij.php" name="kontakt">
<div>
<center>
<table>

<tr>
<td><label for="nick">Imię i nazwisko: </label></td>
<td><input type="text" class="text" id="nick" name="nick"></td>
</tr><br>

<tr>
<td><label for="numer">Numer telefonu: </label></td>
<td><input type="text" class="text" id="numer" name="numer"></td>
</tr><br>

<tr>
<td><label for="mail">E-mail: </label></td>
<td><input type="text" class="text" id="mail" name="mail"></td>
</tr><br>

<tr>
<td><label for="temat">Temat: </label></td>
<td><input type="text" class="text" id="temat" name="temat"></td>
</tr><br>

<tr>
<td><label for="tresc">Treść wiadomości: </label></td>
<td><textarea name="tresc" id="tresc" rows="5" cols="30"></textarea></td>
</tr><br>

</table>
</center>
<center>
<table>
<tr>
<td><input type="submit" name="wyslij" value="Wyślij"></td>
<td><input type="reset" value="Wyczyść formularz"></td>
</tr>
</table>
</center>
</div>
</form>
</body>
</html>

i to w pliku wyslij.php
Kod:
<?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?
Cytat: $tematyka = "Temat: ".$temat;
Odpowiedz
#5
Kod PHP:
$tematyka "Temat: ".$_POST['temat']; 

A tak poza tym to ten kod który teraz masz to można o kant dupy roztrzaskać.
[Obrazek: 2guxq1i.gif]
Odpowiedz
#6
A czemuż to? Co w nim jest nie tak?
Odpowiedz
#7
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
[Obrazek: 2guxq1i.gif]
Odpowiedz
#8
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...
Odpowiedz
#9
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
[Obrazek: 2guxq1i.gif]
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Kursy (x)HTML/CSS DoGeR 9 23,699 18-01-2017, 21:55
Ostatni post: Michael
Sad HTML/CSS/JQUERY - Potrzebuje pomocy / Bezradność jokerblitzz 10 10,230 28-04-2016, 00:24
Ostatni post: mubi
  [CSS]+[HTML] Pozycjonowanie slidera. Youras 2 4,754 16-01-2016, 23:11
Ostatni post: Szymon Słowik
  Kolor tła dla aktywnej podstron [CSS i HTML] bahafo 5 7,793 27-12-2014, 15:25
Ostatni post: Kartofelek
  [problem][html] cutenews i szablon kawadodek2000 1 2,992 13-08-2013, 16:49
Ostatni post: mateo

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl