|
|
PHP (angielski akronim rekurencyjny, którego rozwinięcie to PHP Hypertext Preprocessor), pierwotnie nazwany Personal
Home Page - skryptowy język programowania, służący przede wszystkim do tworzenia dynamicznych stron WWW i wykonywany w
tym przypadku po stronie serwera, z możliwością zagnieżdżania w HTML (bądź XHTML). PHP jest podobny w założeniach do
dużo starszego mechanizmu SSI (Server Side Includes), jednak jest w stosunku do SSI nieporównanie bardziej rozbudowany.
Udostępniany jest na zasadach licencji open-source. Jego składnia bazuje na językach C, Java i Perl.
SQL (ang. Structured Query Language) to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz
do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi
zarządzania bazą danych DBMS.
Jest to język programowania opracowany w latach siedemdziesiątych w firmie IBM. Stał się on standardem w komunikacji z
serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z
użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a.
Apache jest otwartym serwerem HTTP dostępnym dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD,
Microsoft Windows). Po angielsku słowo Apache wymawia się epaczi, co brzmi tak samo jak a patchy (server), co było
określeniem tego serwera we wczesnym stadium jego rozwoju w 1995 roku, kiedy był on głównie zbiorem poprawek (patch)
nałożonych na serwer HTTP o nazwie NCSA.
Apache jest najszerzej stosowanym serwerem HTTP w Internecie. W maju 2003 jego udział wśród serwerów wynosił 62%. W
połączeniu z interpreterem języka skryptowego PHP i bazą danych MySQL, Apache stanowi jedno z najczęściej spotykanych
środowisk w firmach oferujących miejsce na serwerach sieciowych.
|
mail
(PHP 3, PHP 4, PHP 5) mail -- Wysyła e-maila
Opisbool mail ( string do,
string temat, string treść [, string dodatkowe_nagłówki [,
string dodatkowe_parametry]] )
mail() automatycznie wysyła
wiadomość określoną w treść do
odbiorcy określonego w do. Można
wysłać wiadomość do kilku odbiorców na raz, wypisując ich
adresy po przecinku w argumencie do. Poprzez tę funkcję można też wysłać listy
zawierające załączniki lub inne typy wiadomości. Jest to
możliwe dzięki kodowaniu MIME - po więcej informacji, zajrzyj
http://www.zend.com/zend/spotlight/sendmimeemailpart1.php
lub Klasy Mime PEAR.
Zapoznanie się z poniższymi RFC może być przydatne: RFC 1896, RFC 2045, RFC 2046,
RFC 2047, RFC 2048 i RFC
2049.
mail() zwraca TRUE jeśli e-mail został zaakceptowany
przez przekaźnik pocztowy do wysłania lub FALSE w przeciwnym wypadku.
| Ostrzeżenie |
|
Implementacja funkcji mail()
w systemie Windows różni się od implementacji w
systemie Unix. Po pierwsze, funkcja nie używa lokalnych
programów do komponowania wiadomości pocztowych, tylko
operuje na połączeniach socketowych, co oznacza, że do
działania potrzebny jest Agent Transferu Poczty
(MTA), który nasłuchuje na
odpowiednim porcie. (Agent może znajdować się zarówno
na maszynie lokalnej, jak i zdalnej). Po drugie,
nagłówki użytkownika, takie jak From:, Cc:,
Bcc: oraz Date: nie są w pierwszej kolejności
interpretowane przez MTA,
gdyż wcześniej są parsowane przez PHP. PHP
< 4.3 obsługiwał spośród wyżej wymienionych tylko
nagłówek Cc: (wymagana była
odpowiednia wielkość liter); natomiast PHP <= 4.3 obsługuje już wszystkie
wyżej wymienione nagłówki i nie wymaga odpowiedniej
wielkości liter.
|
Przykład 1. Wysyłanie e-maila
mail("joecool@example.com", "Temat listu", "Linia 1\nLinia 2\nLinia 3");
|
|
Jeśli zostanie podany czwarty argument, będzie on dopisany
na końcu nagłówka wiadomości. Ten argument wykorzystuje się do
wstawienia dodatkowych nagłówków. Dodatkowe nagłówki rozdziela
się znakiem powrotu karetki i nowego wiersza.
Notatka: Aby rozdzielić nagłówki, trzeba użyć
sekwencji \r\n, chociaż niektóre
uniksowe agenty pocztowe obsługują także pojedynczy znak
nowej linii (\n).
Przykład 2. Wysyłanie listu z dodatkowymi
nagłówkami.
mail("nobody@example.com", "temat", $wiadomosc,
"From: webmaster@$SERVER_NAME\r\n"
."Reply-To: webmaster@$SERVER_NAME\r\n"
."X-Mailer: PHP/" . phpversion());
|
|
Argumentu dodatkowe_parametry
używa się do przekazania dodatkowego paramteru do programu
wysyłającego pocztę skonfigurowanego w dyrektywie sendmail_path. Używa się tego na przykład do
ustawienia adresu zwrotnego koperty (envelope sender adress)
przy wysyłaniu listu za pomocą sendmaila. Możesz być zmuszony
dodać użytkownika jakim jest twój serwer www do listy zaufanych
użytkowników w pliku konfiguracyjnym sendmaila, aby sendmail
nie dodał nagłówka "X-warning" do wiadomości przy wysyłaniu
koperty (envelope) tą metodą.
Przykład 3. Wysyłanie listu z dodatkowymi
nagłówkami i przełącznikami.
mail("nobody@example.com", "temat", $wiadomosc,
"From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");
|
|
Notatka: Piąty argument funkcji mail() został dodany w PHP 4.0.5. Począwszy
od PHP 4.2.3 argument ten jest zablokowany w trybie bezpiecznym.
W przypadku próby użycia, funkcja mail() wygeneruje ostrzeżenie i zwróci
FALSE.
Można tez użyć zwykłych operacji na łańcuchach znaków do
tworzenia złożonych wiadomości e-mail.
Przykład 4. Wysyłanie złożonego e-maila.
/* adresaci */
$do = "Marysia <marysia@example.com>" . ", " ; // zwróc uwagę na przecinek
$do .= "Kasia <kasia@example.com>";
/* temat */
$temat = "Przypomnienie o urodzinach w Sierpniu";
/* wiadomość */
$wiadomosc = '
<html>
<head>
<title>Przypomnienie o urodzinach w Sierpniu</title>
</head>
<body>
<p>Te urodziny będziemy świętować w Sierpniu!</p>
<table>
<tr>
<th>Osoba</th><th>Dzień</th><th>Miesiąc</th><th>Rok</th>
</tr>
<tr>
<td>Jan</td><td>3.</td><td>Sierpnia</td><td>1970</td>
</tr>
<tr>
<td>Szymon</td><td>17.</td><td>Sierpnia</td><td>1973</td>
</tr>
</table>
</body>
</html>
';
/* Aby wysłać e-mail w formacie HTML, należy ustawić nagłówek Content-type. */
$naglowki = "MIME-Version: 1.0\r\n";
$naglowki .= "Content-type: text/html; charset=iso-8859-1\r\n";
/* dodatkowe nagłówki */
$naglowki .= "From: Przypominacz o urodzinach <urodziny@example.com>\r\n";
$naglowki .= "Cc: archiwum_mailingu@example.com\r\n";
$naglowki .= "Bcc: kontrola_mailingu@example.com\r\n";
/* a teraz wyślij */
mail($do, $temat, $wiadomosc, $naglowki);
|
|
Notatka: Upewnij się, że nie ma żadnych znaków
nowej linii w argumencie do
lub temat, gdyż w przeciwnym
razie, e-mail może nie być wysłany poprawnie.
Notatka: Argument do
nie może być adresem w postaci "Ktośtam
<someone@example.com>". Funkcja mail() nie przetworzy prawidłowo takiego
adresu w czasie transakcji z Agentem Transferu Poczty
(MTA).
Patrz także: imap_mail().
|