Hallå, sitter och mixtrar med aleborg, mitt webbhotell.
Jag har gjort ett kontakt formulär enligt webbdesignskolans guide.
När jag skriver in detta i medelande:
Märker du att ÅÄÖ är fel?
Så får jag detta:
Märker du att ÅÄÖ är fel?
Sen hammnar alla email från formuläret i skräppost, går det att påverka på något sätt i scriptet eller måste man tillåta adressen i sin egen email client?
Hur menar du ftp:ar upp?
Jag lägger in bägge PHP filerna med aleborgs online filediterare.
Jag antar att deras "filediterare" är nåt slags formlär eller nåt där du klistrar in kod? I så fall kanske du ska fråga dom om den påverkar koden på nåt sätt.
Normalt skickar man annars upp filer via "ftp" som är ett särskilt protokoll just för detta och som kräver särskilda program. Man kan där ställa in så att filerna skickas som t.ex. binära filer eller textfiler. Gör man fel där, så inträffar ofta att icke-engelska tecken blir konstiga.
Dels har du ju filen som processar formuläret, dvs "formmail.php" som ingen kan se hur den ser ut eftersom man måste se originalfilen. Att kolla i en browser visar bara hur den renderar och man ser inte all kod.
Deras "Filhanterare" är inte att man klistrar in koden, det fungerar som FTP, man väljer en mapp, sedan bläddrar man i sin egen dator och laddar upp de filerna.
Nu validerar bägge strict!
Här är formmail.php:
<?php
// anger en variabel som kan lagra de eventuella felaktigheterna
$errors = array();
// kontrollera om ett Namn angivits
if (!$_POST["name"])
$errors[] = "- ditt namn";
// kontrollera om ett Ämne angivits
if (!$_POST["subject"])
$errors[] = "- ärende i ämnesraden";
// kontrollera om en Epostadress angivits
$emailcheck = $_POST["email"];
if(!preg_match("/^[a-z0-9\å\ä\ö._-]+@[a-z0-9\å\ä\ö.-]+\.[a-z]{2,6}$/i", $emailcheck))
$errors[] = "- din epostadress saknas eller är felaktig";
// kontrollera om ett Meddelande angivits
if (!$_POST["message"])
$errors[] = "- inget meddelande har skrivits!";
// om felaktig information finns visas detta meddelande
if (count($errors)>0){
echo "<span class='text'>";
echo "<h2>Följande information måste anges innan du kan skicka formuläret:</h2><br /><br />";
foreach($errors as $fel)
echo "<span class='textbakgrund'> $fel <br /><br /></span>";
echo "<br />Ange den information som saknas och skicka formuläret igen. Tack! <br /><br />";
echo "<a href='javascript:history.go(-1)'>« klicka här för att komma tillbaka till formuläret</a></span>";
}
else {
// formuläret är korrekt ifyllt och informationen bearbetas
$to = "XXXXXX@XXXXX.se";
$from = $_POST["email"];
$subject = $_POST["subject"];
$name = $_POST["name"];
$message = $_POST["message"];
if (mail($to, $subject, $message ,"From: $name <$from>"))
echo nl2br("<span class='text'><h2>Ditt meddelande har skickats!</h2>
<b>ämne:</b> $subject
<b>meddelande:</b>
$message
</span>");
else
echo "Det gick inte att skicka ditt meddelande";
}
?>
Problemet är:
Det som folk skickar genom forumuläret hammnar i min inbox, fast alla ÅÄÖ ser missbildade ut..
Men på webbsidan så ser ju medelandet normalt ut.