webForumDet fria alternativet

Teckenkodning i PHP

12 svar · 784 visningar · startad av PaccyD

PaccyDMedlem sedan nov. 201210 inlägg
#1

Hej allesammans!

Jag har gjort en hemsida där man kan beställa böcker, i dreamweaver. När man beställt så ska man få en bekräftelse via mail. Detta fungerade kanon till min I-Pad men dessvärre inte till min andra dator.

Efter att läst på så inser jag att det handlar om teckenkodningen, och att denna ska gå att ändra?

setLocale(LC_ALL, 'sv_SE.UTF-8', 'sv_SE.utf8', 'sv_SE', 'swedish.utf8', 'swedish', 'sv');

Vart jag än läser på internet så ser jag att jag ska använda setLocale, men det ger tyvärr ingen framgång. Är det snälla någon som vet hur jag fixar UTF-8 i php? Skulle vara evigt tacksam

PaccyD

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Vad är det som inte funkar exakt? ÅÄÖ i mailet? Då gäller det att du lägger till headervärdet Content-type när du skicka mailet, t ex:

$header .= 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

Variera beroende på hur nuvarande kod för att skapa headers ser ut.

PaccyDMedlem sedan nov. 201210 inlägg
#3

Hej!

Ja, precis. Det är å,ä & ö som inte fungerar.

Var menar du att jag ska lägga koden du skrev? Precis under <?php ?

PaccyDMedlem sedan nov. 201210 inlägg
#4

Jag kan länka hela filen, om du vill?

prplxrMedlem sedan juni 2012582 inlägg
#5

Du får allt ge oss lite kod om du behöver hjälp med att få in kodsnutten nitro2k01 förslog.

PaccyDMedlem sedan nov. 201210 inlägg
#6

Det är en liten fil så jag ger mig på att posta hela.

<?php

$antal = $_POST ['username'];
$antal2= $_POST['username2'];
$namn= $_POST['namn'];
$adress= $_POST['adress'];
$foretag= $_POST['foretag'];
$epost= $_POST['epost'];
$ovrigt= $_POST['ovrigt'];
$telefon= $_POST['telefon'];
$postnmr= $_POST['postnmr'];
$postort= $_POST['postort'];

$to='xxx@euromail.se';
$subject='Beställning';

$to2=$epost;
$subject2='Tack för er beställning!';

$message="Företag: ".$foretag. "\r\n" .
$message="Namn: ".$namn. "\r\n" .
$message="Adress: ".$adress. "\r\n" .
$message="Postnummer: ".$postnmr. "\r\n" .
$message="Postort: ".$postort. "\r\n" .
$message="E-post: ".$epost. "\r\n" .
$message="Telefon: ".$telefon. "\r\n" .
$message="Antal Talande mord: ".$antal. "\r\n" .
$message="Antal Vägens krigare: ".$antal2. "\r\n" .
$message="Övrigt: ".$ovrigt;

$message2="Hej ".$namn.", ".
$message2="och tack för din beställning!"."\r\n" ."\r\n" .
$message2="Vi bekräftar härmed beställningen av:"."\r\n" .
$message2="Talande mord och tysta arv: ".$antal." st". "\r\n" .
$message2="Vägens krigare: ".$antal2." st". "\r\n" ."\r\n" .

$message2="Bokpaketet skickas inom 3 arbetsdagar till följande adress:"."\r\n"."\r\n" .
$message2="Adress: ".$adress. "\r\n" .
$message2="Postnummer: ".$postnmr. "\r\n" .
$message2="Postort: ".$postort."\r\n" ."\r\n" .

$message2="Trevlig läsning!" . "\r\n" ."\r\n" . "Bästa hälsningar," ."\r\n" ."AB House of Isle"."\r\n" ."order@dettwiler.se";

if ($namn=="" && $postort=="" && $postnmr=="" && $epost=="" && $adress=="" ) {

}
else
{
mail($to,$subject,$message);
mail($to2,$subject2,$message2);
echo '<img src="2012-11-02 050.JPG" border=0>';
}

?>

prplxrMedlem sedan juni 2012582 inlägg
#7
<?php

 $antal = $_POST ['username'];
 $antal2= $_POST['username2'];
 $namn= $_POST['namn'];
 $adress= $_POST['adress'];
 $foretag= $_POST['foretag'];
 $epost= $_POST['epost'];
 $ovrigt= $_POST['ovrigt'];
 $telefon= $_POST['telefon'];
 $postnmr= $_POST['postnmr'];
 $postort= $_POST['postort'];

 $to='xxx@euromail.se';
 $subject='Beställning';

 $to2=$epost;
 $subject2='Tack för er beställning!';

 $message="Företag: ".$foretag. "\r\n" ;
 $message.="Namn: ".$namn. "\r\n" ;
 $message.="Adress: ".$adress. "\r\n" ;
 $message.="Postnummer: ".$postnmr. "\r\n" ;
 $message.="Postort: ".$postort. "\r\n" ;
 $message.="E-post: ".$epost. "\r\n" ;
 $message.="Telefon: ".$telefon. "\r\n" ;
 $message.="Antal Talande mord: ".$antal. "\r\n";
 $message.="Antal Vägens krigare: ".$antal2. "\r\n"; 
 $message.="Övrigt: ".$ovrigt;

 $message2="Hej ".$namn.", ";
 $message2.="och tack för din beställning!"."\r\n\r\n" ;
 $message2.="Vi bekräftar härmed beställningen av:"."\r\n" ;
 $message2.="Talande mord och tysta arv: ".$antal." st". "\r\n" ;
 $message2.="Vägens krigare: ".$antal2." st". "\r\n\r\n" ;

 $message2.="Bokpaketet skickas inom 3 arbetsdagar till följande adress:"."\r\n"."\r\n" .
 $message2.="Adress: ".$adress. "\r\n";
 $message2.="Postnummer: ".$postnmr. "\r\n";
 $message2.="Postort: ".$postort."\r\n\r\n";

 $message2.="Trevlig läsning!" . "\r\n\r\nBästa hälsningar,\r\nAB House of Isle\r\norder@dettwiler.se";

 $header = 'MIME-Version: 1.0' . "\r\n";
 $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

 if (!$namn=="" && !$postort=="" && !$postnmr=="" && !$epost=="" && !$adress=="" )  {
 mail($to,$subject,$message, $header);
 mail($to2,$subject2,$message2, $header);
 echo '<img src="2012-11-02 050.JPG" border=0>';
 }

 ?>

Jag tog mig friheten att rätta till några småskavanker också.

PaccyDMedlem sedan nov. 201210 inlägg
#8

Mycket schysst! :)

Jag tar och testar det nu så får vi se om det fungerar

PaccyDMedlem sedan nov. 201210 inlägg
#9

Det fungerar! Fasen vad skönt. Enda nackdelen med det du ändrade är att allt kommer som en flytande text, medans innan så var det radbyten i mellan

PaccyDMedlem sedan nov. 201210 inlägg
#10

prplxr, gillar du att läsa?

prplxrMedlem sedan juni 2012582 inlägg
#11

Förlåt mig, jag tänkte inte på det. När vi lade till "Content-type: text/html;" så blir det lite annorlunda. Byt ut alla "\r\n" mot "<br />" så ska du se att det fungerar!

Pröva med den här koden istället:

<?php

 $antal = $_POST ['username'];
 $antal2= $_POST['username2'];
 $namn= $_POST['namn'];
 $adress= $_POST['adress'];
 $foretag= $_POST['foretag'];
 $epost= $_POST['epost'];
 $ovrigt= $_POST['ovrigt'];
 $telefon= $_POST['telefon'];
 $postnmr= $_POST['postnmr'];
 $postort= $_POST['postort'];

 $to='xxx@euromail.se';
 $subject='Beställning';

 $to2=$epost;
 $subject2='Tack för er beställning!';

 $message="Företag: $foretag <br />" ;
 $message.="Namn: $namn <br />" ;
 $message.="Adress: $adress <br />" ;
 $message.="Postnummer: $postnmr <br />" ;
 $message.="Postort: $postort <br />" ;
 $message.="E-post: $epost<br />" ;
 $message.="Telefon: $telefon <br />" ;
 $message.="Antal Talande mord: ".$antal. "\r\n";
 $message.="Antal Vägens krigare: $antal2 <br />"; 
 $message.="Övrigt: $ovrigt";

 $message2="Hej ".$namn." ,";
 $message2.="och tack för din beställning!<br /><br />" ;
 $message2.="Vi bekräftar härmed beställningen av:<br />" ;
 $message2.="Talande mord och tysta arv: $antal st<br />" ;
 $message2.="Vägens krigare: $antal2 st<br /><br />" ;

 $message2.="Bokpaketet skickas inom 3 arbetsdagar till följande adress:<br /><br />" .
 $message2.="Adress: $adress. <br />";
 $message2.="Postnummer: $postnmr <br />";
 $message2.="Postort: ".$postort."<br /><br />";

 $message2.="Trevlig läsning!<br /><br />Bästa hälsningar,<br />AB House of Isle<br />order@dettwiler.se";

 $header = 'MIME-Version: 1.0' . "\r\n";
 $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

 if (!$namn=="" && !$postort=="" && !$postnmr=="" && !$epost=="" && !$adress=="" )  {
 mail($to,$subject,$message, $header);
 mail($to2,$subject2,$message2, $header);
 echo '<img src="2012-11-02 050.JPG" border=0>';
 }

 ?>

För att svara på om jag gillar att läsa, ja, det beror på. Facklitteratur läser jag mer än gärna, om det mesta!

nitro2k01Medlem sedan aug. 20039 342 inlägg
#12

Nej, inte alla \r\n. Specifikt ska $header-raderna absolut inte ha <br />. Då slutar koden funka.

Dessutom finns det ett annat sätt att lösa problemet än att byta ut \r\n mot <br />. Byt ut text/html mot text/plain.

<?php 

 $antal = $_POST ['username']; 
 $antal2= $_POST['username2']; 
 $namn= $_POST['namn']; 
 $adress= $_POST['adress']; 
 $foretag= $_POST['foretag']; 
 $epost= $_POST['epost']; 
 $ovrigt= $_POST['ovrigt']; 
 $telefon= $_POST['telefon']; 
 $postnmr= $_POST['postnmr']; 
 $postort= $_POST['postort']; 

 $to='xxx@euromail.se'; 
 $subject='Beställning'; 

 $to2=$epost; 
 $subject2='Tack för er beställning!'; 

 $message="Företag: ".$foretag. "\r\n" ; 
 $message.="Namn: ".$namn. "\r\n" ; 
 $message.="Adress: ".$adress. "\r\n" ; 
 $message.="Postnummer: ".$postnmr. "\r\n" ; 
 $message.="Postort: ".$postort. "\r\n" ; 
 $message.="E-post: ".$epost. "\r\n" ; 
 $message.="Telefon: ".$telefon. "\r\n" ; 
 $message.="Antal Talande mord: ".$antal. "\r\n"; 
 $message.="Antal Vägens krigare: ".$antal2. "\r\n";  
 $message.="Övrigt: ".$ovrigt; 

 $message2="Hej ".$namn.", "; 
 $message2.="och tack för din beställning!"."\r\n\r\n" ; 
 $message2.="Vi bekräftar härmed beställningen av:"."\r\n" ; 
 $message2.="Talande mord och tysta arv: ".$antal." st". "\r\n" ; 
 $message2.="Vägens krigare: ".$antal2." st". "\r\n\r\n" ; 

 $message2.="Bokpaketet skickas inom 3 arbetsdagar till följande adress:"."\r\n"."\r\n" . 
 $message2.="Adress: ".$adress. "\r\n"; 
 $message2.="Postnummer: ".$postnmr. "\r\n"; 
 $message2.="Postort: ".$postort."\r\n\r\n"; 

 $message2.="Trevlig läsning!" . "\r\n\r\nBästa hälsningar,\r\nAB House of Isle\r\norder@dettwiler.se"; 

 $header = 'MIME-Version: 1.0' . "\r\n"; 
 $header .= 'Content-type: text/plain; charset=UTF-8' . "\r\n"; 

 if (!$namn=="" && !$postort=="" && !$postnmr=="" && !$epost=="" && !$adress=="" )  { 
 mail($to,$subject,$message, $header); 
 mail($to2,$subject2,$message2, $header); 
 echo '<img src="2012-11-02 050.JPG" border=0>'; 
 } 

 ?>
prplxrMedlem sedan juni 2012582 inlägg
#13

nitro2k01 skrev:

Nej, inte alla \r\n. Specifikt ska $header-raderna absolut inte ha <br />. Då slutar koden funka.

Jag är medveten om detta. Jag inser nu att jag uttrycke mig klumpigt. Det var naturligtvis i bodyn av mailet jag syftade på. Jag bara utgår ifrån att alla vet hur jag tänker. xD

PaccyD: Jag vet att problemet är löst nu och det vore bra om du ville markera ett svar som trådens lösning, förlsagsvis nitro2k01's första svar.

132 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)