A mail() függvény használata
2007.03.30. 17:48
A weboldalaakon szokott olyan hivatkozás lenni, hogy kapcsolat, impresszum, e-mail küldése nekem stb... A lényeg az hogy e-mail küldés, és ez egyes esetekben egy mailto: html hivatkozás. De ez egy normál user esetében nem mindig kényelmes. Így vannak helyek ahol egy email küldő form jön be, mellyel kényelmesebben tud az illető az adminnak emailt küldeni.
Kezdjünk is hozzá.
A mail függvénynek 4 paramétere van: mail( cimzett, az üzenet tárgya, az üzenet, fejléc )
A legtöbb dolgot a fejlécben lehet beállítani, például a küldő email címét, meg hogy a html kódok engedélyezve legyenek-e.
A html kódot a köveztkezővel lehet engedélyezni:
| PHP mail fejléc |
1
|
Content-type: text/html; charset=iso-8859-2
|
És most állítsunk össze egy komplett kódot, mely az űrlapot feldolgozza (űrlapot remélem mindenki tud írni).
| Egyszerű e-mail küldés |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$fejlec = "From:".$_POST['feladoemail'];
//Az üzenet feladó email címe
$fejlec .= "\nContent-type: text/html; charset=iso-8859-2\n";
//A html kódolás engedélyezése
$uzenet= "Írta: ".$_POST[nev]." \n";
$uzenet .= "\n";
$uzenet .= $_POST['uzenet'];
//összeállítottuk az üzenetet
$cimzett= "ateemail@cimed.hu";
//A címzett email címe
$targy = $_POST['targy'];
//A levél tárgya
$felado = $_POST['felado'];
//A feladó tárgya
|
Az űrlap feldolgozó PHP kódja ennyi lenne. Ha kérdés lenne nyugodtan kérdezzetek!
Webprogramozás Tutorialok A mail() függvény használata |

Gabor
Szerkesztő
|
Két hibáról van itt szó.
Az egyik egy elírás a tutorialban. Ugyanis az egyik tömb indexnél a nev -nél hiányzik két idézőjel tehát
1
2
3
4
| //eredeti:
$uzenet= "Írta: ".$_POST[nev]." \n";
//helyes:
$uzenet= "Írta: ".$_POST['nev']." \n"; |
Ez apróság
A másik, hogy ahogyan racger is írja, ezt a script egy űrlapot dolgoz fel. A hibaüzenet nagy része azt mondja, hogy nem léteznek az egyes indexek, vagyis nem lett elküldve az űrlap. Tehát először készísd el az űrlapot!!! Ha pedig azt akarod megvizsgálni, hogy az űrlap már el lett-e küldve, akkor használd az isset függvényt. Pl.:
1
2
3
4
5
6
| if(isset($_POST['nev'])) {
//dolgozzuk fel az űrlapot
} else {
//az űrlap még nem lett elküldve
//az űrlap megjelenítése...
} |
Utoljára szerkesztette: Gabor 2012.05.30. 21:32
|

crashday38
Kezdő
|
Üdv
Nos én ezeket megcsináltam egy PHP Desinger 7 nevezetü progamba és ezeket irta
[lang:default]Sziasztok! A kedvenc oldalam a ESGHosting.com Notice: Undefined index: feladoemail in C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php on line 11 Call Stack: 0.0009 323528 1. {main}() C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php:0 Notice: Use of undefined constant nev - assumed 'nev' in C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php on line 15 Call Stack: 0.0009 323528 1. {main}() C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php:0 Notice: Undefined index: nev in C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php on line 15 Call Stack: 0.0009 323528 1. {main}() C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php:0 Notice: Undefined index: uzenet in C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php on line 17 Call Stack: 0.0009 323528 1. {main}() C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php:0 Notice: Undefined index: targy in C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php on line 21 Call Stack: 0.0009 323528 1. {main}() C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php:0 Notice: Undefined index: felado in C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php on line 23 Call Stack: 0.0009 323528 1. {main}() C:\Documents and Settings\Rendszergazda\Dokumentumok\Untitled 1.php:0
Tucc segíteni? Nagyon megköszönném! 
Utoljára szerkesztette: crashday38 2012.05.30. 18:32
PHP tanúló
|
|