|
|
|
|
|
Pošiljanje pošte v PHP
Naučili se bomo, kako lahko ustvarimo enostaven obrazec za pošiljanje elektronske pošte, ki ga lahko postavite na spletno stran.
|
|
 |
|
|
|
|
|
 |
|
 |
|
 |
 |
1.
|
|
|
V programu Dreamweaver odpremo nov dokument.
Najprej izberemo zavihek Forms, preko katerega bomo na obrazec dodali polja za vpis.
|
|
| |
2.
|
|
|
Najprej dodamo tri polja tipa Text Field.
|
|
| |
3.
|
|
|
Ker želimo, da bo vnosno polje za sporočilo nekoliko večje, na obrazec dodamo še polje tipa Textarea.
Na koncu dodamo še gumb, s pomočjo katerega bomo poslali sporočilo.
|
|
| |
4.
|
|
|
Vsa polja, ki smo jih dodali na obrazec, moramo sedaj določiti imena.
Po vrsti jih poimenujemo: posiljatelj, prejemnik, zadeva, sporocilo
|
|
| |
5.
|
|
|
Celotna koda koda obrazca se nahaja spodaj:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>E-mail SMTP</title> </head>
<body> <p><strong>Obrazec za pošiljanje elektronske pošte </strong></p> <form method="post" action=""> <p>Pošiljatelj: <input name="posiljatelj" type="text" id="posiljatelj"> </p> <p>Prejemnik: <input name="prejemnik" type="text" id="prejemnik"> </p> <p>Zadeva: <input name="zadeva" type="text" id="tema"> </p> <p>Sporočilo:<br> <textarea name="sporocilo" cols="32" rows="7" id="sporocilo"></textarea> </p> <p> <input type="submit" name="Submit" value="Pošlji"> </p> </form> <p> </p> </body> </html>
|
|
| |
6.
|
|
|
Sedaj moramo napisati še funkcijo, ki bo ob oddaji obrazca poslala elektronsko pošto.
V ta namen na začetku, pred <html> značko, vrinemo naslednjo kodo:
<?php if (isset($_POST['prejemnik'])) { if ( !empty($_POST['posiljatelj']) && !empty($_POST['prejemnik']) && !empty($_POST['zadeva']) && !empty($_POST['sporocilo']) ) { $headers = "MIME-Version: 1.0
"; $headers .= "Content-Type: text/html; charset=utf-8
"; $headers .= "From: ".$_POST['posiljatelj']."
"; if (mail($_POST['prejemnik'], $_POST['zadeva'], $_POST['sporocilo'], $headers)) { echo "<b>E-pošta je bila uspešno poslana!</b><br /><br />"; } else { echo "<b>E-pošta ni bila poslana. Izpolniti je potrebno vse podatke.</b><br />"; } } } ?>
Kot vidimo, najprej preverimo, ali obstaja spremenljivka $_POST['prejemnik']. S tem preverimo, ali gre za oddajo obrazca ali pa je stran prikazana prvič in moramo samo prikazati prazna polja za vnos.
V naslednjem koraku preverimo, ali so bile vnesena vsa izpolnjena polja.
V spremenljivki $headers nato definiramo, da pošiljamo v formatu UTF-8 ter kdo se bo v e-sporočilo prikazal kot pošiljatelj.
Na koncu s pomočjo funkcije mail pošljem sporočilo ter v primeru, da je bilo uspešno poslano, izpišemo obvestilo.
|
|
| |
7.
|
|
|
Obrazec moramo sedaj naložiti na spletni strežnik ter ga odpreti v našem brskalniku.
Sedaj izpolnite polja in pošljite obrazec.
Po oddaji obrazca bi se moralo izpisati sporočilo, da je bila elektronska pošta uspešno poslana.
|
|
|
 |
 |
|
|
|
|
| |
|
|
 |
|
 |
Točno to sem iskal za mojo stran, ampak kode na žalost nisem našel, na zadnje pa se pojavi na zmagi |
 |
|
|
|
|
|
 |
|
 |
Meni pa ne dela. Sem naložil na strežnik, pa se mi potem, ko kliknem pošlji, samo polja spraznejo pa nič ne napiše
|
 |
|
|
|
|
|
 |
|
 |
Sem še enkrat preveril kodo in bi moralo delovati, če si naredi po lekciji.
Si iz lekcije samo skopiral kodo ali si tudi kaj spreminjal?
Preveri, da imaš pravilno določena imena polj posiljatelj, prejemnik, zadeva, sporocilo in da pri oddaji ta polja niso prazna. |
 |
|
|
|
|
|
 |
|
 |
Pravzaprav sem samo skopiral kodo obrazca ker jaz nimam tiste vrstice z zavihki.
|
 |
|
|
|
|
|
 |
|
 |
| Na kateri strežnik si pa naložil? Ali podpira PHP? Mogoče ima ta strežnik blokirano pošiljanje mail-ov. |
 |
|
|
|
|
|
 |
|
 |
Kako bi pa naredil, da bi bila pošiljatelj in zadeva že izpolnjena?
Lp,
SloChampion |
 |
|
|
|
|
|
 |
|
 |
sasko.123:
Naložil sem ga na strežnik 000space.com in zagotovo podpira php saj sem poskusil naložiti stran na kateri se lahko objavljajo komentarji (http://zmaga.com/ucenje.php?t=0&....) in je delovalo.
Sem še enkrat pregledal kodo in v njej res našel eno napako, kar je bil razlog, da v prvo ni nič izpisalo. Sem sedaj v lekciji popravil kodo.
Sem pa preveril tudi na 000space.com in PHP res podpira. Vendar pa mora ponudnik podpirati tudi funkcijo mail() za pošiljanje pošte, kar pa zgleda, da ne tem gostovanju ni podprto.
Nepodpora tej funkciji je drugače na brezplačnih strežnikih dokaj pogosta, saj se to velikokrat zlorablja za pošiljanje neželene elektronske pošte. |
 |
|
|
|
|
|
 |
|
 |
Podtalje: aha...pa še nekaj...kako bi pa naredil da bi bila zadeva in prejemnik že vpisana? |
 |
|
|
|