04. november 2002 - 18:41
Der er
22 kommentarer og 1 løsning
formmail
Jeg har lidt problemer med min formmail. Der bliver ikke sendt data fra flash til PHP og heller ikke den anden vej. Jeg har 4 input felter: navn, email, emne og kommentar. Actionscript på min submit knap: on (release) { status.status = ""; if (navn.navn != "" && email.email != "" && emne.emne != "" && kommentar.kommentar != "") { loadVariables ("formmail.php", this, "POST"); gotoAndStop ("sender"); } else { status.status = "alle felter skal udfyles"; } } Mit PHP-script: <?php $modtager="info@tidensmoebler.dk"; $emne="$emne"; $afsender="$navn <$email>"; $kommentar="$kommentar"; mail("$modtager", "$emne", "$kommentar", "Fra: $afsender"); $response = "tak for din kommentar"; $response = utf8_encode($response); print "&result=Okay&response=$response&"; php?> Kan det evt. have noget at gøre med at mine input felter er ind i movieclips, eller at min formmail side bliver loadet ind i et andet movieclip??
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
05. november 2002 - 09:00
#1
Det har PRÆCIS noget at gøre med, at dine input-felter er inden i movieclips! loadVariables sender nemlig kun de variabler, som findes på samme tidslinie som kaldet - og dine variabler ligger ikke i denne - dog burde følgende omskrivning virke (sender alle variablerne som GET): loadVariables("formmail.php?kommenter="+kommentar.kommentar+"&navn="+navn.navn+"&email="+email.email+"&emne="+email.emne,this); /Barklund PS: Du kan ikke laver en header, der hedder "Fra: navn <email>", det skal altså være engelsk, det da skal følge SMTP-standarden. Den hedder "From: email" eller "From: navn <email>"...
05. november 2002 - 09:20
#2
Kanon Barklund!! Jeg tænkte nok det var det med movieclips der var problemet, jeg viste bare ikke hvordan man kunne omgå det. Jeg har lige et lille bonus spørgsmål til dig. Hvorfor bliver linieskift fjernet? Når jeg checker mailen står det hele bare i en lang smøre.
05. november 2002 - 09:38
#3
Du bruger Outlook 2000, ikke sandt? Lige præcis denne kan ikke vise "text/plain" ordentlig... Det skal bruge charset "quoted-printable" for at det virker... conversion function kan findes i kommentarerne til "quoted_printable_decode()" på php.net, sakset: function qp_enc($input = "quoted-printable encoding test string", $line_max = 76) { $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); $lines = preg_split("/(?:\r\n|\r|\n)/", $input); $eol = "\r\n"; $escape = "="; $output = ""; while( list(, $line) = each($lines) ) { //$line = rtrim($line); // remove trailing white space -> no =20\r\n necessary $linlen = strlen($line); $newline = ""; for($i = 0; $i < $linlen; $i++) { $c = substr($line, $i, 1); $dec = ord($c); if ( ($dec == 32) && ($i == ($linlen - 1)) ) { // convert space at eol only $c = "=20"; } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required $h2 = floor($dec/16); $h1 = floor($dec%16); $c = $escape.$hex["$h2"].$hex["$h1"]; } if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay $newline = ""; } $newline .= $c; } // end of for $output .= $newline.$eol; } return trim($output); } Hertil skal du specificere header: "Content-type: text/plain, charset: quoted-printable" Altså: mail("$modtager", "$emne", "$kommentar", "From: $afsender\r\nContent-type: text/plain, charset=quoted-printable"); (sender du fra *nix maskine, skal du vistnok droppe \r og kun bruge \n) /Barklund
05. november 2002 - 09:46
#4
Faktisk bruger jeg en webbaseret emailklient til at chekce mailen.
05. november 2002 - 10:01
#5
sikker? hvilken? Bare en standard webmail? Så prøv blot at specificere som text/plain: mail("$modtager", "$emne", "$kommentar", "From: $afsender\r\nContent-type: text/plain, charset=iso-8859-1");
05. november 2002 - 10:10
#6
Ja, jeg er sikker :-) Bruger bare wannafind.dk's webmail. Det gør ingen forskel at specificere det som text/plain
05. november 2002 - 10:13
#7
så prøv at lave flash's "\n" om til windows' standard "\r\n": mail("$modtager", "$emne", str_replace("\n","\r\n",$kommentar), "From: $afsender\r\nContent-type: text/plain, charset=iso-8859-1");
05. november 2002 - 10:13
#8
Skal lige på indkøb i Duskland. Vender tilbage senere på dagen. Forløbig tak for hjælpen!
05. november 2002 - 20:30
#9
Hej igen, så er jeg tilbage. Jeg har lige testet dit sidste svar, men resultatet er desværre stadig det samme.
05. november 2002 - 20:52
#10
Prøv lige at sætte modtager til "s001370@student.dtu.dk" så kan jeg kigge på mailen...
05. november 2002 - 20:58
#11
Den er sendt nu.
05. november 2002 - 21:03
#12
tja, det er noget rod! Det er jo absolut ingen linieskift... De er blevet fjernet et eller andet sted... Ahh... I din flash: loadVariables("formmail.php?kommenter="+escape(kommentar.kommentar)+"&navn="+navn.navn+"&email="+email.email+"&emne="+email.emne,this); I din PHP: mail("$modtager", $emne, url_decode($kommentar), "From: $afsender\r\nContent-type: text/plain"); Så skulle den nok være der...
05. november 2002 - 21:42
#13
Hmmm, med: mail("$modtager", "$overskrift", url_decode($besked), "From: $afsender\r\nContent-type: text/plain"); sender den slet ikke mailen.
05. november 2002 - 22:43
#14
Det er i et ord: mail("$modtager", "$overskrift", urldecode($besked), "From: $afsender\r\nContent-type: text/plain");
06. november 2002 - 09:38
#15
Nu sender den igen, men nu kommer teksten (beskeden) ikke med. Damn, jeg synes hele tiden der er noget nyt :-(
06. november 2002 - 10:15
#16
Så prøv at droppe urldecode og bare sende den fra flash escapede $besked...
06. november 2002 - 10:37
#17
Stadig ingen tekst.
06. november 2002 - 11:20
#18
Det er jo også gået helt galt... Flash sender en variabel, der hedder "kommenter" (ikke "kommentar") Og PHP mailer en besked der hedder "besked" Ret i flash til: loadVariables("formmail.php?kommentar="+escape(kommentar.kommentar)+"&navn="+navn.navn+"&email="+email.email+"&emne="+email.emne,this); Og i PHP: mail("$modtager", $emne, urldecode($kommentar), "From: $afsender\r\nContent-type: text/plain");
06. november 2002 - 11:36
#19
Nu ser det sådan her ud, men der er stadig ingen tekst. actionscript: loadVariables("formmail.php?kommenter="+escape(kommentar.kommentar)+"&navn="+navn.navn+"&email="+email.email+"&emne="+emne.emne,this); PHP-script: $modtager="info@tidensmoebler.dk"; $afsender="$navn <$email>"; mail("$modtager", "$emne", urldecode($kommentar), "From: $afsender\r\nContent-type: text/plain");
06. november 2002 - 12:24
#20
Det er jo også forkert :o Kan du ikke se forskellen på min linie til flash og den du har skrevet? "kommenter" != "kommentar" :o)
06. november 2002 - 12:38
#21
Ah for pokker, jeg havde helt overset den her linie du skrev :-( "Flash sender en variabel, der hedder "kommenter" (ikke "kommentar")" Træls lille stavefejl, men nu virker det da! Tak for din hjælp (og tålmodighed) Barklund!!
06. november 2002 - 13:27
#22
Så lægger jeg lige et svar...
06. november 2002 - 13:51
#23
Tarker...
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.