Avatar billede thulstrup Nybegynder
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??
Avatar billede barklund Nybegynder
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>"...
Avatar billede thulstrup Nybegynder
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.
Avatar billede barklund Nybegynder
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
Avatar billede thulstrup Nybegynder
05. november 2002 - 09:46 #4
Faktisk bruger jeg en webbaseret emailklient til at chekce mailen.
Avatar billede barklund Nybegynder
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");
Avatar billede thulstrup Nybegynder
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
Avatar billede barklund Nybegynder
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");
Avatar billede thulstrup Nybegynder
05. november 2002 - 10:13 #8
Skal lige på indkøb i Duskland. Vender tilbage senere på dagen. Forløbig tak for hjælpen!
Avatar billede thulstrup Nybegynder
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.
Avatar billede barklund Nybegynder
05. november 2002 - 20:52 #10
Prøv lige at sætte modtager til "s001370@student.dtu.dk" så kan jeg kigge på mailen...
Avatar billede thulstrup Nybegynder
05. november 2002 - 20:58 #11
Den er sendt nu.
Avatar billede barklund Nybegynder
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...
Avatar billede thulstrup Nybegynder
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.
Avatar billede barklund Nybegynder
05. november 2002 - 22:43 #14
Det er i et ord:

mail("$modtager", "$overskrift", urldecode($besked), "From: $afsender\r\nContent-type: text/plain");
Avatar billede thulstrup Nybegynder
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 :-(
Avatar billede barklund Nybegynder
06. november 2002 - 10:15 #16
Så prøv at droppe urldecode og bare sende den fra flash escapede $besked...
Avatar billede thulstrup Nybegynder
06. november 2002 - 10:37 #17
Stadig ingen tekst.
Avatar billede barklund Nybegynder
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");
Avatar billede thulstrup Nybegynder
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");
Avatar billede barklund Nybegynder
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)
Avatar billede thulstrup Nybegynder
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!!
Avatar billede barklund Nybegynder
06. november 2002 - 13:27 #22
Så lægger jeg lige et svar...
Avatar billede barklund Nybegynder
06. november 2002 - 13:51 #23
Tarker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester