Kom ihåg mig?
Home Menu

Menu


Något är fel med vad?

 
Ämnesverktyg Visningsalternativ
Oläst 2008-07-14, 17:44 #11
ztreams avatar
ztream ztream är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2005
Inlägg: 2 448
ztream ztream är inte uppkopplad
Supermoderator
ztreams avatar
 
Reg.datum: Jan 2005
Inlägg: 2 448
www.php.net/mail
ztream är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-14, 20:56 #12
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
PHPMailer, fast det blir nog för svårt. Fixat säkerhetshålen ännu?
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-14, 21:24 #13
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by eliasson@Jul 14 2008, 15:37
mail(To, Subject, Body, Headers);
Det som gäller enligt eliassons exempel är:

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
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-15, 00:48 #14
victor- victor- är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2007
Inlägg: 41
victor- victor- är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2007
Inlägg: 41
Citat:
Originally posted by Jonathan P@Jul 14 2008, 16:45
Ändra följande...
Kod:
if (mail($to, $message, $persnr, $adress, $postnr, $ort, $from, $tel, $bild, $antal, $format, $agree ,"From: $name <$from>"))
...till...
Kod:
if (mail($to, "From: $name <$from>", "$message, $persnr, $adress, $postnr, $ort, $from, $tel, $bild, $antal, $format, $agree"))
Ändra följande...
Kod:
if (mail($to, "From: $name <$from>", "$message, $persnr, $adress, $postnr, $ort, $from, $tel, $bild, $antal, $format, $agree"))
...till...
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!")
victor- är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-15, 04:52 #15
Davves avatar
Davve Davve är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 267
Davve Davve är inte uppkopplad
Klarade millennium-buggen
Davves avatar
 
Reg.datum: Feb 2004
Inlägg: 3 267
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 =
Davve är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-15, 10:52 #16
EmilIsbergs avatar
EmilIsberg EmilIsberg är inte uppkopplad
Medlem
 
Reg.datum: Mar 2007
Inlägg: 106
EmilIsberg EmilIsberg är inte uppkopplad
Medlem
EmilIsbergs avatar
 
Reg.datum: Mar 2007
Inlägg: 106
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.";

?>
Jag gjorde följande:
  • "Presonnummer" och "Kompian"
  • Visa samma sak som skickas (bra rekommendation generellt och minskar missförstånd vid felsökning)
  • Få överskådliga variabler
  • Undvik att skriva ut e-postadressen meddelandet skickas till (onödigt för besökaren som skickat formuläret plus att det kan användas för skräppost)
  • Undvik att upprepa kod (enklare att ändra och lägga till om man använder egna hjälpfunktioner)
  • Försök att validera att man faktiskt får något som liknar en e-postadress.
  • Undvik att "lita" på det kunden skickar. (http://blogg.loopia.se/?p=68)
  • Använd example.org (testdomän) istället för adress.se (ägs av PMG Media Group AB)
  • Ange en ärenderad som är specifik för just detta formulär (gör det enklare att särskilja från annan e-post och formulär)
  • Radbryt om rader överstiger 70 tecken (http://se.php.net/manual/en/function.wordwrap.php)

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")
Notera dock att jag inte på något sätt har testat ovanstående skript och att inget ansvar tas för eventuella fel i skriptet.
EmilIsberg är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-15, 12:24 #17
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Davve@Jul 15 2008, 04:52
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 =
Om det är någon som förlöjligar någon så är det du nu.... Jag satt inte mycket vid datorn alls under min uppväxt om det nu har någon betydelse.

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
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-15, 12:27 #18
ztreams avatar
ztream ztream är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2005
Inlägg: 2 448
ztream ztream är inte uppkopplad
Supermoderator
ztreams avatar
 
Reg.datum: Jan 2005
Inlägg: 2 448
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:
Originally posted by Davve@Jul 15 2008, 04:52
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 =
ztream är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-15, 12:29 #19
digis avatar
digi digi är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2004
Inlägg: 1 335
digi digi är inte uppkopplad
Har WN som tidsfördriv
digis avatar
 
Reg.datum: Jul 2004
Inlägg: 1 335
Citat:
Originally posted by Davve@Jul 15 2008, 04:52
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
Tror du inte folk tappar lusten att hjälpa dig när du uttrycker dig sådär?
Ä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
digi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-15, 13:08 #20
FredrikNass avatar
FredrikNas FredrikNas är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Oct 2006
Inlägg: 1 995
FredrikNas FredrikNas är inte uppkopplad
Bara ett inlägg till!
FredrikNass avatar
 
Reg.datum: Oct 2006
Inlägg: 1 995
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? ), (jag tycker absolut inte, under några omstændigheter att folk ska ge dig kod, det lær du dig ingenting av.) Hur har du tænkt kunna koda i php om du inte kan php (och inte tycks villig att læra dig? måste jag också fråga mig? du kan ju inte mena att du ska førlita dig på att andra skriver koden gratis åt dig før att du frågar på wn.se? Vill du jobba i php så finns det vældigt många bra bøcker att læsa jag kan rekomedera dig flera stycken som skulle passa och ge dig en basic insættning i php, som du behøver før att skriva ett mailformulær.

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
FredrikNas är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:40.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017