FAQ |
Kalender |
![]() |
#11 | |||
|
||||
Supermoderator
|
||||
![]() |
![]() |
![]() |
#12 | ||
|
|||
Klarade millennium-buggen
|
PHPMailer, fast det blir nog för svårt. Fixat säkerhetshålen ännu?
|
||
![]() |
![]() |
![]() |
#13 | ||
|
|||
Supermoderator
|
Citat:
To: adressen dit mailet ska skickas Subject: Titel / rubrik för mailet Body: Meddelandet (har du en massa variabler enligt ditt exempel så måste du sätta ihop allt till en variabel som innehåller HELA meddelandet) Headers: från-adress, teckenkodning etc. (se beskrivning av mail-funktionen i länk ovan) Som flera redan påpekat så kan vem som helst i nuläget använda ditt kontaktformulär för att skicka spam till hela världen om de så önskar, med de begränsningar eventuellt webbhotell har.
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#14 | ||
|
|||
Nykomling
|
Citat:
Kod:
if (mail($to, "From: $name <$from>", "$message, $persnr, $adress, $postnr, $ort, $from, $tel, $bild, $antal, $format, $agree")) Kod:
if (mail($to, "HEJSAN!!!!!11 från $name <$from>", "$message, $persnr, $adress, $postnr, $ort, $from, $tel, $bild, $antal, $format, $agree"), "From: En Apa i Pyjamas!") |
||
![]() |
![]() |
![]() |
#15 | |||
|
||||
Klarade millennium-buggen
|
Tack för alla svar, nu fungerar det korrekt. Ni som påpekar säkerhetshålen skulle tillföra så mycket mer genom att komma med exempel på hur man löser det istället för att förlöjliga det. några av oss även här haft annat för sig i sin uppväxt än att sitta 20 timmar framför burken varje dag
![]() |
|||
![]() |
![]() |
![]() |
#16 | |||
|
||||
Medlem
|
Det jag skulle göra är att skriva skriptet på ett något annat sätt.
Kod:
<?php // http://www.phpit.net/code/valid-email/ function valid_email($email) { // First, we check that there's one @ symbol, and that the lengths are right if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { // Email invalid because wrong number of characters in one section, or wrong number of @ symbols. return false; } // Split it into sections to make life easier $email_array = explode("@", $email); $local_array = explode(".", $email_array[0]); for ($i = 0; $i < sizeof($local_array); $i++) { if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\|\")]{0,62}\"))$", $local_array[$i])) { return false; } } if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name $domain_array = explode(".", $email_array[1]); if (sizeof($domain_array) < 2) { return false; // Not enough parts to domain } for ($i = 0; $i < sizeof($domain_array); $i++) { if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) { return false; } } } return true; } // liten egen hjälpfunktion function pvar($var) { $got = $_POST[$var]; // jag använder htmlentities som man kan läsa om på http://se2.php.net/htmlentities $got = htmlentities($got); // alternativt borde man kunna använda något av följande // http://se.php.net/manual/en/function.strip-tags.php // http://se.php.net/manual/en/function.htmlspecialchars-decode.php // http://se.php.net/manual/en/function.addslashes.php return $got; } $to = "[email protected]"; $subj = "Hemsidesinfo"; $from = pvar("email"); $fname = pvar("name"); $msg = "<b>Personnummer:</b> ". pvar("persnr")."\n". "<b>Namn:</b> ". pvar("name")."\n". "<b>Adress:</b> ". pvar("adress")."\n". "<b>Postnummer:</b> ". pvar("postnr")."\n". "<b>Ort:</b> ". pvar("ort")."\n". "<b>Epost:</b> ". pvar("email")."\n". "<b>Telefon:</b> ". pvar("tel")."\n". "<b>Bild:</b> ". pvar("bild")."\n". "<b>Antal:</b> ". pvar("antal")."\n". "<b>Format:</b> ". pvar("format")."\n". "<b>Meddelande:</b> ". pvar("message")."\n". "<b>Godkänd:</b> ". pvar("agree")."\n". "\n"; if (!valid_email($from)) echo "<h2>Felaktigt formulärdata.</h2>Kontrollera att uppgifterna är korrekt ifyllda."; elseif (mail($to, $subj, wordwrap(strip_tags($msg),70), "From: \"$fname\" <$from>") echo nl2br("<h2>Din beställning har nu skickats till oss! Kopian på beställningen ser du nedan, är det något som inte stämmer, kontakta oss snarast!</h2>\n\n$msg"); else echo "<h2>Det gick inte att skicka ditt meddelande.</h2> Var god försök senare."; ?>
Om du använder dig av UNIX-server hos oss eller någon annan bör du dessutom lägga till ett fjärde fält till mail()-funktionen: Kod:
elseif (mail($to, $subj, strip_tags($msg), "From: \"$fname\" <$from>","-f$from") |
|||
![]() |
![]() |
![]() |
#17 | ||
|
|||
Supermoderator
|
Citat:
Till Emils kod kan tilläggas att teckenkodning bör skickas med till htmlentities om man inte använder ISO-8859-1 (förslagsvis UTF-8). Htmlentities är inte helt nödvändig dock utan det går som han antyder att lösa på andra sätt. För övrigt så säger väl ztream det nedan som flera hintat om på mindre väl valda sätt.
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#18 | |||
|
||||
Supermoderator
|
Poängen som många gör är nog att oavsett hur lat man är, så borde man läsa manualen innan man ber professionella webmasters lösa ens problem gratis.
Citat:
|
|||
![]() |
![]() |
![]() |
#19 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
Även om det inte var illa menat så låter det inte vidare trevligt, hade jag kunnat PHP hade jag nog gjort allt annat än hjälpt dig nu. edit: typo |
|||
![]() |
![]() |
![]() |
#20 | |||
|
||||
Bara ett inlägg till!
|
Førvisso håller jag med dig davve i att vill man ge kritik kan det ju också høra till god sed att åtminstone ge dig ett tips om hur du går vidare (annars ær man væl bara elak?
![]() Sen kommentarer om hur mycket folk hær inne har spenderat framfør datorn i barndomsdagar ær ju oerhørt onødigt, speciellt då du vænder dig till dessa personer før hjælp? Vem tror du vill hjælpa dig næsta gång ? Edit: Type-o |
|||
![]() |
![]() |
Svara |
|
|