Registriraj se
cc

Izmenjava
 












  • Logo(1)
  • razlika v ceni ....(3)
  • Dreamweaver vrašanje(7)
  • Delo dobi...(1)
  • Iščemo arhitekturne projektante!(0)
  • Okus 51. beneškega bienala umetnosti (0)
  • Splet 2.0? (0)
  • Reason - Šola z razlogom 5. del (1)
  • Animiran metulj (0)
  • Reason - Šola z razlogom 4. del (0)
  • Taktike & praksa: Seminar novomedijske umetnosti (0)
  • Povabilo k sodelovanju na festivalu HAIP10 (0)
  • Apple iPad: odiseja v vesolju? (0)
  • Game Developers Conference San Francisco 2010 (0)
  • Google Chrome Beta za Mac in Linux ter razširitve (0)

  • Forum> programje & tehnika> Pošiljanje emaila iz Flash-a s pomočjo php-ja
    mloncaric

    Član

    .:Pošiljanje emaila iz Flash-a s pomočjo php-ja:. 27/04/2006, ob 21:52

    Pozdravljeni.

    Nujno bi rabil Vašo pomoč pri tej stvari.

    Flash koda:













    Koda:


    var senderLoad:LoadVars = new LoadVars();
    var receiveLoad:LoadVars = new LoadVars();
    //
    ime_txt.enabled = false;
    email_txt.enabled = false;
    naslov_txt.enabled = false;
    sporocilo_txt.enabled = false;
    //
    poslji_btn.onRelease = function() {
    if ((ime_ti.text != "") && (email_ti.text != "") && (naslov_ti.text != "") && (sporocilo_ta.text != "")) {
    senderLoad.ime_ti = ime_ti.text;
    senderLoad.email_ti = email_ti.text;
    senderLoad.naslov_ti = naslov_ti.text;
    senderLoad.sporocilo_ta = sporocilo_ta.text;
    senderLoad.sendAndLoad("_vsebina/kontakt.php", receiveLoad);
    }
    if ((ime_ti.text == "") && (email_ti.text == "") && (naslov_ti.text == "") && (sporocilo_ta.text == "")) {
    stanje_ti.text = "Niste vnesli podatkov!";
    }
    };
    zavrzi_btn.onRelease = function() {
    ime_ti.text = "";
    email_ti.text = "";
    naslov_ti.text = "";
    sporocilo_ta.text = "";
    stanje_ti.text = "Sporočilo zavrženo!";
    };
    //
    receiveLoad.onLoad = function() {
    if (this.output == "sent") {
    stanje_ti.text = "Sporočilo je bilo poslano!";
    ime_ti.text = "";
    email_ti.text = "";
    naslov_ti.text = "";
    sporocilo_ta.text = "";
    } else {
    stanje_ti.text = "Sporočilo ni bilo poslano!";
    }
    };



    ...pri čemer so:
    ime_ti, email_ti, naslov_ti, stanje_ti, TextInput komponente;
    besedilo_ta pa TextArea komponenta;
    poslji_btn, zavrzi_btn pa sta gumba.
    Naštel sem komponente, ki so edine ključne za delovanje programa.

    PHP koda:













    Koda:


    <?
    if(!empty($HTTP_POST_VARS["email_ti"]) || !empty($HTTP_POST_VARS["sporocilo_ta"]) || !empty($HTTP_POST_VARS["naslov_ti"]) || !empty($HTTP_POST_VARS["ime_ti"]))
    {
    $to = "miran.loncaric@gmail.com";
    $subject = stripslashes($HTTP_POST_VARS["naslov_ti"]);
    $body = stripslashes($HTTP_POST_VARS["sporocilo_ta"]);
    $body .= "\n\n---------------------------\n";
    $body .= "Mail sent by: " . $HTTP_POST_VARS["ime_ti"] . " <" . $HTTP_POST_VARS["email_ti"] . ">\n";
    $header = "From: " . $HTTP_POST_VARS["ime_ti"] . " <" . $HTTP_POST_VARS["email_ti"] . ">\n";
    $header .= "Reply-To: " . $HTTP_POST_VARS["ime_ti"] . " <" . $HTTP_POST_VARS["email_ti"] . ">\n";
    $header .= "X-Mailer: PHP/" . phpversion() . "\n";
    $header .= "X-Priority: 1";
    if(@mail($to, $subject, $body, $header))
    {
    echo "output=sent";
    } else {
    echo "output=error";
    }
    } else {
    echo "output=error";
    }
    ?>



    Problem je v tem, da zmeraj, ko izpolnim formular, in zelim posto poslati, mi php vrne, da sporocilo ni bilo poslano. Preizkusil sem ze na tone podobnih programckov, in zmeraj enaka tezava.

    Ce bi mi kdorkoli znal razloziti problem, bi mu bil zelo hvalezen.

    LP

    [BISI]

    Administrator

    .::. 28/04/2006, ob 00:33

    S php kodo je, razen zastarelosti sintakse, vse v redu. S flashem se bos moral malenkost pozabavat. :)














    Koda:


    <?php
    if(!empty($_POST["email_ti"]) || !empty($_POST["sporocilo_ta"]) || !empty($_POST["naslov_ti"]) || !empty($_POST["ime_ti"]))
    {
    $to = "miran.loncaric@gmail.com";
    $subject = stripslashes($_POST["naslov_ti"]);
    $body = stripslashes($_POST["sporocilo_ta"]);
    $body .= "\n\n---------------------------\n";
    $body .= "Mail sent by: " . $_POST["ime_ti"] . " <" . $_POST["email_ti"] . ">\n";
    $header = "From: " . $_POST["ime_ti"] . " <" . $_POST["email_ti"] . ">\n";
    $header .= "Reply-To: " . $_POST["ime_ti"] . " <" . $_POST["email_ti"] . ">\n";
    $header .= "X-Mailer: PHP/" . phpversion() . "\n";
    $header .= "X-Priority: 1";
    if(@mail($to, $subject, $body, $header))
    {
    echo "output=sent";
    } else {
    echo "output=error";
    }
    } else {
    echo "output=error";
    }
    ?>


    Life is a workaround...a bad one.
    [BISI]

    Administrator

    .::. 28/04/2006, ob 00:53

    Mah, se mi ne da ravno actionscripta gledat ob tako pozni uri... Ampak vendarle... znotraj onRelease imas brez veze dva ifa namesto kar if else...














    Koda:


    poslji_btn.onRelease = function() {
    if ((ime_ti.text != "") && (email_ti.text != "") && (naslov_ti.text != "") && (sporocilo_ta.text != "")) {
    senderLoad.ime_ti = ime_ti.text;
    senderLoad.email_ti = email_ti.text;
    senderLoad.naslov_ti = naslov_ti.text;
    senderLoad.sporocilo_ta = sporocilo_ta.text;
    senderLoad.sendAndLoad("_vsebina/kontakt.php", receiveLoad);
    } else {
    stanje_ti.text = "Niste vnesli podatkov!";
    }
    };



    Hm, jaz sicer uporabljam pri cekiranju polj length != 0 ... Kaj je sploh boljse/hitreje?

    A podatki se posljejo iz flasha (pride do izvedbe sendAndLoad)? Vstavi par trace-ov, pa bos najbrz opazil kje se ustavi zadeva.
    Life is a workaround...a bad one.
    mloncaric

    Član

    .::. 28/04/2006, ob 09:30

    Hm.
    SendAndLoad deluje, ker pri posiljanju mi zmeraj vrne iz php-ja da sporocilo ni bilo poslano, kar v primeru, da nebi delovalo, sploh nebi nic napisalo, ampak zaenkrat sploh nisem odkril napake;pojma nimam, kaj bi lahko bilo narobe; v flashu pa tudi, ce bi uporabil length() pomojem nebi bilo razlike, ker oboje deluje priblizno enako.

    Ce imate se kaksno idejo, bi vam bil zelo hvalezen; tudi kaksna podobna koda bi mi prav prisla.

    LP

    [BISI]

    Administrator

    .::. 28/04/2006, ob 13:43

    Sem na hitro nametal potrebne komponente za delovanje zgornje kode v flash ... in sporocilce se uspesno poslje na mail.

    Najprej ugotovi, ce se php zaustavi pri posiljanju maila, ali ze pri sprejemanju spremenljivk. Spremeni outputa v "nisem sprejel spremenljivk" in "nisem izvrsil mail funkcije" (namesto output=error, ki se zaustavi v flashu s "sporocilo ni bilo poslano", ker imas if pogoje - povsem logicno - na true... za razhroscevanje pac rabis podrobnejsa porocila o napaki :)), potem pa izpisi v flashu this.output v input stanje_ti. Potem bos vsaj videl, ce php obdela spremenljivke in se ustavi pri mail funkciji. Ce this.output odvrne nic, potem pa vemo, da streznik ne podpira phpja. ;)
    Life is a workaround...a bad one.
    mloncaric

    Član

    .::. 29/04/2006, ob 11:38

    Uporabil sem novo PHP kodo(ze narejeno(www.gotoandlearn.com)), dodal sem le del nove kode, da posiljatelj lahko napise naslov sporocila.

    PHP koda:













    Koda:


    <?PHP

    $to = "miran.loncaric@gmail.com";
    $subject = $naslov_ti;
    $message = "Name: " . $ime_ti;
    $message .= "\nEmail: " . $email_ti;
    $message .= "\n\nMessage: " . $sporocilo_ta;
    $headers = "From: $email_ti";
    $headers .= "\nReply-To: $email_ti";

    $sentOk = mail($to,$subject,$message,$headers);

    echo "sentOk=" . $sentOk;

    ?>



    ...Flash koda je ostala popolnoma ista, spremenil sem le:

    receiveLoad.onLoad = function() {
    if (this.sentOk) {...

    ...ko se sporocilo poslje, je spremenljivka sentOk == true, v nasprotnem primeru pa false; to pomeni, da flash prepozna ali je bilo sporocilo poslano ali ne, in tako ustrezno ukrepa...

    Ko sem program testiral, mi je ta spet odvrnil napako; program sem uploadal na server, in tudi tam je bil enak problem...

    Sploh nevem, v cem je problem...

    LP

    Sporočilo je spremenil/a mloncaric [ 29.4.2006 ob 13:41 ]


    [BISI]

    Administrator

    .::. 29/04/2006, ob 14:35

    Ne, flash prepozna samo, ce imas definirano spremenljivko sentOK. Flash ti s tem ne pove, ce so spremenljivke sploh prisle do phpja, ce se je mail funkcija sploh izvedla in ce imas sploh na strezniku podporo za php. :)

    ...

    mail.php (izsek)













    Koda:

    <?php
    if(!empty($_POST["email_ti"]) || !empty($_POST["sporocilo_ta"]) || !empty($_POST["naslov_ti"]) || !empty($_POST["ime_ti"]))
    {

    ...

    if(@mail($to, $subject, $body, $header))
    {
    echo "output=sent";
    } else {
    echo "output=mail funkcija se ne izvede";
    }
    } else {
    echo "output=nisem sprejel spremenljivk";
    }
    ?>



    sendandload.as (izsek)













    Koda:

    ...

    //
    receiveLoad.onLoad = function() {
    if (this.output == "sent") {
    stanje_ti.text = "Sporočilo je bilo poslano!";
    ime_ti.text = "";
    email_ti.text = "";
    naslov_ti.text = "";
    sporocilo_ta.text = "";
    } else {
    stanje_ti.text = this.output;
    }
    };


    Life is a workaround...a bad one.
    mloncaric

    Član

    .::. 29/04/2006, ob 20:18

    Poskusil sem kodo, ki ste jo Vi napisali, vendar mi je odvrnilo undefined; tako, da je napaka nekje v kodi.

    Sporočilo je spremenil/a mloncaric [ 29.4.2006 ob 22:19 ]


    [BISI]

    Administrator

    .::. 29/04/2006, ob 21:24

    Ce je napisalo undefined, potem sendAndLoad ni "prisel" do php datoteke. Moznosti sta naceloma dve: streznik ne podpira phpja ali pa je pot do datoteke v flashu napacna.
    Life is a workaround...a bad one.
    Forum> programje & tehnika> Pošiljanje emaila iz Flash-a s pomočjo php-ja
     

    Skok na: