Kontaktformular- Spamfælde og kontrol af felter.

Her kan du få hjælp til programmer eller funktioner, der er omtalt på Ludvigs Hjørne.

Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Søren Bojesen » man nov 22, 2010 13:51

Har sat denne kontaktformular ind på en hjemmeside, jeg lige har oprettet. Har kun rettet i navnet på filen og så selvfølgelig i de punkter du beskriver.

Hvis jeg ikke skriver noget i nogle af felterne eller bare udfylder dele af formularen. Så kommer der ikke nogle "fejl meddelelser" bliver bare viderestillet til den valgte side.

Ellers tak for en god side. Den har lært mig meget. Sidst jeg lavede hjemmeside var det med rammer. Så lidt en ny verden.

Hjemmeside: http://www.historisk-samfund.dk/dokumenter/kontakt/kontakt-webmaster.php

Kontaktformular
dele af kontakt-webmaster.php siden:


<form method="post" action="kontakt-webmaster-formular.php"
name="formular">
<table style="width: 475px; margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="width: 100px;" align="left">Navn:</td>
<td align="left"><input name="navn" style="width: 375px;"
type="text"></td>
</tr>
<tr>
<td align="left">E-mail:</td>
<td align="left"> <span style="display: none;">Dette felt skal
ikke udfyldes: <input name="email" type="text"><br>
</span><input name="epost" style="width: 375px;" type="text"></td>
</tr>
<tr>
<td align="left">Emne:</td>
<td align="left"><input name="emne" style="width: 375px;"
type="text"></td>
</tr>
<tr>
<td align="left">Besked:</td>
<td align="center"><textarea name="besked"
style="width: 375px; height: 100px;" rows="5" cols="40"></textarea></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">Send kopi til dig
selv<input name="kopi" type="checkbox"></td>
</tr>
<tr>
<td colspan="2" align="center"><input value="Send" type="submit">
<input name="clear" value="Slet alt" title="Slet alt"
type="reset"></td>
</tr>
</tbody>
</table>
</form>

Selve kontakt-webmaster-formular.php fil

<?php
$hjemmeside = "historisk-samfund.dk";
$mail = "***@stofanet.dk";
$afsendermail = "kanikke@besvares.invalid";
$viderestil = "tak.php";

/* Her hentes oplysningerne fra de udfyldte felter */
$navn = $_REQUEST['navn'] ;
$email = $_REQUEST['email'] ;
$epost = $_REQUEST['epost'] ;
$besked = $_REQUEST['besked'];
$spamfaelde = $_REQUEST['spamfaelde'];
$kopi = $_REQUEST['kopi'];
$emne = $_REQUEST['emne'];

/* Her tjekkes, om det skjulte spamfÊlde-felt er udfyldt */
if(!empty($email)) {
echo "Du er havnet i formularens spamfÊlde. Det burde ikke vÊre muligt at havne her ved et uheld, s skam dig!";
exit ();
}

/* Her tjekkes, om der er forbudte tegn i felterne */

if(strpos($navn,'@')!==false || strpos($epost,'\\')!==false || strpos($emne,'\\')!==false || strpos($navn,'\\')!==false)
{
echo "Formularen er ikke udfyldt korrekt, tryk p tilbage-knappen og pr¯v igen. Tjek, at du har skrevet din mail-adresse korrekt, og at du har skrevet den i det rigtige felt. Der m ikke vÊre baglÊns skrÂstreger (\) i felterne.";
exit();
}

/* Her tjekkes, om afsenderen har indtastet sin mail-adresse, og i s fald bruges den som afsendeeradresse, s der kan svares p mailen */
if(!empty($epost)) {
$headers="From: $navn <$epost>\r\n";
}
else {
$headers="From: Kontaktformular <$afsendermail>\r\n";
}

/* Her indsÊttes din mailadresse, s afsenderen kan svare p kopimailen */
$formularheaders="From: $hjemmeside <$afsendermail>\r\n";

/* Her samles afsenderens navn, mailadresse og besked i en enkelt variabel */
$oplysninger="F¯lgende er sendt via kontaktformularen p $hjemmeside:\r\n\r\nNavn: $navn\r\nE-mail: $epost\r\nBesked:\r\n$besked";

/* Her samles oplysningerne til afsenderens kopi af mailen */
$kopimail="Hej $navn\r\nDu har sendt f¯lgende via kontaktformularen p $hjemmeside:\r\n$besked";

if ($kopi > '') {
/* Her sendes til modtageradressen */
mail($mail, $emne, $oplysninger, $headers);

/* Her sendes en kopimail til afsenderen */
mail($epost, $emne, $kopimail, $formularheaders);
}

else {
/* Her sendes mailen til modtageradressen */
mail($mail, $emne, $oplysninger, $headers);
}

/* NÂr mailen er sendt, viderestilles til denne hjemmeside */
header( "Location: $viderestil" );
?>


Håber du/I kan hjælpe. Skal siges jeg bruger mac, hvis det har nogen betydning, kompozer, Safari og Firefox.

Søren
Søren Bojesen
 

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Kim Ludvigsen » man nov 22, 2010 14:28

Søren Bojesen skrev:Hvis jeg ikke skriver noget i nogle af felterne eller bare udfylder dele af formularen. Så kommer der ikke nogle "fejl meddelelser" bliver bare viderestillet til den valgte side.


Men du får tilsendt en mail?

Formularen indeholder ikke et tjek på, om felterne er udfyldt. Der laves kun et tjek på et skjult felt, som netop ikke må være udfyldt, men som spammere normalt udfylder.
Mvh.
Kim Ludvigsen
Kim Ludvigsen
Site Admin
 
Indlæg: 7263
Tilmeldt: tors jun 08, 2006 0:49

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Søren bojesen » man nov 22, 2010 14:46

Kim Ludvigsen skrev:
Søren Bojesen skrev:Hvis jeg ikke skriver noget i nogle af felterne eller bare udfylder dele af formularen. Så kommer der ikke nogle "fejl meddelelser" bliver bare viderestillet til den valgte side.


Men du får tilsendt en mail?

Formularen indeholder ikke et tjek på, om felterne er udfyldt. Der laves kun et tjek på et skjult felt, som netop ikke må være udfyldt, men som spammere normalt udfylder.



Har nu lige forsøgt mig lidt ferm. Nej får ikke nogen mail. Har forsøgt med flere forskellige kombinationer. Dog hvis jeg udfylder email feltet, og vælger kopi til mig selv, så får jeg kopien tilsendt. også selv om jeg ikke udfylder nogle af de andre felter.

Søren
Søren bojesen
 

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Kim Ludvigsen » man nov 22, 2010 16:03

Det vil sige, at du heler ikke har fået en mail fra den test, jeg har lavet?

I så fald er der flere muligheder, hvoraf de to absolut mest sandsynlige er:
Du har indtastet en forkert mailadresse. Tjek derfor, om stofanet-adressen er korrekt indtastet i PHP-filen.
Mailen er blevet fanget af et spamfilter. Prøv at tjekke spammappen i dit mailprogram.
Mvh.
Kim Ludvigsen
Kim Ludvigsen
Site Admin
 
Indlæg: 7263
Tilmeldt: tors jun 08, 2006 0:49

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Søren Bojesen » man nov 22, 2010 17:52

Kim Ludvigsen skrev:Det vil sige, at du heler ikke har fået en mail fra den test, jeg har lavet?

I så fald er der flere muligheder, hvoraf de to absolut mest sandsynlige er:
Du har indtastet en forkert mailadresse. Tjek derfor, om stofanet-adressen er korrekt indtastet i PHP-filen.
Mailen er blevet fanget af et spamfilter. Prøv at tjekke spammappen i dit mailprogram.


Har kontrolleret adressen og alle spam filtre og papirkurve.

Nu er den da helt gal. Nu kan jeg ikke få nogle mails mere. Har prøvet med tre forskellige email, både i den interne formular og i formlen som man skriver i på hjemmesiden. Alle muligheder uden held. Har også sendt mails fra den ene mail til den anden, så de virker.

Har dog et par forslag som jeg lige vil forsøge. Bruger nu den oprindelige kontaktformular.php, som jeg har hentet fra din side, har ikke ændret navnet, kun i den interne mail adresse. filen er indsat herunder.

Har one.com som webportal

De kører med safe mode slået fra og open basedir slået til. Ved ikke om dette gør noget.

De skriver php kan køre i usr/share/php. Lige pt. ligger mine php filer ikke i denne mappe, men tror nu ikke det er problemet, men prøver det lige. For siderne virker, og den kan jo godt viderestille til en anden hjemmeside, så den åbner da kontaktformular.php filen.

Har jeg for lange filnavne?

-----kontaktformular.php----
<?php
$hjemmeside = "minhjemmeside.dk";
$mail = "***@gmail.dk";
$afsendermail = "kanikke@besvares.invalid";
$viderestil = "http://minhjemmeside.dk";

/* Her hentes oplysningerne fra de udfyldte felter */
$navn = $_REQUEST['navn'] ;
$email = $_REQUEST['email'] ;
$epost = $_REQUEST['epost'] ;
$besked = $_REQUEST['besked'];
$spamfaelde = $_REQUEST['spamfaelde'];
$kopi = $_REQUEST['kopi'];
$emne = $_REQUEST['emne'];

/* Her tjekkes, om det skjulte spamfÊlde-felt er udfyldt */
if(!empty($email)) {
echo "Du er havnet i formularens spamfÊlde. Det burde ikke vÊre muligt at havne her ved et uheld, s skam dig!";
exit ();
}

/* Her tjekkes, om der er forbudte tegn i felterne */

if(strpos($navn,'@')!==false || strpos($epost,'\\')!==false || strpos($emne,'\\')!==false || strpos($navn,'\\')!==false)
{
echo "Formularen er ikke udfyldt korrekt, tryk p tilbage-knappen og pr¯v igen. Tjek, at du har skrevet din mail-adresse korrekt, og at du har skrevet den i det rigtige felt. Der m ikke vÊre baglÊns skrÂstreger (\) i felterne.";
exit();
}

/* Her tjekkes, om afsenderen har indtastet sin mail-adresse, og i s fald bruges den som afsendeeradresse, s der kan svares p mailen */
if(!empty($epost)) {
$headers="From: $navn <$epost>\r\n";
}
else {
$headers="From: Kontaktformular <$afsendermail>\r\n";
}

/* Her indsÊttes din mailadresse, s afsenderen kan svare p kopimailen */
$formularheaders="From: $hjemmeside <$afsendermail>\r\n";

/* Her samles afsenderens navn, mailadresse og besked i en enkelt variabel */
$oplysninger="F¯lgende er sendt via kontaktformularen p $hjemmeside:\r\n\r\nNavn: $navn\r\nE-mail: $epost\r\nBesked:\r\n$besked";

/* Her samles oplysningerne til afsenderens kopi af mailen */
$kopimail="Hej $navn\r\nDu har sendt f¯lgende via kontaktformularen p $hjemmeside:\r\n$besked";

if ($kopi > '') {
/* Her sendes til modtageradressen */
mail($mail, $emne, $oplysninger, $headers);

/* Her sendes en kopimail til afsenderen */
mail($epost, $emne, $kopimail, $formularheaders);
}

else {
/* Her sendes mailen til modtageradressen */
mail($mail, $emne, $oplysninger, $headers);
}

/* NÂr mailen er sendt, viderestilles til denne hjemmeside */
header( "Location: $viderestil" );
?>
Søren Bojesen
 

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Kim Ludvigsen » man nov 22, 2010 20:15

Jeg har anonymiseret din mailadresse i dine to kodeeksempler, så den ikke indhøstes af spammere.


Jeg har lige testet den igen, men denne gang får jeg ikke en kopi - det fik jeg i forrige test - jeg ved ikke hvorfor, koden burde virke, og PHP-scriptet afvikles, eftersom viderestillingen fungerer. Og der vises også de forskellige fejlmeddelelser, hvis man indtaster ulovligt indhold i felterne.

Prøve lige at udskifte alle forekomster af $mail i scriptet med $mig - der er tre forekomster.
Mvh.
Kim Ludvigsen
Kim Ludvigsen
Site Admin
 
Indlæg: 7263
Tilmeldt: tors jun 08, 2006 0:49

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Søren Bojesen » man nov 22, 2010 21:35

Kim Ludvigsen skrev:Jeg har anonymiseret din mailadresse i dine to kodeeksempler, så den ikke indhøstes af spammere.


Jeg har lige testet den igen, men denne gang får jeg ikke en kopi - det fik jeg i forrige test - jeg ved ikke hvorfor, koden burde virke, og PHP-scriptet afvikles, eftersom viderestillingen fungerer. Og der vises også de forskellige fejlmeddelelser, hvis man indtaster ulovligt indhold i felterne.

Prøve lige at udskifte alle forekomster af $mail i scriptet med $mig - der er tre forekomster.


Siger tak for din hjælp indtil nu også fordi du skjulte min mail. Det jo det jeg forsøger ved at bruge disse formularer..

Desværre virker det stadig ikke, har skiftet $mail med $mig. Fandt dog en fejl. Det hedder jo gmail.com og ikke .dk. troede lige det ville hjælpe, men ak nej.

Jeg har på intet tidspunkt modtaget fejlmeddelelser i forbindelse med manglende navn, email mm.
Det har vel ikke noget at gøre med jeg bruger MAC og safari, regner med at php koden bliver kørt på serveren.

Forsøger stadig at løse problemet. Vil læse lidt på php.net siden. Der er en del bruger erfaringer. Måske det kan hjælpe mig.

Søren
Søren Bojesen
 

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Kim Ludvigsen » man nov 22, 2010 22:01

Det har intet med din Mac at gøre.

Den første udgave, du havde, virkede sikkert fint. Hvis du stadig har den liggende, så prøv at bruge den igen - bare med den rettede mailadresse. Jeg fik en kopi-mail, og jeg blev viderestillet, så det eneste, der kiksede, var mailen til dig, og det har vi jo så en forklaring på nu.

Jeg ved ikke, hvorfor den nye udgave ikke virker. Har du ændret noget i filen ud over de fire linjer i toppen - og udover den ændring af $mail, som jeg foreslog?
Mvh.
Kim Ludvigsen
Kim Ludvigsen
Site Admin
 
Indlæg: 7263
Tilmeldt: tors jun 08, 2006 0:49

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Gæst » man nov 22, 2010 22:49

Kim Ludvigsen skrev:Det har intet med din Mac at gøre.

Den første udgave, du havde, virkede sikkert fint. Hvis du stadig har den liggende, så prøv at bruge den igen - bare med den rettede mailadresse. Jeg fik en kopi-mail, og jeg blev viderestillet, så det eneste, der kiksede, var mailen til dig, og det har vi jo så en forklaring på nu.

Jeg ved ikke, hvorfor den nye udgave ikke virker. Har du ændret noget i filen ud over de fire linjer i toppen - og udover den ændring af $mail, som jeg foreslog?


Nu har jeg hentet kontaktformularen igen og kopieret din html kode fra din hjemmeside med kontaktformularen. Den virker stadig ikke.
Får stadig ingen fejlmeddelelser. Kan det have noget at gøre med det tekst program. Bruger TextEdit som følger med MACen. Gætter på det er en slags windows notepad klon. Selv om jeg kun vælger arkiver, vælger den så et anden tekstkodning. Famler lidt i blinde her.

Har også læst lidt mere på One.com
Kan se de har deaktiveret det 5. parametre i mail(). Ved ikke lige hvad det er. De skriver også på deres support side, at hvis man vil sende mail fra nettet, så skal man bruge deres wep smtp server, kan den skrives ind i scriptet!
Gæst
 

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Søren Bojesen » man nov 22, 2010 23:03

Gæst skrev:
Kim Ludvigsen skrev:Det har intet med din Mac at gøre.

Den første udgave, du havde, virkede sikkert fint. Hvis du stadig har den liggende, så prøv at bruge den igen - bare med den rettede mailadresse. Jeg fik en kopi-mail, og jeg blev viderestillet, så det eneste, der kiksede, var mailen til dig, og det har vi jo så en forklaring på nu.

Jeg ved ikke, hvorfor den nye udgave ikke virker. Har du ændret noget i filen ud over de fire linjer i toppen - og udover den ændring af $mail, som jeg foreslog?


Nu har jeg hentet kontaktformularen igen og kopieret din html kode fra din hjemmeside med kontaktformularen. Den virker stadig ikke.
Får stadig ingen fejlmeddelelser. Kan det have noget at gøre med det tekst program. Bruger TextEdit som følger med MACen. Gætter på det er en slags windows notepad klon. Selv om jeg kun vælger arkiver, vælger den så et anden tekstkodning. Famler lidt i blinde her.

Har også læst lidt mere på One.com
Kan se de har deaktiveret det 5. parametre i mail(). Ved ikke lige hvad det er. De skriver også på deres support side, at hvis man vil sende mail fra nettet, så skal man bruge deres wep smtp server, kan den skrives ind i scriptet!



Ser nu at one.com bruger noget der hedder FormMail. Kan se HTML.dk har en artikel om det, kan jeg ikke forsøge mig med en sådan løsning. Bliver desværre nok uden spamfilter, men det må jeg leve med.

Søren
Søren Bojesen
 

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Søren Bojesen » man nov 22, 2010 23:54

Søren Bojesen skrev:
Gæst skrev:
Kim Ludvigsen skrev:Det har intet med din Mac at gøre.

Den første udgave, du havde, virkede sikkert fint. Hvis du stadig har den liggende, så prøv at bruge den igen - bare med den rettede mailadresse. Jeg fik en kopi-mail, og jeg blev viderestillet, så det eneste, der kiksede, var mailen til dig, og det har vi jo så en forklaring på nu.

Jeg ved ikke, hvorfor den nye udgave ikke virker. Har du ændret noget i filen ud over de fire linjer i toppen - og udover den ændring af $mail, som jeg foreslog?


Nu har jeg hentet kontaktformularen igen og kopieret din html kode fra din hjemmeside med kontaktformularen. Den virker stadig ikke.
Får stadig ingen fejlmeddelelser. Kan det have noget at gøre med det tekst program. Bruger TextEdit som følger med MACen. Gætter på det er en slags windows notepad klon. Selv om jeg kun vælger arkiver, vælger den så et anden tekstkodning. Famler lidt i blinde her.

Har også læst lidt mere på One.com
Kan se de har deaktiveret det 5. parametre i mail(). Ved ikke lige hvad det er. De skriver også på deres support side, at hvis man vil sende mail fra nettet, så skal man bruge deres wep smtp server, kan den skrives ind i scriptet!



Ser nu at one.com bruger noget der hedder FormMail. Kan se HTML.dk har en artikel om det, kan jeg ikke forsøge mig med en sådan løsning. Bliver desværre nok uden spamfilter, men det må jeg leve med.

Søren


Så fik jeg en simpel FormMail til at virke. Vil arbejde videre på den i morgen. Mange tak for hjælpen.
En lille sidste ting. Har du et lille ikon/script med made by kompozer samt måske det samme til din hjemmeside. Vil gerne gøre lidt "reklame" for gode ting.

Tak for denne gang
Søren
Søren Bojesen
 

Re: Kontaktformular- Spamfælde og kontrol af felter.

Indlægaf Kim Ludvigsen » tirs nov 23, 2010 7:26

Hvis du får for meget spam via formularen, så vend tilbage, så kigger vi på det igen. Min formular burde virke, også på dit webhotel. Din tidligere udgave kunne som sagt sende en mail til mig, da jeg testede formularen, og så skulle den jo også kunne sende til dig. Hvis der var en blokering på webhotellet, ville den slet ikke kunne sende.

KompoZer-knap:
Indsæt => Smarte funktioner => Indsæt "Made with KompoZer"-knap

Jeg har ikke en knap, men jeg vil da blive glad for et almindeligt link.
Mvh.
Kim Ludvigsen
Kim Ludvigsen
Site Admin
 
Indlæg: 7263
Tilmeldt: tors jun 08, 2006 0:49


Tilbage til Hjælp til Ludvigs Hjørne

Hvem er online

Brugere der læser dette forum: Ingen og 14 gæster

cron