Osobní komunikační centrum v PHP
Osobní stránky doslova přetékají emailovými formulářemi a ikonkami ICQ online/offline. Za pomoci jednoduchých skriptů v jazyce PHP lze utvořit plnohodnotné osobní komunikační centrum.
Naše komunikační centrum má sloužit pro usnadnění komunikace uživatele s nějakou konkrétní osobou. Centrum nabídne možnost odeslání Emailu, SMSky, nebo zprávy na ICQ. Je to jednoduché. Celé centrum se skládá ze dvou částí – formuláře a skriptu PHP, který se postará o odeslání dat.
Nejdříve si prohlédneme formulář:
<form method=“post“>
<input type=“hidden“ name=“odeslano“ value=“true“> <table style=“font:13px arial;width:400px;“>
<tr><td><input type=“text“ name=“jmeno“ value=“Vaše jméno“ /></td><td><input type=“text“ name=“email“ value=“Váš email“ /></td></tr>
<tr><td colspan=“4″><input type=“text“ name=“predmet“ size=“40″ value=“Předmět zprávy“ /></td></tr>
<tr><td colspan=“4″><textarea name=“text“ cols=“40″ rows=“12″ value=““>Text zprávy</textarea></td></tr>
<tr><td colspan=“4″><input type=“submit“ value=“Odeslat“> jako <select name=“jako“>
<option value=“email“>E-Mail</option>
<option value=“sms“>SMS</option>
<option value=“icq“>ICQ</option>
</select>
<img src=“http://web.icq.com/whitepages/online?icq=xxxxxxxxx&img=21″ /></td></tr>
</table>
</form>
Zvýrazněné elementy jsou funkční prvky. Nacházíme zde jeden formulář s položkami jméno, email, předmět, text, možnost volby způsobu odeslání, neviditelný vstup odeslano=true, tlačítko ODESLAT a ještě ikonka ICQ online/offline (pokud jste ICQ online, je jasné, že je momentálně ICQ nejrychlejší způsob komunikace s vámi). Místo xxxxxxxxx musíte samozřejmě zadat číslo svého ICQ (pokud nějaké máte). Pokud ICQ nemáte, stačí odmazat řádek <option value=“icq“… a odstranit ikonku ICQ (<img src=“http://web.icq…).
PHP skript vložíte do stejného souboru, jako formulář. Využijeme přitom neviditelné položky formuláře odeslat s hodnotou true. Pokud pak proměnná $odeslat
bude mít hodnotu true, byl formulář odeslán a můžeme přejít k „odesílací“ části skriptu. Ta je realizována především pomocí funkce mail()
. Pokud bude odeslání úspěšné, nastaví se proměnná $ok
na true a vypíše se hláška informující o úspěšném odeslání.
Abychom si to trochu zpestřili, použijeme tzv. superglobální proměnné. Mezi ně patří například $HTTP_GET_VARS
, $HTTP_POST_VARS
nebo $HTTP_COOKIE_VARS
. Od PHP 4.1.0 lze používat i kratší varianty jako $_GET
, $_POST
nebo $_COOKIE
. Ty se chovají naprosto stejně, jako jejich starší vzory. Proměnná $HTTP_POST_VARS
je vlastně pole obsahující všechny proměnné, které byly skriptu předány metodou POST. Další se chovají obdobně. Pokud tedy chceme ve skriptu použít proměnnou $promenna
, která byla odeslána metodou POST, můžeme napsat buď $promenna
, $HTTP_POST_VARS['promenna']
, nebo $_POST['promenna']
. Ve skriptu z těchto tří možností vybereme $HTTP_POST_VARS
, pro případ, že by někdo používal starší verzi PHP, než 4.1.0. Ti ostatní samozřejmě mohou nahradit $HTTP_POST_VARS
za $_POST
.
<?php
if($HTTP_POST_VARS[‚odeslano‘]) {
if($HTTP_POST_VARS[‚jako‘]==“email“) {
if(mail(„váš@email.cz“, „Z WWW : “ . $HTTP_POST_VARS[‚predmet‘], $HTTP_POST_VARS[‚text‘], „From:“ . $HTTP_POST_VARS[‚jmeno‘] . “ <" . $HTTP_POST_VARS['email'] . "> \r\n Content-Type: text/plain“)) $ok=true;
}
if($HTTP_POST_VARS[‚jako‘]==“sms“) {
if(mail(„mobilní@email.cz“, „Z WWW : “ . $HTTP_POST_VARS[‚predmet‘], $HTTP_POST_VARS[‚text‘], „From:“ . $HTTP_POST_VARS[‚jmeno‘] . “ <" . $$HTTP_POST_VARS['email'] . "> \r\n Content-Type: text/plain“)) $ok=true;
}
if($HTTP_POST_VARS[‚jako‘]==“icq“) {
if(mail(„vaseicq@pager.icq.com“, „Z WWW : “ . $HTTP_POST_VARS[‚predmet‘], $HTTP_POST_VARS[‚text‘], „From:“ . $HTTP_POST_VARS[‚jmeno‘] . “ <" . $$HTTP_POST_VARS['email'] . "> \r\n Content-Type: text/plain“)) $ok=true;
}
if($ok) echo(„Vaše zpráva byla úspěšně odeslána.“); else echo(„Vyskytly se potíže při odesílání vaší zprávy.“);
}
?>
V první řadě je potřeba rozpoznat, jak se vlastně bude zpráva odesílat (jestli jako SMS, nebo Email, nebo jako ICQ). Poté následuje samotné odeslání mailu. Funkce mail()
je vložena namísto podmínky, v případě úspěšného odeslání (pozor, nikoli doručení) bude podmínka splněna a provede se příkaz $ok=true;
. Ten je potom použit v závěrenčé části skriptu, která, pokud je $ok
true, vypíše „Vaše zpráva byla úspěšně odeslána.“, v opačném případě se na obrazovce objeví „Vyskytly se potíže při odesílání vaší zprávy.“.
Ti pozornější si asi všimli možnosti, kdy proměnná $jako
bude mít jinou hodnotu, než email, sms či icq. Pak se skript o odeslání ani nepokusí a rovnou vypíše chybovou hlášku (proměnná $ok
totiž bude mít hodnotu false). Není to ale špatně. Je pravděpodobné, že nějaké proměnné (jako třeba text zprávy) byly vyplněné, takže uživatel nejspíš předpokládá, že se skript pokusí zprávu odeslat. S ohledem na tento fakt je vypsání chybové hlášky zcela korektní.
Teď už ale k použití funkce mail()
. Nejprve si ji trochu připomeneme:
mail(adresa_příjemce, předmět, text_zprávy, hlavičky_(nepovinné));
Adresa příjemce je celkem jasná. V našem případě to bude buď emailová adresa, nebo adresa mobilního emailu, popř. adresa ICQ. Ta je ve tvaru xxxxxxxxx@pager.icq.com, s tím, že xxxxxxxxx je číslo vašeho ICQ.
Předmět vyplňuje uživatel, my mu jen přidáme na začátek Z WWW : , abychom věděli, že zpráva byla poslána z našeho komunikačního centra.
Text zprávy ponecháme, problémy s možnými značkami HTML odpadnou nastavením typu emailu na text/plain (v dalším odstavci).
Hlavičky jsou nepovinným atributem funkce mail()
. My je zde použijeme pro vložení jména a emailu uživatele (pro snadnější odpovídání) a pro nastavení typu emailu:
From : Jméno příjmení <jmenoprijmeni@email.cz>
Content-type: text/plain
Teď už jen stačí vložit formulář s php skriptem do své stránky.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Jak lze snadno upravovat soubory v PDF?
14. září 2023 -
Od iPhonu po Android: Ultra HDR přináší nový standard fotografií
1. listopadu 2024 -
Regulace digitálních služeb: Co přináší nové nařízení DSA?
20. února 2024 -
ZONER Webmail jako první v Česku přináší BIMI s VMC
11. července 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024
Angličtina
Čvc 26, 2011 v 22:31Užitečný článek a moc pěkný design webu.