Kontaktna forma u AS3 / ASP-u

Pozdrav svima,

radim “flash site” i naisao sam na problem. server koji je lik odabrao ne podrzava php.

trebao bih mu napraviti kontakt formu u flashu koristeci actionscript 3 i asp.

i u jednom i u drugom sam pocetnik. ako mi netko moze pomoci bio bih zahvalan.

odgovor od gorrc-a :

predefinirano Odg.: Flash AS3/ASP kontakt forma

http://www.webmajstori.net/forum/sho...sp+flash+forma

gorrc-u:

hvala na postu ali nemoj zatvarati temu prije nego procitas kak se spada. sad sam morao ponovno otvoriti temu.

ovo sto si postao je AS2. AS3 je maloo drugaciji i kompliciraniji.

Moj savjet je da koristiš JSON i pošalješ to preko HTTP-a na server (POST).

Dakle, enkodiraš object u JSON kod korisnika, i pošalješ to na adresu na serveru (npr. mysite.com/contact) koji prima POST varijable. Tamo dekodiraš i spremiš u bazu.

Inače, možeš istu stvar napraviti i tako da pošalješ same podatke kroz HTTP, bez enkodiranja. Za samo slanje na server, pogledaj URLRequest i URLLoader klase u AS 3.0.

Nije to bio samo odgovor to je bilo više od odgovora. To je bio deja vu.
Recimo ovako, ASP skirpta ti je ista.
A actionscript nije, ali metoda jest.
Trebaš samo poslati post zahtjev na server.
E pa sad jel baš toliko različito, jest.

E pa ovako saznaj kako poslati post zahtjev u AS3, pa pošalji te podatke na server da obradi te podatke.

Moj savjet ti je, a to je bio i gorrcov savjet da Googleaš:

http://www.google.com/search?q=contact+form+in+actionscript+3+asp

Pa se javiš kada imaš konkretan problem…?

[quote=“tsereg”]Moj savjet ti je, a to je bio i gorrcov savjet da Googleaš:

http://www.google.com/search?q=contact+form+in+actionscript+3+asp

Pa se javiš kada imaš konkretan problem…?[/quote]

jesam, proguglo sam. i nema adekvatnog odgovora. pogledaj rezultate koje dobijes od svog searcha.

i da, jako se razlikuje od AS2. nasao sam gotovu formu za php AS3 contact formu i probao sam izmjeniti ju u Asp (koju sam isto nasao). ne funkcionira zato sto je drugaciji nacin komunikacije izmedju AS3 i ASP-a i AS3 i PHP.

da je nesto jednostavno nebi žicao pomoc od vas vec bi sam rijesio.

Ako se baš moraš spajati na .NET, imaju nešto poput ovog.

http://www.adobe.com/devnet/flashremoting/articles/intro_flremoting_net.html

Međutim, što imaš na serveru nema nikakve veze. Naprosto trebaš u Flashu poslati HTTP POST zahtjev na server, koji ćeš tamo obraditi na isti način na koji bi obradio podnošenje bilo kakvog obrasca (forum submit).

Efektivno, najbolje ti je napraviti jednostavan send-mail obrazac u ASP-u koji radi. Pri tome si u preglednik instaliraš neki plugin za gledanje zaglavlja (npr. Live HTTP Headers za FF) kako bi vidio što se dešava kod podnošenja HTML obrasca, tj. što pregledni šalje serveru.

Onda ono što se genrira kod podnošenja tog obrasca programski izgeneriraš pomoću Flasha. Pri tome vezu prema serveru otvoriš kroz Flashov socket. Srećom, sadržaj HTTP POST zahtjeva je puki tekst, relativno jednostavnog formata, pa to samo generiraš i šibneš niz socket. Ovdje vidim da postoje socketi u Flashu, ako sam naišao na dobru dokumentaciju:

http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cfb.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7cef


Još jednostavniji način ti je da si pogledaš malo sam SMTP protokol za slanje mailova. SMTP je vrlo jednostavan protokol koji je bio namijenjen i direktnom ručnom utipkavanju. Primjerice, možeš otvoriti telnetom vezu na svoj SMTP server i doslovno “ukucati” i poslati mail direktno na server. To, zapravo, za tebe rade mail klijenti, sendmail skripte i to.

Najdirektnije ti je da u Flashu otvoriš socket na SMTP server i pošalješ mail direktno iz Flasha. Tada ti baš ništa ne treba na serveru. Samo ti treba bilo kakav mail server na koji imaš pristup.

Da vidiš kako je trivijalno poslati mail direktno komunicirajući sa mail-serverom, poprati ovo:

http://www.cs.cf.ac.uk/Dave/PERL/node175.html

http://www.yuki-onna.co.uk/email/smtp.html

  • Uglavnom:

http://www.google.com/search?q=use+smtp+to+send+mail

Kada to prokljoviš, samo umjesto da ručno to tipkaš, koristiš Socket komponentu u Flashu da otvoriš vezu na taj isti mail server i pošalješ takav tekst. I napravio si svoj “outlook u malom”.

http://www.google.com/search?q=flash+socket

Pazi, ne treba ti “XmlSocket” nego normalni binarni socket.

Što bi trebao biti adekvatni odgovor? Jel se može opisati riječima ili kodom?
Koji su to različiti načini komunikacije izmedju AS3 i ASP-a i AS3 i PHP, pa treba poslati POST request na server.

[quote=“tsereg”]Ako se baš moraš spajati na .NET, imaju nešto poput ovog.

http://www.adobe.com/devnet/flashremoting/articles/intro_flremoting_net.html

Međutim, što imaš na serveru nema nikakve veze. Naprosto trebaš u Flashu poslati HTTP POST zahtjev na server, koji ćeš tamo obraditi na isti način na koji bi obradio podnošenje bilo kakvog obrasca (forum submit).

Efektivno, najbolje ti je napraviti jednostavan send-mail obrazac u ASP-u koji radi. Pri tome si u preglednik instaliraš neki plugin za gledanje zaglavlja (npr. Live HTTP Headers za FF) kako bi vidio što se dešava kod podnošenja HTML obrasca, tj. što pregledni šalje serveru.

Onda ono što se genrira kod podnošenja tog obrasca programski izgeneriraš pomoću Flasha. Pri tome vezu prema serveru otvoriš kroz Flashov socket. Srećom, sadržaj HTTP POST zahtjeva je puki tekst, relativno jednostavnog formata, pa to samo generiraš i šibneš niz socket. Ovdje vidim da postoje socketi u Flashu, ako sam naišao na dobru dokumentaciju:

http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cfb.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7cef


Još jednostavniji način ti je da si pogledaš malo sam SMTP protokol za slanje mailova. SMTP je vrlo jednostavan protokol koji je bio namijenjen i direktnom ručnom utipkavanju. Primjerice, možeš otvoriti telnetom vezu na svoj SMTP server i doslovno “ukucati” i poslati mail direktno na server. To, zapravo, za tebe rade mail klijenti, sendmail skripte i to.

Najdirektnije ti je da u Flashu otvoriš socket na SMTP server i pošalješ mail direktno iz Flasha. Tada ti baš ništa ne treba na serveru. Samo ti treba bilo kakav mail server na koji imaš pristup.

Da vidiš kako je trivijalno poslati mail direktno komunicirajući sa mail-serverom, poprati ovo:

http://www.cs.cf.ac.uk/Dave/PERL/node175.html

http://www.yuki-onna.co.uk/email/smtp.html

  • Uglavnom:

http://www.google.com/search?q=use+smtp+to+send+mail

Kada to prokljoviš, samo umjesto da ručno to tipkaš, koristiš Socket komponentu u Flashu da otvoriš vezu na taj isti mail server i pošalješ takav tekst. I napravio si svoj “outlook u malom”.

http://www.google.com/search?q=flash+socket

Pazi, ne treba ti “XmlSocket” nego normalni binarni socket.[/quote]

Hvala

Evo jedna starija tema gdje sam baš dao primjer slanja maila direktno preko mail-servera.

http://www.webmajstori.net/forum/showthread.php?t=13887

Koja je uopće svrha toga?!

Bogtepitaj. Flash sam vidio samo na web-stranicama. To je najbliže što sam ikada bio tome i namjeravam doći.

No, iz ovako ovlaš pregleda mi se čini da to služi za da se i Flash uključi u izradu distribuiranih aplikacija na nekom od ORB-nih (object request broker) i sličnih middlewarea poput .NET-a, CORBA-e, SOAP-a i sl.

Uglavnom, “remoting” je nešto što je nastalo iz originalnog RPC-a (remote procedure call), što je programska biblioteka koja pretvara paradigmu razmjena poruka u paradigmu poziva procedura. Tako umjesto da pošalješ poruku s klijenta na server i onda čekaš odgovor, ti “pozoveš proceduru na serveru”, tj. doslovno u svom programskom kodu pozoveš proceduru, kao svaku drugu - s parametrima i povratnom vrijednosti. No, middleware podsloj koji je lokalan u tvom računalu implementira proceduru tako da zapravo parametre upakira i pošalje preko mreže na server. Identičan middleware na serveru onda primi poruku, raspakira parametre i izvrši stvarni poziv te procedure. Zatim se povratna vrijednost pakira, šalje natrag mrežom, tvoj podsloj na klijentu je prima i izlazi iz procedure koja je bila “smrznuta” to vrijeme čekajući na odgovor.

No, za programera je cijeli taj proces “transparentan” - njemu se čini da poziva lokalnu proceduru.

Zadnji krik mode u toj paradigmi su “web servisi”. No, svaki framework koji drži do sebe će podržavati “remoting”. :slight_smile: Pa se i Flash valjda ovim uključuje u igru.

Ja u Flashu spajanje izvodim preko AMF3 protokola.
Treba postojati na serveru nešto što taj protokol može prihvatiti.
No kojim kog načinom išli sve se svodi na ono što je tsreg rekao rekao

[quote=“tsereg”]
No, za programera je cijeli taj proces “transparentan” - njemu se čini da poziva lokalnu proceduru. [/quote]

service(lokalnaKlasa).funkcija(serverFunkcija)(param1,param2)
Stime da se u service klasu ranije upiše put do gatewaya i koju se klasu na serveru poziva.

U parametre ulazi actionscript objekt (string, int, array, custom klasa itd.).
A vraća se isto array, string ili klasa ako je napravljeno mapiranje na serveru.

Takav način komunikacije je jednostavniji jer developer ne mora obrađivati podatke ni na serveru ni na klijent strani.
Znači ako vrati string sa servera to je string, ako vrati int to je int itd…

To je kad se koristi AMF sad kako je kod drugih, mislim da svi vraćaju XML ili neke druge nenativne tipove podatka za Flash.
Mislim da čak kad se i xml loadira. Prvo se radi request.
Zatim se request mora pretvorititi u xml object u flashu.

Bas gledam ovaj Flash remoting, i u osnovi je to proxy servis na serveru, i kod generator, koji omogucava laksu komunikaciju izmedzu Flasha i asp.net server side koda, brinuci se o serijalizaciji, vjerojatno sigurnosti, i slicnom stvarcicama.
Skracuje posao rucnog kreiranja asp.net web servisa i API interfejsa, serijalizacije i deserijalizacije objekata, i pozivanja istih iz Flasha. IMHO nepotrebna razina apstrakcije, al eto.

Ovo je mislim najači način flash remotinga barem što se .NET tiče.

http://www.themidnightcoders.com/products/weborb-for-net/overview.html

TU je i podrška za druge tehnologije osim Flasha.

Nažalost kod flash remotinga se vidi koliko je php “skriptni jezik”. Dok recimo u Javi ima barem 10 open source servera, od gaming do streaming.

Dakle, Flash Remoting je ustvari “fancy” način za slanje serijaliziranih objekata na server gdje se to obrađuje i šalje odgovor te “pozivanje” funkcija?

Čini li se to meni ili je to obično izmišljanje tople vode i porez na budale?

IMHO, nepotreban library. Ako web servis ima specificirane metode dostupne za zvanje (RPC fora), i implementiranu SOAP specifikaciju, nije bitno sta je na server ili klijent strani, glavno da se drze specifikacije. .NET web servis sa SOAP 1.1 je doslovno dva klika misem.
Na flash strani, teoretski neki Flash IDE bi trebao generirati klase na konzumaciju web servisa, tako da zvanje bude jednostavno, par linija koda. Dali to flash ima, neznam, iako ovaj remoting izgleda tako. Tako barem ja radim sa Silverlightom, pa si mislim da bi to Flash kao puno “starija” tehnologija isto trebao imati nesto slicno.

Flex ima za SOAP a u novoj verziji bi trebao imati i podršku za REST.
Mislim da je pristup različit ovisno koji se model izabere ali je manje rada ako se cijelo vrijeme radi s objektima nego s XML-om. I ukoliko dođe do izmjena manje je posla.
Pošalje se array, dobiš natrag array i na tom arrayu cijelo vrijeme se radi unutar aplikacije i kad je posao gotov array se natrag pošalje na server. A server opet radi sa array.
Sve je u arrayu:)

Baš sam se sjetio jednog zanimljivog rješenja u tom načinu radu.
Imao sam data grid na klijentu i želio sam selektirati još jednu kolumnu.
Radilo se sa stored procedurama i sve što sam trebao učiniti je dodati tu kolumnu u stored proceduru i ona se je pojavila na klijentu. I na klijentu ugraditi tu kolumu u DataGrid.
Mislim da su barem dva koraka izbačeni iz igre da se je radilo preko SOAP ili REST.


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja