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: , ,

 
 
 

Szólj hozzá!

Comment Spam Protection by WP-SpamFree