Avatar billede viggosmor Nybegynder
18. august 2008 - 12:08 Der er 64 kommentarer og
2 løsninger

Tegnsæt mail formular

Jeg har denne mailformular:

http://mopse-info.dk/kontakt.php

Jeg kan godt sende en mail, men den viser ikke æ, ø og å korrekt..

Min contactform.php fil ser sådan her ud:


<?php

/*  Mine kommentarer.

N?r man bruger dollartegnet, dvs $, "opretter" man en funktion. Nedenst?ende er funktioner der identificerer hvilken emailadresse feedback skal sendes til, samt hvad overskriften p? den sendte mail skal v?re - hver gang. S? overskriften p? de mails jeg f?r tilsendt hedder Carlinart.net feedback og de bliver sendt til adressen carina2b@hotmail.com. */


    $emailSubject = 'Feedback S&#65533;derberg indretning';
    $WebMaster = 'lone71@gmail.com';
   
   
/* I disse felter laver man de funktioner/variabler der indsamler navnene man har givet til felterne i formen p? kontaktsiden. Hvert felt som brugeren kan skrive i, har f?et tildelt et navn, som nedenst?ende funktioner kalder p?. Der skal st? pr?cis det samme begge steder. */

    $emailField = $_POST['email'];
    $nameField = $_POST['name'];
    $budgetField = $_POST['budget'];
    $travelersField = $_POST['travelers'];
    $commentsField = $_POST['comments'];
   
/* Nedenst?ende fort?ller hvad der vil blive inkluderet i den sendte email. Det skrives som html tekst, men n?r man inkluderer dollartegn kan man kalde p? funktionerne der indsamler hvad brugeren skriver i tekstfelterne.
   
EOD betyder End OF Data. */
   
   
    $body = <<<EOD
<br><hr><br>
Email: $emailField <br>
Name: $nameField <br>
Favourite Gallery: $budgetField <br>
Reached site through: $travelersField <br>
Comments: $commentsField <br>
EOD;

/* De 3 funktioner nedenunder */


    $headers = "From: $emailField\r\n";
    $headers .= "Content-type: text/html\r\n";
    $success = mail($WebMaster, $emailSubject, $body, $headers);
   
   
/* Nedenst?ende er al html fra en side, der skal fort?lle brugeren "Thank You!" efter de har afsendt mailen. Det er meget smart at man kan paste al kode, css, osv ind her. Man beh?ver slet ikke have en seperat "Thank You" side i sit site, der skal linkes til. Nedenst?ende sm?re genererer en selv, n?r kunden trykker afsend. */


    $theResults = <<<EOD
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title>Søderberg indretning</title>
    <meta http-equiv="Content-Language" content="en-us" />
   
    <meta http-equiv="imagetoolbar" content="no" />
    <meta name="MSSmartTagsPreventParsing" content="true" />
   
    <meta name="description" content="Boligstylist studerende Lone S&#65533;derberg" />
    <meta name="keywords" content="boligstylist, indretning, boligstyling" />
   
    <meta name="author" content="http://soederberg-webdesign.dk" />
   
    <style type="text/css" media="all">
    @import "indretning.css";
    </style>
</head>

<body>
<div id="content">
<div id="banner">
<img src="images/smallBanner.jpg" alt="Søderberg indretning" />
</div>
<ul id="menu">
        <li><a href="index.html" target="_self">Forside</a></li>
        <li><a href="om.html" target="_self">Om mig</a></li>
        <li><a href="uddannelse.html" target="_self">Uddannelse</a></li>
        <li><a href="galleri.html" target="_self">Galleri</a></li>
        <li><a href="projekter.html" target="_self">Projekter</a></li>
        <li><a href="ydelser.html" target="_self">Ydelser</a></li>
        <li><a href="links.html" target="_self">Links</a></li>
        <li><a href="kontakt.php" target="_self">Kontakt</a></li>
</ul>
<div id="sidebar">
<center><img src="images/1.gif" alt="Kartell lampe" /></center>

</div>

<div id="indhold">
<h1>Tak for din henvendelse, jeg vender tilbage til dig hurtigst muligt!</h1>




</div>
<div id="footer">
<p align="center">Design af <a href="http://soederberg-webdesign.dk">soederberg-webdesign</a> Copyright &copy; Lone S&#65533;derberg</p>

</div>

</div>
</body>
</html>
EOD;
echo "$theResults";

?>


Hvad gør jeg galt???
Avatar billede jakobdo Ekspert
18. august 2008 - 12:32 #1
Du bør overveje at bruge: phpmailer() eller swiftmailer()
De kan håndtere ÆØÅ
Avatar billede jakobdo Ekspert
18. august 2008 - 12:39 #2
Og samtidig skal du huske at bruge samme charset hele vejen igennem din kode.
Nu bruger du htmlentities().
Avatar billede viggosmor Nybegynder
18. august 2008 - 12:46 #3
Ja, gør jeg ikke det?
Hvad er htmlentites()?
Jeg er ikke så god til php..
Jeg har genbrugt koden fra vores eksamensprojekt, og det er en anden der har lavet koden....
Avatar billede jakobdo Ekspert
18. august 2008 - 13:15 #4
Prøv at kig på phpmailer()
Det er en klasse som kan bruges til at sende emails.
Avatar billede viggosmor Nybegynder
18. august 2008 - 13:29 #5
Ok, men kan jeg ikke få det til at fungere med det jeg allerede har, eller er det megte nemmere med phpmailer?
Har nu prøvet at søge på det men blev ikke så meget klogere...
Det er en fil jeg skal downloade?
Men hvorfra...?
Avatar billede jakobdo Ekspert
18. august 2008 - 13:40 #6
Prøv at hent phpmailer herfra: http://sourceforge.net/project/showfiles.php?group_id=26031&package_id=252700/&abmode=1

Og test så denne kode:

<?php
$emailSubject = 'Feedback Søderberg indretning';
$WebMaster = 'lone71@gmail.com';
   
$emailField = $_POST['email'];
$nameField = $_POST['name'];
$budgetField = $_POST['budget'];
$travelersField = $_POST['travelers'];
$commentsField = $_POST['comments'];
 
$body = <<<EOD
<br><hr><br>
Email: $emailField <br>
Name: $nameField <br>
Favourite Gallery: $budgetField <br>
Reached site through: $travelersField <br>
Comments: $commentsField <br>
EOD;

require_once('class.phpmailer.php');

$mail->From    = $emailField
$mail->FromName = "Søderberg";

$mail->Body    = $body;
$mail->AddAddress($WebMaster, "Viggosmor");

if(!$mail->Send())
    exit('Email blev ikke afsendt');

$theResults = <<<EOD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  <title>Søderberg indretning</title>
  <meta http-equiv="Content-Language" content="en-us" />
 
    <meta http-equiv="imagetoolbar" content="no" />
    <meta name="MSSmartTagsPreventParsing" content="true" />
 
    <meta name="description" content="Boligstylist studerende Lone S&#65533;derberg" />
    <meta name="keywords" content="boligstylist, indretning, boligstyling" />
 
    <meta name="author" content="http://soederberg-webdesign.dk" />
 
    <style type="text/css" media="all">
    @import "indretning.css";
    </style>
</head>

<body>
<div id="content">
<div id="banner">
<img src="images/smallBanner.jpg" alt="Søderberg indretning" />
</div>
<ul id="menu">
        <li><a href="index.html" target="_self">Forside</a></li>
        <li><a href="om.html" target="_self">Om mig</a></li>
        <li><a href="uddannelse.html" target="_self">Uddannelse</a></li>
        <li><a href="galleri.html" target="_self">Galleri</a></li>
        <li><a href="projekter.html" target="_self">Projekter</a></li>
        <li><a href="ydelser.html" target="_self">Ydelser</a></li>
        <li><a href="links.html" target="_self">Links</a></li>
        <li><a href="kontakt.php" target="_self">Kontakt</a></li>
</ul>
<div id="sidebar">
<center><img src="images/1.gif" alt="Kartell lampe" /></center>

</div>

<div id="indhold">
<h1>Tak for din henvendelse, jeg vender tilbage til dig hurtigst muligt!</h1>




</div>
<div id="footer">
<p align="center">Design af <a href="http://soederberg-webdesign.dk">soederberg-webdesign</a> Copyright &copy; Lone S&#65533;derberg</p>

</div>

</div>
</body>
</html>
EOD;
echo "$theResults";

?>
Avatar billede viggosmor Nybegynder
18. august 2008 - 13:44 #7
Ok, var faktisk inde på den side...

Er det følgende fil jeg skal downloade?

phpMailer_v2.2.1_.zip

Er nervøs for at gøre noget forkert...
Avatar billede w13 Novice
18. august 2008 - 13:45 #8
Jeg tror ikke rigtig, der er noget der kan gå galt. =) Ikke værre end at man bare prøver igen i hvert fald.
Avatar billede viggosmor Nybegynder
18. august 2008 - 13:45 #9
Og så skal class.phpmailer.php uploades til samme mappe som min egen php fil?
Avatar billede w13 Novice
18. august 2008 - 13:46 #10
Ja.
Avatar billede viggosmor Nybegynder
18. august 2008 - 13:47 #11
He he, w13 nej det er da rigtigt nok...
Jeg prøver at downloade ovenstående fil og så uploade class.phpmailer.php til min mappe
Avatar billede w13 Novice
18. august 2008 - 13:47 #12
Denne linje henter filen class.phpmailer.php:

require_once('class.phpmailer.php');

Og som du kan se, ligger den ikke inde i nogen undermapper eller lign.
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:00 #13
Nej jeg har lavet en testside, som kan ses her:

http://mopse-info.dk/test/kontakt.php

Men når jeg forsøger at sende en mail, kommer der en fejlmeddelse:
Parse error: syntax error, unexpected T_VARIABLE in /hsphere/local/home/lone1971/mopse-info.dk/test/contactform.php on line 23
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:04 #14
selvfølgelig ligger phpmailer filen i test mappens rod
Avatar billede w13 Novice
18. august 2008 - 14:05 #15
Hvordan ser din linje 23 ud?
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:09 #16
$mail->FromName = "Søderberg";
Avatar billede w13 Novice
18. august 2008 - 14:10 #17
Den tæller nok lidt forkert. Prøv at rette:

$mail->From    = $emailField

til:

$mail->From    = $emailField."";
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:13 #18
Så fik jeg følgende fejl:

Fatal error: Call to undefined method stdClass::AddAddress() in /hsphere/local/home/lone1971/mopse-info.dk/test/contactform.php on line 26
Avatar billede jakobdo Ekspert
18. august 2008 - 14:16 #19
$mail->From    = $emailField
skal vel bare være:
$mail->From    = $emailField;
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:21 #20
Der får jeg samme fejl...
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:22 #21
Tusin tak for jeres hjælp, jeg er meget taknemmelig....
Avatar billede w13 Novice
18. august 2008 - 14:26 #22
Ja, Jakobdo's forslag er rigtigere end mit, så brug det.

Ang. den nye fejl, så lyder det som om AddAddress-funktionen mangler i din class-fil. Lyder lidt mærkeligt.
Avatar billede jakobdo Ekspert
18. august 2008 - 14:28 #23
Det er stadig kun fejlen med AddAddress() som driller ikke ?
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:29 #24
Altså jeg har kun uploaded class.phpmailer.php og ingen andre filer..
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:30 #25
Jo det er den eneste fejlmeddelse jeg får....
Avatar billede jakobdo Ekspert
18. august 2008 - 14:49 #26
Vis lige den fulde linje omkring linje 26
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:52 #27
$mail->AddAddress($WebMaster, "Viggosmor");
Avatar billede viggosmor Nybegynder
18. august 2008 - 14:56 #28
Du mente måske flere linjer?

require_once('class.phpmailer.php');

$mail->From    = $emailField;
$mail->FromName = "Søderberg";

$mail->Body    = $body;
$mail->AddAddress($WebMaster, "Viggosmor");

if(!$mail->Send())
    exit('Email blev ikke afsendt');
Avatar billede jakobdo Ekspert
18. august 2008 - 15:08 #29
Kører du PHP4 eller PHP5 ?
Avatar billede jakobdo Ekspert
18. august 2008 - 15:10 #30
Haha, jeg glemte noget...
Tilføj lige:

require_once('class.phpmailer.php');

$mail = new PHPMailer(); <------------

$mail->From    = $emailField;
$mail->FromName = "Søderberg";

$mail->Body    = $body;
$mail->AddAddress($WebMaster, "Viggosmor");
Avatar billede w13 Novice
18. august 2008 - 15:12 #31
Haha! :D Cool..
Avatar billede viggosmor Nybegynder
18. august 2008 - 15:23 #32
Perfekt....!!!!
Jeg modtager nu mails...

Men de er det evindelige problem, mailen vil ikke vise æ ø å...

Har prøvet at få hjælp til det et andet sted på eksperten men uden held....
Avatar billede w13 Novice
18. august 2008 - 15:29 #33
Tjaeh, nu kender jeg ikke denne PHP-klasse, men det kan da være, du bare kan åbne class.phpmailer.php og rette linjen:

public $CharSet          = 'iso-8859-1';

til:

public $CharSet          = 'utf-8';
Avatar billede w13 Novice
18. august 2008 - 15:30 #34
Jeg synes ikke umiddelbart, jeg finder nogen charset/encoding-metode indbygget.
Avatar billede jakobdo Ekspert
18. august 2008 - 15:30 #35
Men du skal også sætte korrekt charset på den side hvor data sendes fra.
Avatar billede viggosmor Nybegynder
18. august 2008 - 15:33 #36
Ja jeg er næsten klar over det må have noget at gøre med charsettet, men på kontakt.php er det følgende:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
Avatar billede w13 Novice
18. august 2008 - 15:35 #37
Og er siden også encodet til UTF-8? (Åbn i Notesblok, klik "Gem som", aflæs "Encoding".)
Avatar billede viggosmor Nybegynder
18. august 2008 - 15:38 #38
Nårjeg åbner i notesblok, og vælger gem som, så står der UTF-8 i :
Kodning..
Og dette både for contactform.php og kontakt.php
Avatar billede w13 Novice
18. august 2008 - 15:40 #39
Hmm. Så er det rigtigt nok. Prøvet mit forslag 15:29:50?
Avatar billede jakobdo Ekspert
18. august 2008 - 15:41 #40
Har du ikke et link til din side ?
Avatar billede jakobdo Ekspert
18. august 2008 - 15:41 #41
Har set linket i toppen, det ser ud til at være fint fint som UTF-8.
Avatar billede jakobdo Ekspert
18. august 2008 - 15:43 #42
Som standard bruger phpmailer iso8859.
Så hvad hvis du tager indholdet der skal sendes som email og smider det igennem:

$nyt_indhold = utf8_decode($indhold);
Avatar billede viggosmor Nybegynder
18. august 2008 - 15:46 #43
Jaaaaaaaaaaaaaaaaaaaaaaaaaaa, nu fungerer det!!!!

Takker for jers hjælp!!!!

Det er super, nu kan jeg implemntere det på mit eksamensprojekt også...
Samt er ved at lave en hjemmeside for en forfatter, hvor jeg også kan bruge det..

Det er bare super det her...

Vil i dele i porten med hensyn til point?

TUSIND TAK!!!
Avatar billede viggosmor Nybegynder
18. august 2008 - 15:47 #44
jakodo det hjalp bare at rette det som w13 sagde i claas.phpmailer.php filen
Avatar billede w13 Novice
18. august 2008 - 15:51 #45
Jeg deler gerne. =)
Avatar billede viggosmor Nybegynder
18. august 2008 - 15:53 #46
Jeg ved ikke hvordan man udedeler point til 2 skal begge give et svar først?
Avatar billede jakobdo Ekspert
18. august 2008 - 15:53 #47
Denne gang må jeg vel gerne få lidt point for indsatsen.
Så du får et svar. :o)
Avatar billede w13 Novice
18. august 2008 - 15:55 #48
Ja, nu skulle du vist kunne se en knap nederst på denne side, som hedder "Avanceret" eller noget i den stil.
Avatar billede viggosmor Nybegynder
18. august 2008 - 16:05 #49
Ja tak så er pointene delt ligeligt ud...

Jo jakobdo...du kan tro du må få point...

I skal begeg have tusind mange tak, det kan betyde at jeg rent faktisk består min eksamen, og med en rimelig karalter...

Så i har gjort et kæmpe arbejde...

TAK begge 2 !!!
Avatar billede w13 Novice
18. august 2008 - 16:09 #50
Så lidt! Og tak for point! :)
Avatar billede viggosmor Nybegynder
18. august 2008 - 16:29 #51
Hmmm, ja træerne vokser ikke ind i himlen, for har nu implementeret det på forfatterens hjemmeside:

http://soederberg-webdesign.dk/astrid2/kontakt.php

Og når jeg sender mailen afsted får jeg følgende fejl:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /hsphere/local/home/viggosmo/soederberg-webdesign.dk/astrid2/class.phpmailer.php on line 45

Sorry, men kan simpelthen ikke gennemskue hvad det drejer sig om, jeg har følgende stående i linje 45 i class.phpmailer.php:

  /**
  * Email priority (1 = High, 3 = Normal, 5 = low).
  * @var int
  */
  public $Priority          = 3;

Jeg vil godt give nogen flere point for hjælp her, tør ikke rigtigt bruge det på mit projekt før end jegved at detvirker....
Avatar billede jakobdo Ekspert
18. august 2008 - 17:23 #52
Du har jo rettet:

public $CharSet          = 'utf-8';

Hvordan ser det ud nu?
Og skal det mon ikke rettes sådan her:

$mail->CharSet = 'uft-8';

altså efter:

$mail = new PHPMailer();
Avatar billede jakobdo Ekspert
18. august 2008 - 17:24 #53
Og takker for point.
Avatar billede viggosmor Nybegynder
18. august 2008 - 17:31 #54
Det forstod jeg ikke, skal der stå følgende:
$mail->CharSet = 'uft-8';
i contactform.php
efter
$mail = new PHPMailer();

Det står der jo ikke i den forrige contact.php, den der fungerer...


class.phpmailer.php er den samme som den jeg brugte i det forrige...
Avatar billede jakobdo Ekspert
18. august 2008 - 17:59 #55
Du må have rettet noget...
Hvad version af php bruger din forfatter?
Avatar billede viggosmor Nybegynder
18. august 2008 - 18:02 #56
Siden ligger indtil videre på mit eget domæne, som også ligger på surftown.
Det gør mopse-info.dk også..
Så det burde vel være samme version, nemlig 5?
Avatar billede jakobdo Ekspert
18. august 2008 - 18:05 #57
Er du sikker?
prøv at lav en fil indeholdende:

<?php
phpinfo();
?>
Avatar billede viggosmor Nybegynder
18. august 2008 - 18:19 #58
Nej du har vist ret, det ser ud til at soederberg-webdesign kører på version 4?

http://soederberg-webdesign.dk/astrid2/info.php
Avatar billede viggosmor Nybegynder
18. august 2008 - 18:22 #59
Skal jeg så bare downloade class.phpmailer.php til version 4?
Avatar billede jakobdo Ekspert
18. august 2008 - 18:29 #60
Tjek. :o)
Avatar billede viggosmor Nybegynder
18. august 2008 - 18:31 #61
Ok, det gjorde jeg og det fungerer vist, skal bare lige have en tilbagemelding fra astrid, om mailen gik igennem og at æ ø å vises korrekt...

Tusind tak igen igen...

Vil du ikke have lidt flee point for al den tid du har brugt på mig?
Avatar billede jakobdo Ekspert
18. august 2008 - 18:43 #62
Ikke for min skyld.
Det er på husets denne gang. :o)
Avatar billede viggosmor Nybegynder
18. august 2008 - 20:33 #63
Oki, så hopper vi den over... :)

Ville bare informerer om, at jeg har fået det til at virke på mit eksamens projekt også, så nu er jeg rigtig glad...

Nu vil jegbare sætte mig ind i hvad class.phpmailer.php egentligt er for noget... så jeg kan snakke om det til eksamen... :)

Takker igen igen...
Avatar billede jakobdo Ekspert
18. august 2008 - 21:17 #64
class.phpmailer.php
er en klasse, som indeholder en masse smarte ting, som skal bruges i forbindelse med afsendelse af en email.
Vedhæftede filer, flere modtagere, plaintextog/eller html body, inline attachment osv...
Avatar billede viggosmor Nybegynder
19. august 2008 - 11:43 #65
Ok, så blev jeg det klogere... det må jeg lige notere mig...
Avatar billede jakobdo Ekspert
19. august 2008 - 11:55 #66
som skal bruges
Der skulle stå:
som kan bruges
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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