Avatar billede k.birk Nybegynder
09. juli 2005 - 14:59 Der er 14 kommentarer

Den mærkeligeste PHP(mail) fejl.. Hjælp..

Jeg har et meget mærkeligt problem:
Jeg har lavet et lille bestillingsystem, hvor et ved afslutningen skal der sendes en automatisk email med info om varerne og kunden.
Jeg opbygger i min kode, et HTML indhold($mail_content) til emailen som skal sendes, og sender den således -> mail("adresse@hotmail.com", "Bestilling", $mail_content, "Content-Type: text/html; charset=iso-8859-15");

Problemet er følgende:
Når mailen kommer frem, er der et eller andet sted kommet et '!' ind i koden. Det er aldrigt det samme sted, og nogen gange ser man det andre gange ikke, alt efter hvor i HTML'en det er kastet ind.
Nogen som kan hjælpe.. Please..
Mvh. Kasper Birk
Avatar billede hassehansen Nybegynder
09. juli 2005 - 15:05 #1
Kender ikke iso-8859-15 jeg plejer at bruge iso-8859-1.

Så måske iso-8859-15 er et fremmed tegnsæt som gør at ! tegnetfremkommer hvor der burde være et andet tegn ?

blot en tanke
Avatar billede k.birk Nybegynder
09. juli 2005 - 15:09 #2
Meget gog tanke.. Har lige testet det men får den stadig ind i kode.. Det er altid kun 1 der bliver sat ind, aldrig flere..
Avatar billede hassehansen Nybegynder
09. juli 2005 - 15:10 #3
kan du vise et eks. ? ....
Avatar billede k.birk Nybegynder
09. juli 2005 - 15:11 #4
Jo 2 sek.. Vil du se HTML outputtet.?
Avatar billede k.birk Nybegynder
09. juli 2005 - 15:17 #5
Her har jeg klippet områderne ud hvor de er indsat..

Eks 1:
<TD align="left" width="200"!
>Levering</TD>

Eks 2:
<TD alig!
n="right" width="200"><b>55</b></TD>
Avatar billede k.birk Nybegynder
09. juli 2005 - 15:18 #6
Funktionen hvor jeg opbygger mit HTML udput..   

function print_order_page($editable){   
        dbopen();
        $resultat = mysql_query("SELECT country_shipping_price FROM info_country WHERE country_id = '$this->owner_country'");
        dbclose();
        $data = mysql_fetch_array($resultat);

        $count = 0;

        $html_output[$count++] = '<div class="table_border" style="border-top-width:1px;">';
        $html_output[$count++] = '    <TABLE class="text" width="400">';
        $html_output[$count++] = '    <TR>';
        $html_output[$count++] = '        <TD width="200"><b>Vare</b></TD>';
        $html_output[$count++] = '        <TD width="50"><b>Antal</b></TD>';
        $html_output[$count++] = '        <TD width="50"><b>Pris</b></TD>';
        $html_output[$count++] = '        <TD width="100"><b>Total</b></TD>';
        $html_output[$count++] = '    </TR>';
        $html_output[$count++] = '    </TABLE>';
        $html_output[$count++] = '</div>';
        $html_output[$count++] = '<div class="table_border">';
        $html_output[$count++] = '    <TABLE class="text" width="400">';
        foreach ($this->items as $key => $value) {
           
            if($editable && $value == 0){
                continue;
            }
           
            if($value == 0){
                $zeroStyle='style="color: #C9ECF4;"';
            }else{
                $zeroStyle='';
            }
           
            if($editable){
                $editbox = '<a '.$zeroStyle.' href="'.$ftp_self.'?page_id=content_dk_order_page&add_item='.$key.'&item_amount=1"><b>+</b></a> <a '.$zeroStyle.'  href="'.$ftp_self.'?page_id=content_dk_order_page&add_item='.$key.'&item_amount=-1"><b>-</b></a>';
            }else{
               
            }
            $total_price = $total_price + $this->get_item_price($key, $value);
           
            $html_output[$count++] = '    <TR '.$zeroStyle.'>';
            $html_output[$count++] = '        <TD width="200">'.$this->get_item_name($key).'</TD>';
            $html_output[$count++] = '        <TD width="50">'.$value.' '.$editbox.'</TD>';
            $html_output[$count++] = '        <TD width="50">'.$this->get_item_price($key, 1).'</TD>';
            $html_output[$count++] = '        <TD width="100">'.$this->get_item_price($key, $value).'</TD>';
            $html_output[$count++] = '    </TR>';
        }
       
       
        $html_output[$count++] = '    </TABLE>';
        $html_output[$count++] = '</div>';
        $html_output[$count++] = '<div  class="table_border">';
        $html_output[$count++] = '    <TABLE class="text" width="400">';
        $html_output[$count++] = '    <TR>';
        $html_output[$count++] = '        <TD align="left" width="200">Levering</TD>';
        $html_output[$count++] = '        <TD align="right" width="200">'.$data['country_shipping_price'].'</TD>';
        $html_output[$count++] = '    </TR>';
        $html_output[$count++] = '    <TR>';
        $html_output[$count++] = '        <TD align="left" width="200"><b>Total</b></TD>';
        $html_output[$count++] = '        <TD align="right" width="200"><b>'.($total_price + $data['country_shipping_price']).'</b></TD>';
        $html_output[$count++] = '    </TR>';
        $html_output[$count++] = '    </TABLE>';
        $html_output[$count++] = '</div>';
       
        return ($html_output);
    }
Avatar billede erikjacobsen Ekspert
09. juli 2005 - 16:45 #7
Jeg har oplevet det samme når det har været en exchange-server, der har modtaget emailen.
Jeg har ingen forklaring, og den løsning jeg ville foreslå, vil du nok ikke høre alligevel.

Men først: modtages dine mails af Exchange?
Avatar billede k.birk Nybegynder
09. juli 2005 - 17:01 #8
Hmm.. De tests jeg har lavet har jeg modtaget på en hotmail adresse.. Kan lige prøve at modtage den på min egen mailserver som ivertifal ikke er..
Vil meget gerne høre din løsning..
Avatar billede k.birk Nybegynder
09. juli 2005 - 17:06 #9
Har lige testet det.. Og der røg stadig et ! med i koden:
<TD align="ri!
ght" width="200"><b>55</b></TD>
Avatar billede erikjacobsen Ekspert
09. juli 2005 - 18:13 #10
Ok, men er der så noget Exchange (eller Windows), der hvor du sender fra.
Det er ikke noget jeg har erfaring med, så det er mest for at være nysgerrig.

Et alternativ, som du ikke vil synes om, er at sende som almindelig tekst, og ikke som HTML-mail.
Avatar billede Slettet bruger
09. juli 2005 - 19:11 #11
hassehansen: iso-8859-15 er næsten magen til iso-8859-1. Den vigtigste forskel er, at den også indeholder €.
Avatar billede k.birk Nybegynder
09. juli 2005 - 20:03 #12
Okay.. Nej det skal helst være html.. Og det burde da også kunne fungere.. Fatter simpelthen ikke hvad det kan være..
Avatar billede erikjacobsen Ekspert
09. juli 2005 - 20:09 #13
Jo, men det er jo ikke umiddelbart din skyld. Det er, så vidt min erfaring rækker, en server undervejs, der ødelægger din mail. Er der noget som helst windows/exchange undervejs i forløbet?
Avatar billede k.birk Nybegynder
09. juli 2005 - 21:11 #14
Jeg ved det ikke rigtigt.. Siden ligger på wannafind webhotel.. Men det kan jo godt være det samme problem, hvis de minder så meget om hindanden..
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