header

Prosty formularz w PHP

imię:
email:
wpisz tekst:
 

Kod formularza:

<!DOCTYPE HTML>
<html>
<head>
<title>Formularz obsługiwany przez skrypt php</title>
</head> <body> <form method="post" action="wyslij.php"> <table border="0"> <tr>
<td width="132" valign="top">imię: </td>
<td width="439"><input name="imie" type="text" size="64" maxlength="80"></td>
</tr>
<tr>
<td valign="top">email: </td>
<td><input name="email" type="text" size="64" maxlength="80"></td>
</tr>
<tr>
<td valign="top">wpisz tekst: </td>
<td><textarea name="zapytanie" cols="60" rows="4"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Wyślij"></td>
</tr>
</table>
</form> </body> </html>

Dla ułatwienia sobie pracy z wyrównywaniem elementów formularza umieściłem każdy element w osobnej komórce tabeli. A teraz o najważniejszym:

Formularz zaczyna się od wpisania znacznika:

<form

w którym definiujemy metodę przesyłania danych i adres, pod który mają być przesłane. W powyższym formularzu wpisałem:

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

zamiast

action="mailto:jklockowski@wp.pl?subject=Wyniki ankiety"

co powodowało w pierwszym przykładzie (formularze HTML) uruchomienie domyślnego programu pocztowego i wysłanie wiadomości o temacie "Wyniki ankiety". Teraz kierujemy nasz formularz do skryptu php znajdującego się w tym samym katalogu, co strona z formularzem i nazywającego się wyslij.php

action="wyslij.php"

Z punktu widzenia obsługi formularza poszczególnym elementom musimy nadać nazwy, w tym przykładzie istotne są następujące przypisania:

name="imie"
name="email"
name="zapytanie"

Po naciśnięciu przycisku "wyślij" do skryptu wyslij.php za pomocą metody POST zostaną z przeglądarki przesłane zmienne, do których możemy się odwoływać:

$_POST['imie']
$_POST['email']
$_POST['zapytanie']

A oto skrypt:

<?php
$adres_odbiorcy="jklockowski@wp.pl";
$adres_kopii="jklockowski@gmail.com";
$adres_nadawcy=$_POST['email'];
$naglowek_listu="From: $adres_nadawcy\r\nCc: $adres_kopii";
$temat_listu="Zapytanie ze strony";
$tresc_listu=$_POST['imie'] . " napisał(a):" . $_POST['zapytanie'];
if(mail($adres_odbiorcy, $temat_listu, $tresc_listu, $naglowek_listu))
{
echo("Wysyłka listu o temacie: '$temat_listu' została zakończona pomyślnie!");
}
else
{
echo("Błąd podczas wysyłania listu: '$temat_listu'.");
}
?>

Za wysłanie listu odpowiedzialna jest funkcja mail(), która zwraca wartość true - jeżeli formularz został wysłany i wartość false - w przypadku błędu. Funkcja mail() działa w oparciu o serwer pocztowy (np. Webmail). Składnia funkcji mail() jest następująca:

mail(adres_email_adresata, temat_listu, tresc_listu [, inne_naglowki_listu])

Nawias kwadratowy, oznacza, że inne_naglowki_listu nie muszą wystąpić. Co oznacza adres_email_adresata, temat_listu i tresc_listu nie trzeba tłumaczyć, przed podaniem agrumentu tresc_listu, został on odpowiednio sformatowany:

$tresc_listu=$_POST['imie'] . " napisa(a):" . $_POST['zapytanie'];

Do zmiennej $tresc_listu została podstawiona wartość $_POST['imie'] połączone (kropka w PHP czy napisy) z napisem "napisa(a)" i z wartości $_POST['zapytanie'].

Jako dodatkowe argumenty funkcji mail() możemy przekazać:

From: - adres email nadawcy

To: - adresy podstawowych odbiorców, adresy email oddzielone przecinkami

Cc: - adres (adresy) osoby, do której wysyłamy kopię

Bcc: - adres (adresy) osoby, do której wysyłamy ukrytą kopię

Reply-To: - adres, który program pocztowy pobierze do przesłania odpowiedzi, jeżeli nie użyjemy "Reply-To: ", odpowiedź będzie przesłana na adres email z nagłówka "From: ". W powyższym przykładzie występują "From: " i "Cc: ":

$naglowek_listu="From: $adres_nadawcy\r\nCc: $adres_kopii";

Po nazwach nagłówka musi wystpić dwukropek i spacja, jeżeli dodajemy kilka nagłówków, oddzielamy je sekwencją znaków "\r\n".

A oto otrzymany email:

wyniki ankiety