Euro teken

Status
Niet open voor verdere reacties.

comass

Gebruiker
Lid geworden
19 dec 2000
Berichten
448
Hoi,

Ik krijg geen € euro teken maar dit teken in mijn e-mail â,¬.

Iemand een idee hoe ik dit verander?
Dit is de code van het form, deze moet de waarde als html versturen.

PHP:
$msg_2_poster ="<div style=\"font-family: Arial; font-size:11pt; color:black\"></p><p></p>Geachte ".$_POST['aanhef']." ".$_POST['naam'].",

".$_POST['text1']."".$_POST['text2']."

".$_POST['vraag5']." ".$_POST['onderwerp']."".$_POST['regel6']."".$_POST['vraag1']." ".$_POST['Hosting']."".$_POST['regel6']."".$_POST['vraag2']." ".$_POST['soort']." ".$_POST['regel6']."".$_POST['vraag3']." ".$_POST['bedrijfsnaam']." ".$_POST['regel6']."".$_POST['vraag4']." ".$_POST['kvknummer']."

Gestelde vraag of opmerking:
".$_POST['opmerking']."
 
<b>Afzender:</b>
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']."
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."

".$_POST['text3']."


Met vriendelijke groet,


 </div>
 
Als $msg_2_poster de inhoud van de mail als waarde heeft, zou je dit kunnen doen:

PHP:
$msg_2_poster = htmlentities ( $msg_2_poster );

Die functie vervangt alle special tekens door hun HTML-entities. Het euro teken wordt dan &euro;
 
Welke encoding zet je in de email?

Dat euroteken zit namelijk niet in alle charactersets ;) Ik zou voor alle zekerheid de encoding op UTF-8 zetten, daar zitten nagenoeg alle tekens in.
 
Als je je mail als HTML verstuurt is het het best om het euroteken ook als HTML-entitie mee te sturen. Punt.

Dus je maakt van het euroteken &euro; dat kun je handmatig doen of met de functie htmlentities().
 
Het ligt er volgens mij aan hoe je de mail verstuurd, als html zou ik inderdaad html-entitie gebruiken, gewoon als normale tekst o.i.d. zou het gewoon moeten werken.

Laat het even horen als het werkt en anders moet je a.u.b. ook even de mailfunctie laten zien.
 
Maak van:

PHP:
$msg_2_poster ="<div style=\"font-family: Arial; font-size:11pt; color:black\"></p><p></p>Geachte ".$_POST['aanhef']." ".$_POST['naam'].",
 
".$_POST['text1']."".$_POST['text2']."
 
".$_POST['vraag5']." ".$_POST['onderwerp']."".$_POST['regel6']."".$_POST['vraag1']."".$_POST['regel6']."".$_POST['vraag2']." ".$_POST['soort']." ".$_POST['regel6']."".$_POST['vraag3']." ".$_POST['bedrijfsnaam']." ".$_POST['regel6']."".$_POST['vraag4']." ".$_POST['kvknummer']."
 
Gestelde vraag of opmerking:
".$_POST['opmerking']."
 
<b>Afzender:</b>
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']."
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."
 
".$_POST['text3']."
 
 
Met vriendelijke groet,
 
 
  
</div>
 
".$_POST['var_name'];

(regel 128 t/m 153)

eens:

PHP:
$msg_2_poster ="<div style=\"font-family: Arial; font-size:11pt; color:black\"></p><p></p>Geachte ".$_POST['aanhef']." ".$_POST['naam'].",
 
".$_POST['text1']."".$_POST['text2']."
 
".$_POST['vraag5']." ".$_POST['onderwerp']."".$_POST['regel6']."".$_POST['vraag1']."".$_POST['regel6']."".$_POST['vraag2']." ".$_POST['soort']." ".$_POST['regel6']."".$_POST['vraag3']." ".$_POST['bedrijfsnaam']." ".$_POST['regel6']."".$_POST['vraag4']." ".$_POST['kvknummer']."
 
Gestelde vraag of opmerking:
". htmlentities ( $_POST['opmerking'] ) ."
 
<b>Afzender:</b>
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']."
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."
 
".$_POST['text3']."
 
 
Met vriendelijke groet,
 
 
  
</div>
 
".$_POST['var_name'];

Het verschil is hier regel 8.

Je moet de htmlentities over de ingezonden opmerking halen, niet over de hele inhoud van de mail. Mijn fout.
 
Staat het euroteken dat je ingeeft dan wel in het veld opmerking?

Geef anders even aan in welk veld het staat. Als je zelf een klein beetje moeite doet en wat meer informatie geeft, dan kunnen wij je ook beter helpen.
 
€ (alt0128) neemt die niet over dit wordt vaker gebruikt dan &euro;

&euro; geeft die wel weer, ook zonder de aanpassing in regel 8

PHP:
Gestelde vraag of opmerking:
". htmlentities ( $_POST['opmerking'] ) ."

Vanuit een drop down het maakt niet uit of ik ALT 018 of &euro; gebruik
PHP:
<p><select name="soort" size="1">
    <option value="A € 125,00">A € 125,00</option>
    <option value="B € 150,00">B € 150,00</option>
    </select></p>

Geeft die geen van beiden weer, noch in de oude noch in de aangepaste versie.

Aangezien die het in een blanco pagina zonder template wel werkte, dacht ik dat het aan alle <div> opmaak zou liggen
 
De opmaak van je code is ook op z'n minst zeer slordig te noemen. Ik zal er nog eens even naar kijken en ik zal zo het resultaat posten.
 
Ik heb toch maar besloten om niet je oude code te gaan refactoren. Dat is de moeite niet waard. Als ik jou was zou ik het opnieuw netjes schrijven, maar dat doet er nu even niet toe.

Wat misschien het makkelijkst is:

Ergens boven de code van je mail (dus voor je de variabele $msg_2_poster / $msg_2_admin maakt, handigst is gewoon meteen na het punt waar je controleert of het formulier verstuurd is) zet je dit:

PHP:
<?php
  $_POST = array_map ( $_POST, 'htmlentities' );
?>
 
Hoi,

Het maakt niet uit waar ik dit in de pagina zet, maar ik krijg steeds een blanco pagina te zien.
PHP:
<?php
  $_POST = array_map ( $_POST, 'htmlentities' );
?>
 
Het doel van die pagina is toch ook dat ie je een mail verstuurd, niet dat er iets getoond wordt? Volgens je openingspost was het de bedoeling dat een euroteken in de mail wordt weergegeven.

Dat zou nu wel moeten gebeuren. Verder is er toch niets veranderd? Neem gewoon je originele code (die werkt neem ik aan, afgezien van het feit dat het euroteken vreemd wordt weergegeven) en zet ergens voordat je de mails begint te maken het stukje code dat ik je net gaf.
 
Hoi,

Je krijgt in deze pagina een bevestiging te zien dat het bericht verstuurd is.


Code:
Geachte heer a,

Uw bericht is verzonden, hartelijk dank hiervoor.
U ontvangt per email een kopie van het door u ingevulde formulier.

Zodra ik dit ergens er inplak komt er een witte pagina, en wordt er geen mail verstuurd.

<?php
$_POST = array_map ( $_POST, 'htmlentities' );
?>
 
Dan heb je je error_reporting niet aan staan.

Je zou die namelijk wel krijgen. Het moet zijn:

PHP:
<?php
  $_POST = array_map ( 'htmlentities', $_POST );
?>
 
Hoi,

Sorry, maar het werkt niet.

PHP:
<?php
  $_POST = array_map ( 'htmlentities', $_POST );
?>

Het bedankje wordt niet zichtbaar en er wordt geen mail verstuurd.
 
Zet eens helemaal bovenaan je bestand:

PHP:
<?php
  error_reporting(E_ALL);
  ini_set("display_errors", 1); 
?>
 
Hoi,

Op gelost, dit was het probleem.

PHP:
$headers .= 'Content-type: text/html; charset=iso-8859-1' ."\r\n"

Veranderd in
PHP:
$headers .= 'Content-type: text/html; charset=utf-8' ."\r\n";

Bedankt voor het helpen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan