Poslao: 22 Okt 2008 19:06
|
offline
- Tamtitam
- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
AS2.0
Ovo pitanje je toliko puta bilo postavljano a ja sam sve vreme otezala sa ovim tutorijalom jer, moram da priznam, ne koristim ovaj nacin kombinovanja Flasha i PHPa (o amfPHP-u neki drugi put...). Fala lnenadu sto me je podsetio da i server postoji
No, za sve one koji bi na jednostavan nacin da ugrade u svoj flash i formular koji posetilac na sajtu popuni a vi dobijete taj feedback putem e-maila, evo kako to uraditi u nekoliko jednostavnih poteza.
Dakle, sta pravimo?
Formular u Flashu koji posetilac sajta moze da popuni, zatim klikom na "Posalji" tu poruku saljemo na server, odnosno PHPu, PHP salje nama e-mail sa tekstom poruke i zatim vraca odgovor Flashu i posetiocu da je poruka poslata kako treba (ili da nije).
Otvorite Flash
-Na scenu 'izvucite' komponentu TextArea i u properties joj dajte ime poruka. Ovo ime ce se ponavljati i kasnije pa nemojte biti jako mastoviti i menjati ga
Ispod tekstualnog polja izvucite komponentu Button i nazovite je u properties posalji. U parameters pod "label" upisite "Posalji".
-Frame broj 2 neka sadrzi samo poruku (tekst polje) "Poruka poslata". Ovaj frame u properties nazovite uspeh. Frame broj 3 neka sadrzi poruku "Poruka nije poslata". Ovaj frame nazovite u properties neuspeh. U oba frejma, naravno, upisite stop();
Ok, to je sve sto nam treba za pocetak od interfejsa (kasnije eksperimentisite sami ako hocete jos polja- ime, e-mail, adresa, telefon...)
Sad kod:
Napravite novi layer na timeline. Taj ce nam ugostiti kod.
Za pocetak nam trebaju dva objekta koji ce da 'nose' podatke ka serveru. Oba ce biti LoadVars tipa.
stop();
var saljem:LoadVars= new LoadVars();
var primam:LoadVars= new LoadVars();
Sada vezujemo kod za dugme "Posalji". I ovo pisemo odmah ispod prethodnog koda, dakle u prvi frame na glavnoj vremenskoj liniji.
posalji.onRelease = function(){
saljem.poruka = poruka.text; //dodeljujemo objektu ono sto saljemo ka serveru
saljem.sendAndLoad("http://neki-moj-sajt/forma.php", primam);
}
PHP po imenom forma.php jos ne postoji, ali i to pravimo uskoro.
primam je objekat koji ce da nosi povratnu informaciju sa sajta o uspehu slanja poruke.
Sta ce se desiti u Flashu kad stigne povratna poruka sa servera?
U nastavku sledi kod:
primam.onLoad = function(){
if(this.poslatoOK){
_root.gotoAndStop("uspeh");
}else{
_root.gotoAndStop("neuspeh");
}
}
Kompajliramo flash i uploadujemo na server na http://neki-moj-sajt/.
poslatoOK je promenljiva koja dolazi iz PHPa. Vrlo je zgodno da Flash prepoznaje promenljivu iz PHPa samo po imenu.
PHP:
Ceo PHP izgleda ovako:
<?php
$to = "k**@gmail.com";
$subject = "Komentar";
$message= "Poruka: " .$poruka; //ovo je ta nasa "poruka" iz txt polja u Flashu
$from="Sa sajta";
$poslatoOK = mail($to,$subject,$message,$from); //poslatoOK ce biti true ili false
echo "poslatoOK=" . $poslatoOK; //ovo Flash 'vidi'
?>
Snimiti kao "forma.php".
Naravno da je dozvoljeno da ubacite vise polja, da poruka ne ode na e-mail nego u recimo bazu podataka, knjigu gostiju... sta bilo. Sta god PHP moze da radi sa nekom promenljivom, to mozete i vi sa $poruka. Ali vi sigurno bolje znate PHP od mene pa kombinujte do mile volje ovde biramo najjednostavniju varijantu.
Upload oba fajla, .swf i .php na server, pod isti direktorijum i javite da li radi!
Prijatno
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
|
Poslao: 22 Okt 2008 23:29
|
offline
- Tamtitam
- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
E, ako zvocas, onda ima i da mi pomognes
Preuzmi, pliz, pa doteraj taj PHP, tu bas i nisam riba u vodi
*trep trep*
Slanje mail() funkcijom je opcija. U stvari, sta PHP radi sa tom promenljivom je vise prica za onaj drugi deo foruma. Moje je samo da posaljem posiljku na server i primim odgovor
Btw, kod mene na serveru lepo radi (a i gmail mi prima mail)
Dopuna: 22 Okt 2008 23:29
PS
Zaboravih ... za sendAndLoad nacin, koji se ovde koristi, je default POST metod.
Znaci, ovako nesto bi trebalo da radi:
<?php
$to = "k**@gmail.com";
$subject = "Komentar";
$message= $_POST['poruka']; //***izmena****
$from="Sa sajta";
$poslatoOK = mail($to,$subject,$message,$from); //poslatoOK ce biti true ili false
echo "poslatoOK=" . $poslatoOK; //ovo Flash 'vidi'
?>
PPS
Thanks, Rasta
|
|
|
|
Poslao: 23 Okt 2008 12:40
|
offline
- darchy
- Građanin
- Pridružio: 11 Maj 2007
- Poruke: 86
|
Moze da radi i sa formom koju je navela Tamtitam, ali treba da se ubaci jedno parce koda.
Tamtitam najverovatnije testira na PHP verziji 4 pa joj sve radi super, a Rastafarii ima verziju 5 pa su mu prosledjene varijable prazne!?
Ovaj kod treba ubaciti odma' posle <?php
foreach($HTTP_GET_VARS as $name => $value){
$$name = $value;
}
foreach($HTTP_POST_VARS as $name => $value){
$$name = $value;
}
foreach($HTTP_COOKIE_VARS as $name => $value){
$$name = $value;
}
a zatim treba dodati kod koji je Tamtitam napisala, sto znaci cela PHP skripta bi trebala da izgleda ovako:
<?php
foreach($HTTP_GET_VARS as $name => $value){
$$name = $value;
}
foreach($HTTP_POST_VARS as $name => $value){
$$name = $value;
}
foreach($HTTP_COOKIE_VARS as $name => $value){
$$name = $value;
}
$to = "k**@gmail.com";
$subject = "Komentar";
$message= "Poruka: " .$poruka; //ovo je ta nasa "poruka" iz txt polja u Flashu
$from="Sa sajta";
$poslatoOK = mail($to,$subject,$message,$from); //poslatoOK ce biti true ili false
echo "poslatoOK=" . $poslatoOK; //ovo Flash 'vidi'
?>
i trebalo bi da funkcionise na PHP serveru verzije 4 i 5.
|
|
|
|
|
|
Poslao: 24 Okt 2008 00:27
|
offline
- darchy
- Građanin
- Pridružio: 11 Maj 2007
- Poruke: 86
|
A hajde probaj da u tekst polje namenjeno za poruku uneses neki niz karaktera zatim stavi dve tacke ( pa neki niz karaktera pa procenat (%) pa neki niz karaktera !?
Desava se nesto cudno !?
Kada stavis dve tacke, a to nije tako redak simbol, Flash ne prosledjuje nista do PHP-a, jednostavno se "zakuca"!
A kada stavis procenat (opet nije redak simbol), sve sto je napisano iza tog znaka pobrljavi, ne dobija se ispravan tekst.
|
|
|
|
Poslao: 26 Okt 2008 15:05
|
offline
- Tamtitam
- Legendarni građanin
- Pridružio: 19 Maj 2005
- Poruke: 5224
- Gde živiš: Oslo
|
Eh, ovde radi kako treba.
Mozes dodati neku proveru da vidis na licu mesta, u samom brauzeru, da li Flash salje sve karaktere.
Evo rezultat jednog od testova:
Test ::
Sa sajta
Poruka: \"#¤¤%&%&/N &/%&/ %%% sdf w#¤3423 : 324234
E, sad, ako je nesto do PHPa i parsinga, ti ces to bolje znati od mene
Jel imas neku ideju, u cemu je problem? Rasta?
Dopuna: 26 Okt 2008 15:05
Samo jos jedna napomena.
Ovo je "lite" verzija komunikacije Flasha sa web-serverom. Takoreci, "nemasna".
Koristite je u licnim prezentacijama, manjim knjigama gostiju i uglavnom na stranama koje nisu toliko opterecene.
Ukoliko vam, pak, treba brz protok podataka izmedju Flasha i web-servera, koristite ranije spomenuti AMFPHP koji barata binarnim AMFom (Action Message Format).
Za vise informacija pogledajte http://amfphp.org/
Ako bude vremana i zdravlja, pozabavicemo se jednom i time.
|
|
|
|