![]() |
charset troligvis enkel fråga
Jag kör ett mail script på min hemsida (för besökare) i flash och flashfilen läser av en separat php fil. Jag har hållit på i flera dagar nu att experimentera med olika charsets både i html filen som flashfilen ligger i samt i php filen men min webprovider one.com kan för allt i världen inte ta emot mailet och visa det normalt utan det lagras en fil som heter "Data" i mailet och den måste man öppna separat för att sedan upptäcka att alla svenska tecken är helt skruvade. Använder jag min hotmail som mottagare så funkar det något bättre men de måste ju va nåt charset fel eftersom jag inte har nått problem att få till vanliga html form mails utan flash.
Här är php filen, ska jag ha nån header eller? De står ju redan charset längre ner i koden... <? $name=$_POST['name']; $email=$_POST['email']; $phone=$_POST['phone']; $message=$_POST['message']; $ToEmail = "test@mindomän.se"; $ToSubject = "Meddelande websidan"; $EmailBody = "Namn: $name\n E-mail address: $mail\n Telefon:$phone\n Meddelande: $comm\n"; $Message = $EmailBody; $headers .= "Content-type: text; charset=iso-8859-1\r\n"; $headers .= "From:".$email."\r\n"; mail($ToEmail,$ToSubject,$Message, $headers); ?> Hjälp uppskattas! |
Testa; Content-type: text/html; charset=UTF-8
Om det inte fungerar så är det fel i din hantering mellan flash->php. |
Om man kör allt i UTF-8 så fungerar det. Sätt charset överallt det går, tvinga script/databas att använda det där du kan göra det och det kommer att fungera.
|
Nu funkar det
Tror mime-grejjen gjorde susen, har provat utf-8 tidigare utan att lyckas men verkar haft en ofuständig sträng.
Anyhow, nån som vet hur jag ska få scriptet att tvinga mailservern att skriva in fälten som besökaren skriver in så att de hamnar på olika rader som den struktur som finns nedan? Just nu så kommer allt på samma rad i mailets body. Hotmail ex. tolkar strukturen som den är uppspaltad här nedan men inte one.com... <? $name=$_POST['name']; $email=$_POST['email']; $phone=$_POST['phone']; $message=$_POST['message']; $ToEmail = "[email protected]"; $ToSubject = "Meddelande websidan"; $EmailBody = "Namn: $name\n E-mail address: $email\n Telefon: $phone\n Meddelande: $message\n"; $Message = $EmailBody; $headers= 'MIME-Version: 1.0' . "\r\n"; $headers.= "Content-type: text/html; charset=UTF-8\r\n"; $headers .= "From :".$email."\r\n"; mail($ToEmail,$ToSubject,$Message, $headers); ?> |
Tack för att du hjälper till för att öka spammen på internet :)
Du escapar inte ett enda värde du tar emot. Utan spottar bara iväg rubbet. Kan du inte escapa korrekt, testa phpMailer och använd detta istället. |
Testa att lägga newline för sig:
$EmailBody = 'Namn: '.$name."\n". 'E-mail address: '.$email."\n" 'Telefon: '.$phone."\n" 'Meddelande: '.$message2."\n"; Har du enkelcitat också så minskas belastningen lite på servern (många bäckar små..) |
ja ja hade inte för avsikt att lära mej hel php spektrat bara för ett mailformulär
Escapa? |
http://www.roscripts.com/Escape_string_with_PHP-87.html
Men detta är inte allt du behöver. Google är din vän. |
Okey tack!
Men är detta verkligen relevant i sammanhanget? Formuläret finns på en relativt liten site och gissningsvis handlar det om kanske 10 mail via den per år. Kan man på nått vis (av orätta händer) använda detta formulär till att sprida saker utanför den mail som står angiven i scriptet? Den förra siten jag hade ett liknande på kom ungefär 3-4 spam / år max av robotar med "buy this and buy that" |
Formuläret kan användas för att sprida spam. Vill man det? Nej, och därför ser man till att det inte skall gå.
|
Citat:
Sedan hittade några jäkla ryska spambotar skiten och fyllde databasen på nolltid. DELETE * FROM `guestbook`; Och sedan vart den fylld igen....osv.. Tips: Fixa formuläret innan du blir tvingad till det. :P |
Finns det säkerhetshål som t.ex brist på validering i ett script så kan det användas för hackarens egna onda syften... som att göra om scriptet och skicka ut tusentals mail med din server som avsändare vilket kan resultatera i att ip'n blir svartlistad.. och har du webmail ifrån samma ip så blir dina mail svartlistade som spam - det låter väl skoj? ;)
|
Citat:
Eller hade detta något med huruvida spam tar sig förbi eller ej? Blev lite lätt förbryllad när jag läste detta. |
Citat:
har man följande kod: $var = 'hello'; $var2 = "$var world"; så går php igenom strängen med dubbelcitat.. en sådan där situation är onödigt resurskrävande för det är inte mer jobbigare att skriva så här: $var2 = $var.' world'; .. eller en sträng som bara är en sträng fast det är dubbelcitat så kommer ändå php att söka efter variabler. $var = "hello world"; |
Att man har missat en sådan både enkel och viktig detalj i PHP-språket efter 5 års erfarenhet.
Nästan så att man får ställa sig i skamvrån! :-) Tack för förklaringen! |
Skillnaden är knappt märkbar.
Jag gjorde ett test och mätte tiden (microsekunder m. PHP) och skrev ut en mängd text 1 miljon gånger. Det skiljde sig inte många millisekunder, och det är inget varken serveransvarig/programmerare/användare kommer att märka. |
Alla tider är GMT +2. Klockan är nu 02:08. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson