Svenska tecken i PHP-formulär?

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1

Det här är lite pinsamt att fråga för jag gissar att det är relativt simpelt. Jag är ingen webbnisse så jag har tyvärr ingen egen kunskap och den person som gjorde formuläret från början finns inte på plats längre.

Hursomhelst. Det finns ett forumlär på hemsidan gjort i PHP. Man fyller i ett par fält och klickar sedan på knappen "skicka" och ett mail går iväg automatiskt

Nu har något hänt så att alla å, ä och ö som fylls i webbformuläret blir konstiga tecken. Vad som har hänt vet jag inte för inga förändringar har gjorts så vitt jag vet.

Så nu behöver jag lite hjälp om hur jag ska komma tillrätta med det här problemet.

Servern är en Mac OS X 10.5 Leopard Server.

Min gissning är att det är något med charset som behöver justeras?

Är det något i den här kodsnutten som jag bör fixa/ändra? Eller ska jag leta efter något annat?

<html>

	<head>
	<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<meta name="generator" content="Adobe GoLive 4">
		<title>Välkommen</title>
	</head>

	<body bgcolor="white" link="#8b0000" vlink="#8b0000" text="#8b0000" alink="#8b0000">
	
<?
error_reporting(E_ALL); 
ini_set("display_errors", "1");
if (isset($_POST['submit'])) // Om man trycker pŒ knappen sŒ...
{
	if (isset($_POST['intresse1'])){$specialintresse1 = "3-5 år (förskolan)\n";}else{$specialintresse1 = "";}
	if (isset($_POST['intresse2'])){$specialintresse2 = "6-9 år (låg)\n";}else{$specialintresse2 = "";}
	if (isset($_POST['intresse3'])){$specialintresse3 = "10-15 år (mellan-hög)\n";}else{$specialintresse3 = "";}
	if (isset($_POST['intresse4'])){$specialintresse4 = "T / Media -didaktik\n";}else{$specialintresse4 = "";}
	if (isset($_POST['intresse5'])){$specialintresse5 = "Föräldraprogram\n";}else{$specialintresse5 = "";}
	if (isset($_POST['intresse6'])){$specialintresse6 = "Fritidsverksamhet\n";}else{$specialintresse6 = "";}
	if (isset($_POST['intresse7'])){$specialintresse7 = "Lemshagas vision\n";}else{$specialintresse7 = "";}
	if (isset($_POST['intresse8'])){$specialintresse8 = "Temabaserat lärande\n";}else{$specialintresse8 = "";}
	if (!isset($_POST['intresse1']) && !isset($_POST['intresse2']) && !isset($_POST['intresse3']) && !isset($_POST['intresse4']) && !isset($_POST['intresse5']) && !isset($_POST['intresse6']) && !isset($_POST['intresse7']) && !isset($_POST['intresse8'])){$specialintresse = "Inget specialintresse\n";}else{$specialintresse="";}

	if (isset($_POST['kontakt'])){$kontaktme = "Var god kontakta mig..";}else{$kontaktme = "";}

echo 'Tack för anmälan!<br><br><br>'; // ...ska det skrivas ut att man Šr tacksam šver att nŒgon mailat en 
mail ('emailadressen@xxxxxxx.xx', 'Intresseanmälan', $_POST['bnamn'] . "\n" . $_POST['adress'] . "\n" . $_POST['post'] . "\n" . $_POST['data'] . "\n" . $_POST['telefonnummer'] . "\n" . $_POST['fnamn'] . "\n" . $_POST['from'] . "\n" . $_POST['mailet'] . "\n\n" . $kontaktme, "From: ".$_POST['from']); // Och skicka ivŠg sjŠlva mailet
}
?>
		<div align="left">
			<table width="64" border="0" cellspacing="2" cellpadding="0">
				<tr>
					<td><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular"><b>INTRESSEANMÄLAN</b></font>
						<p></p>
					</td>
				</tr>
				<tr>
					<td><img height="151" width="404" src="intresse.jpg"><p></p></td>
				</tr>
				<tr>
					<td>
						<table>
							<tr>
								<td>
									<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
										
										</font>
										<p><input type="text" size="50" value="Barnets namn" name="bnamn"><br>
											<input type="text" size="50" value="Adress" name="adress"><br>
											<input type="text" size="50" value="Postnummer osv" name="post"><br>
											<input type="text" size="50" value="Födelsedata" name="data"><br>
											<input type="text" size="50" value="Telefonnummer" name="telefonnummer"><br>
											<input type="text" size="50" value="Förälders namn" name="fnamn"><br>
											<input type="text" size="50" value="Din e-mail" name="from"><br>
										</p>
										
										<p><textarea name="mailet" cols="60" rows="15">Meddelande</textarea><br>
											<input type="submit" name="submit" value="Skicka mail" class="submitknapp"></p>
									</form>
								
							
						</table>
					</td>
				</tr>
				<tr>
					<td></td>
				</tr>
			</table>
			<p></p>
			<p></p>
		</div>
		<p>
		<p> 

	</body>

</html>
Ursprungligen av Martin Pettersson:

Det här är lite pinsamt att fråga för jag gissar att det är relativt simpelt. Jag är ingen webbnisse så jag har tyvärr ingen egen kunskap och den person som gjorde formuläret från början finns inte på plats längre.

Hursomhelst. Det finns ett forumlär på hemsidan gjort i PHP. Man fyller i ett par fält och klickar sedan på knappen "skicka" och ett mail går iväg automatiskt

Nu har något hänt så att alla å, ä och ö som fylls i webbformuläret blir konstiga tecken. Vad som har hänt vet jag inte för inga förändringar har gjorts så vitt jag vet.

Så nu behöver jag lite hjälp om hur jag ska komma tillrätta med det här problemet.

Servern är en Mac OS X 10.5 Leopard Server.

Min gissning är att det är något med charset som behöver justeras?

Är det något i den här kodsnutten som jag bör fixa/ändra? Eller ska jag leta efter något annat?

<html>

    <head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive 4">
        <title>Välkommen</title>
    </head>

    <body bgcolor="white" link="#8b0000" vlink="#8b0000" text="#8b0000" alink="#8b0000">
    
<?
error_reporting(E_ALL); 
ini_set("display_errors", "1");
if (isset($_POST['submit'])) // Om man trycker pŒ knappen sŒ...
{
    if (isset($_POST['intresse1'])){$specialintresse1 = "3-5 år (förskolan)\n";}else{$specialintresse1 = "";}
    if (isset($_POST['intresse2'])){$specialintresse2 = "6-9 år (låg)\n";}else{$specialintresse2 = "";}
    if (isset($_POST['intresse3'])){$specialintresse3 = "10-15 år (mellan-hög)\n";}else{$specialintresse3 = "";}
    if (isset($_POST['intresse4'])){$specialintresse4 = "T / Media -didaktik\n";}else{$specialintresse4 = "";}
    if (isset($_POST['intresse5'])){$specialintresse5 = "Föräldraprogram\n";}else{$specialintresse5 = "";}
    if (isset($_POST['intresse6'])){$specialintresse6 = "Fritidsverksamhet\n";}else{$specialintresse6 = "";}
    if (isset($_POST['intresse7'])){$specialintresse7 = "Lemshagas vision\n";}else{$specialintresse7 = "";}
    if (isset($_POST['intresse8'])){$specialintresse8 = "Temabaserat lärande\n";}else{$specialintresse8 = "";}
    if (!isset($_POST['intresse1']) && !isset($_POST['intresse2']) && !isset($_POST['intresse3']) && !isset($_POST['intresse4']) && !isset($_POST['intresse5']) && !isset($_POST['intresse6']) && !isset($_POST['intresse7']) && !isset($_POST['intresse8'])){$specialintresse = "Inget specialintresse\n";}else{$specialintresse="";}

    if (isset($_POST['kontakt'])){$kontaktme = "Var god kontakta mig..";}else{$kontaktme = "";}

echo 'Tack för anmälan!<br><br><br>'; // ...ska det skrivas ut att man Šr tacksam šver att nŒgon mailat en 
mail ('emailadressen@xxxxxxx.xx', 'Intresseanmälan', $_POST['bnamn'] . "\n" . $_POST['adress'] . "\n" . $_POST['post'] . "\n" . $_POST['data'] . "\n" . $_POST['telefonnummer'] . "\n" . $_POST['fnamn'] . "\n" . $_POST['from'] . "\n" . $_POST['mailet'] . "\n\n" . $kontaktme, "From: ".$_POST['from']); // Och skicka ivŠg sjŠlva mailet
}
?>
        <div align="left">
            <table width="64" border="0" cellspacing="2" cellpadding="0">
                <tr>
                    <td><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular"><b>INTRESSEANMÄLAN</b></font>
                        <p></p>
                    </td>
                </tr>
                <tr>
                    <td><img height="151" width="404" src="intresse.jpg"><p></p></td>
                </tr>
                <tr>
                    <td>
                        <table>
                            <tr>
                                <td>
                                    <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
                                        
                                        </font>
                                        <p><input type="text" size="50" value="Barnets namn" name="bnamn"><br>
                                            <input type="text" size="50" value="Adress" name="adress"><br>
                                            <input type="text" size="50" value="Postnummer osv" name="post"><br>
                                            <input type="text" size="50" value="Födelsedata" name="data"><br>
                                            <input type="text" size="50" value="Telefonnummer" name="telefonnummer"><br>
                                            <input type="text" size="50" value="Förälders namn" name="fnamn"><br>
                                            <input type="text" size="50" value="Din e-mail" name="from"><br>
                                        </p>
                                        
                                        <p><textarea name="mailet" cols="60" rows="15">Meddelande</textarea><br>
                                            <input type="submit" name="submit" value="Skicka mail" class="submitknapp"></p>
                                    </form>
                                
                            
                        </table>
                    </td>
                </tr>
                <tr>
                    <td></td>
                </tr>
            </table>
            <p></p>
            <p></p>
        </div>
        <p>
        <p> 

    </body>

</html>

Det du kan göra är att köra utf8_encode($string);
Tror det kan hjälpa dig! Lycka till!

Vågar man fråga var jag bör peta in den strängen för att testa? Som sagt, jag har rätt dålig koll på det här.

Där teckenkodningen smäller.
$minvariabel = utf8_encode($minursprungsvariabel)

Nej, jag går bet på detta. Det var inte så simpelt så att jag själv kunde räkna ut hur man ska göra.

Den som kan och vill hjälpa mig att lösa mitt problem, alternativt återskapa forumuläret från scratch, får gärna fakturera arbetstid för detta. Svara här eller skicka ett PM om du är intresserad. Jag vill hemskt gärna få detta löst så fort det går.

Då var det löst. Ställde en allmän förfrågan på Twitter och hittade en person som var villig att hjälpa till. En konsult-timme senare så var det löst.

1
Bevaka tråden