. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .




 
 
SEGÉDLETEK Flash+PHP+MySQL

E-mail küldés Flashből beépített @ karakterrel
  feltöltve: 2005.04.25 | szerző: kispatak | olvasva: 9364 alkalommal

 
 

Sokaknak még mindig gondot jelent a @ karakter az email mezőkben. Egy korábbi segédletre fogunk építkezni és kukac probléma mentes, továbbá a Freeweben is működő email küldőt fogunk készíteni. A korábbi segédletet itt találjátok: E-mail küldése Flash-ből PHP segítségével , itt csak a a változtatásokkal foglalkozunk.




1. Beépített kukac

Mint látható, az eredeti verzióhoz képest -a megváltoztatott színeken túl- az egyetlen lényeges különbség, hogy az Email cím három részre van osztva, két beviteli mezőre, köztük a kukaccal. Az első mezőnek (ahogy a képen is látható) a Name, a másodiknak -a kukac után- az Address nevet adtam. A kukac pedig egy egyszeru statikus szövegmező, mert ezt kódból rendeljük majd a helyére. Ez után már csak az eredeti kódoláson kell változtatni, amely így néz ki a papp féle tutorban:

on (release) {
    if (!Email.length || Email.indexOf("@") == -1 || Email.indexOf(".") == -1) {
    Visszajelzes = "Kérem, adjon meg egy valódi email címet!";
    } else if (!Nev.length) {
    Visszajelzes = "Kérem, adja meg a nevét!";
    } else if (!Targy.length) {
    Visszajelzes = "Az üzenetnek nincs tárgya!";
    } else if (!Szoveg.length) {
    Visszajelzes = "A levél nem tartalmaz szöveget!";
    } else {
    loadVariablesNum ("mail.php", "0", "POST");
    Visszajelzes = "Levél küldése folyamatban...";
    }
}

És erre cseréljük:

on (release) {
    Email = Name + String.fromCharCode(64) + Address;
    if (!Name.length) {
    Visszajelzes = "Kérem, adja meg helyesen e-mail címet!";
    } else if (!Address.length || Address.indexOf(".") == -1) {
    Visszajelzes = "Kérem, adja meg helyesen e-mail címet!";
    } else if (!Nev.length) {
    Visszajelzes = "Kérem, adja meg a nevét!";
    } else if (!Targy.length) {
    Visszajelzes = "Az üzenetnek nincs tárgya!";
    } else if (!Szoveg.length) {
    Visszajelzes = "A levél nem tartalmaz szöveget!";
    } else {
    loadVariablesNum ("mail.php", "0", "POST");
    Visszajelzes = "Levél küldése folyamatban...";
    }
}

Rögtön látható is a trükk, mely szerint az Email három részből tevődik össze, a Name input mező tartalmából majd a kukac ASCII kódjából és végül az Address input mező tartalmából. A String.fromCharCode(64) ugyanis semmi mást nem csinál, mint hozzáad egy kukacot a megfelelő helyen. Természetesen itt is megvizsgáltatjuk a scripttel, hogy ki lettek-e töltve a Name és Address mezők.

2. PHP freewebre

A freewebre sajnos nem pakolhatunk fel bármilyen PHP scriptecskét. Ha rendelkezünk tárhellyel, aktiválhatunk egy azonosítót, amit meg kell adni a PHP mail() függvényének 4. paraméterében. Azt sajnos nem közölték, hogy milyen egyéb feltételekkel. Így aztán vissza kellet rohanni a laborba :)
Az eredeti PHP így nézett ki:


<?
$ToEmail = "XY@DOMAIN.hu";
$ToName = "XY";
mail($ToName." <".$ToEmail.">",$Targy, $Szoveg, "From: ".$Nev." <".$Email.">");
Print "_root.mail.Visszajelzes=A levél küldése befejeződött.";
?>

Ami a következőre módosult:

<?
$ToEmail = "XY@DOMAIN.hu";
$ToName = "XY";
$Message = "$Nev, $Email, $Szoveg";
mail($ToName."<".$ToEmail.">", "$Targy", "$Message", "X-FW-MailID:AZONOSÍTÓ");
Print "_root.mail.Visszajelzes=A levél küldése befejezodött.";
?>

Látható, hogy az eredeti "From: ".$Nev." <".$Email.">" helyére kerül a freewebes azonosító. Ezután hiába is írkálunk bármit, legfeljebb hibajelzést kaphatunk. Másképp kell megoldani, hogy tudjuk, kitől is jött a mail. A módszer talán egy kicsit fapados, de lagalább muködik a freeweb minden ármánykodása ellenére. (Jegyezzük meg, azért érthető a para, senki sem szeretné, hogy a szerverét spamalésre használják) Tehát a megoldás, hogy a $Message -be összegyujtjük a feladó név, mailcím és a szövegmező tartalmát és egyben küldjük el. Így a kapott email szöveg részében az üzenetet -vesszőkkel elválasztva- meg fogja előzni a feladó neve és mailcíme íly módon:

XY,XY@DOMAIN.hu,Az elküldött mail szövege, szövege, szövege.

Aki nagyon májer PHP-ből biztos tud jobb megoldást is, mindenesetre írja meg!

 
 
 
 

© Devnet.hu. A segédletek semmilyen formában nem másolhatók, publikálhatók a Devnet.hu és a szerzők közös írásos engedélye nélkül.
 
. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .