Links ::  | DEV web management system | Katalóg | Webhosting | Recepty
  
 Index | Registrácia | Hľadať | Galéria | BoardNeprihlásený užívateľ  //Sobota, 25. Novembra 2017 
Navigation
Index
Top 10 autorov
Top 20 článkov
Hľadať
Galéria

Zones
Asp.(NET)
C/C++
Flash
Grafika+Design
Hardware
Hry
Html/Css/Xml
Java
Linux
Networks
Operačný systém
Pascal/Delphi
PHP
Security
Software
SQL
Visual Basic
Wap/Wml
Windows
Zóna iné

Links
Script index Interval.cz Pc.sk Regedit.sk TipyaTriky.sk Builder.cz Asp.cz Živě.sk Zoznam.sk Code.box.sk Root.cz Quant&Financial

Odkazy

Sessions
Stránky Developer.sk si práve číta 372 čitateľov, z toho je 0 zaregistrovaných

BackEnd
Odkazy na nové články je možné preberať pomocou backend.php

kuk

    Odoslanie mailu z formulára - 11. časť CGI

Dnes si ukážeme, ako pomocou CGI vytvoriť skript, ktorý odošle dáta z formulára na stránke na váš e-mail. Využijeme k tomu program sendmail a perlovský modul CGI.pm.


Čo teda budeme potrebovať? V prvom rade to bude stránka s formulárom, do ktorého užívateľ zadá svoje meno, e-mailovú adresu, predmet správy a jej znenie. Ďalej to bude samotný skript, ktorý správu spracuje a odovzdá programu sendmail. Ako posledná súčasť to bude stránka, ktorá sa zobrazí po odoslaní mailu ako poďakovanie.

Nebudem sa tu zaoberať vytvorením formuláru pre správu ani stránky s poďakovaním. Toto by ste mali predpokladám všetci zvládnuť. Upozorním tu na to, že skript je písaný "univarzálne", to jest môžete ho zavolať pomocou metódy GET i POST. Pomerne veľkým pomocníkom je tu modul CGI. Tu je zdrojový kód skriptu:


use CGI;
$mail = "developer@developer.sk";
$sendmail = "/usr/bin/sendmail -t -n -oi";
$qry = new CGI();
$from = $qry->param('meno');
$email = $qry->param('email');
$subject = $qry->param('subject');
$message = $qry->param('msg');
open(SENDMAIL, "| $sendmail");
print SENDMAIL <
To: $mail
Reply-To: $email
Subject: $subject
X-Remote-Host: $ENV{REMOTE_ADDR}
HlavickyMailu
print SENDMAIL "\n", $message;
close SENDAMIL;
print $qry->redirect('http://www.developer.sk/thanks.html');

Funkcia skriptu je jednoduchá. Na začiatku si do premennej $mail uložíme adresu, na ktorú bude správa odoslaná. Do premennej $sendmail uložíme plnú cestu k programu sendmail aj s potrebnými flagmi. Flag -t zaistí, že sendamil sa bude snažiť nájsť hlavičku To:, v ktorej bude zadaná adresa na ktorú sa má správa poslať. Flag -n potom zaistí, aby sa nepoužívali aliasy adries (pokým by ste skript rozšírili tak, aby užívateľ mohol zadať sám adresu, mohol by bez voľby -n používať vami definované aliasy a to asi nechcete).

Ďalším krokom je vytvorenie nového CGI objektu $qry. Volanie $qry->param('nazov_parametru') vráti hodnotu daného parametru. (Bližšie info o module CGI viď. perldoc CGI). V našom skripte teda do premenných $from, $email, $subject a $message vložíme hodnoty polí meno, email, subject a msg z formulára vyplnené užívateľom. Odporúčam spraviť kontrolu zadania polí vo formulári pomocou JavaScriptu už na samotnej stránke, ušetríte tak nejaké tie prostriedky pri behu skriptu. Minimálne polia meno (premenná $from) a email (premenná $email) by mali byť zadané.

Ďalším krokom po naplnení premenných je otvorenie rúry k programu sendmail pomocou príkazu open. Do nej potom zapisujeme hlavičku mailu obsahujúcu polia From, To, Reply-To, Subject a X-Remote-Host. Význam prvých štyroch je jasný. Piata položka hlavičky, X-Remote-Host, je definovaná užívateľom a program sendmail ju nevyžaduje. Obsahuje IP adresu užívateľovho stroja (resp. proxy za ktorým užívateľ sedí) a je pridaná z dôvodu, že vám môže prísť mail s vymysleným menom a e-mail adresou. Takto potom aspoň viete, z akej IP bol tento mail odoslaný ;-)

Po hlavičke mailu nasleduje prázdny riadok, ktorý oddeľuje hlavičku od samotnej správy. Po zapísaní správy sa uzavrie rúra k sendmailu a tým sa správa odošle. Až keď je skutočne odoslaná je zavolaná metóda redirect objektu $qry, ktorá presmeruje užívateľov browser na stránku s poďakovaním za odoslanie správy.


Autor : Developer, čítané 4484x, komentárov: 0
Hodnotenie :    |  Piatok, 21. Marca 2003

Pridať nový komentár/Komentáre
Vaše hodnotenie :   horšie  lepšie
Login
Login:
Heslo:

Hľadať
 
v článkoch
v diskusiach
v komentároch

Top read
PHP Coder

Priklady v C. 1.čast.

DEV web management system

Php a bezpečnosť skriptov

Autorun CD

Top discuss
Jednoduchý web formulár (ASP.NET)

Delphi seriál: (1.časť)

Velmi rychla grafika v Pascale

DEV web management system

Naša ikona
Páčia sa Vám naše stránky ? Ak áno, podporte nás prosím a umiestnite si na svoju stránku našu ikonku:





Copyright (c) Developer.sk, All rights reserved.
Powered by DEV web management system