Email küldés formból egyszerűen
Ma mar szinte minden weboldalon talalhato uzenetkuldo form. Ennek a feldolgozasara mutatok meg egy modszert. A form validalasara most nem terek ki, talan arrol is irok majd egy postot. Nezzunk is egy pelda form-ot.
<form id="contact" method="post"> <label>Nev</label><input name="nev" type="text" /> <label>Emailcim</label><input name="emailcim" type="text" /> <label>Mezo </label><input name="mezo" type="text" /> <label>Mezo 2</label><input name="mezo_2" type="text" /> <input name="send" type="submit" /> </form>
A kezdo fejleszto ilyenkor nekilat es szepen osszerakja az emailt a $_POST -on jovo adatokbol igy:
$email = "Nev:" .$_POST['nev']."\n" ."Email:" .$_POST['email']."\n";
es igy tovabb az osszes mezovel. En szemely szerint nem szeretek gepelni raadasul ez nem igazan ujrahasznosithato kodot fog eredmenyezni.
A problema tehat a lustasag
. Nezzuk a megoldast:
A $_POST ugyebar egy tomb, van indexe ami az input mezo name elemenek tartalma es van erteke ami a mezobe beirt ertek. Tehat ez a tombot egy ciklussal vegig tudjuk jarni es igy osszerakjuk a level tartalmat egy par soros koddal:
foreach($_POST as $index => $value)$email.= str_replace("_"," ",ucwords($index)).':'.$value ."\n";
Ez igy mind szep es jo, de a post tomb tartalmazza a submit gombot is ami csinyan mutat a level aljan es elofordul hogy a form nem minden mezojet akarjuk elkuldeni. Tehat ujabb megoldando problemaba utkoztunk. Erre en az alkalamazom ugy bepakolom egy tombbe a nem kivanatos mezok nevet:
$excl_array = array("send","akarmi");
Ezutan a ciklushoz hozzaadok egy kis kiegeszitest:
$excl_array = array("send","akarmi"); foreach($_POST as $index => $value){ if(!in_array($index,$excl_array)) $email.= str_replace("_"," ",ucwords($index)).':'.$value ."\n"; }
Ezzel meg is van a post to email feldolgozas.
Cimkék: email kuldes, form, Php
