Avatar billede noidem Nybegynder
05. oktober 2008 - 09:38 Der er 10 kommentarer og
1 løsning

Mail sender med kode

Hejsa.

Hvordan sætte jeg en kode ind, så den er uden for spamrobotternes rækkevidde?

F. eks. som denne her: http://www.hjemmesideskolen.dk/scripts/phpmailc.php

Htm-file: booking.htm

<form action="bestil.php" method="post">

<table border="0">
<tr>
    <td><font face="Verdana" size="2">Navn:</font></td>
    <td><input type="text" name="navn"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Adresse:</font></td>
    <td><input type="text" name="Adresse"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Post nr.:</font></td>
    <td><input type="text" name="Postnr"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">By:</font></td>
    <td><input type="text" name="by"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Tlf.:</font></td>
    <td><input type="text" name="Tlf"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Dato.:</font></td>
    <td><input type="text" name="dato"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Kl.:</font></td>
    <td><input type="text" name="kl"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Anledning:</font></td>
    <td><input type="text" name="anledning"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Kontakt:</font></td>
    <td><input type="checkbox" name="Kontakt"> Jeg vil gerne kontaktes.</td>
</tr>
<tr>
    <td><font face="Verdana" size="2">E-mail:</font></td>
    <td><input type="text" name="em"></td>
</tr>
</table>
Hvor du/I har fundet mig? <input type="text" name="hvor">
<br><br>
Besked:<br>
<textarea wrap="physical" rows="5" cols="50" name="Besked"></textarea>

<p></p>
<input type="submit" value="send">

</form>




PHP-file: bestil.php

<?php
$email = "xxx@xxxx.dk";

$navn = $_REQUEST["navn"];
$Adresse = $_REQUEST["Adresse"];
$Postnr = $_REQUEST["Postnr"];
$by = $_REQUEST["by"];
$Tlf = $_REQUEST["Tlf"];
$dato = $_REQUEST["dato"];
$kl = $_REQUEST["kl"];
$anledning = $_REQUEST["anledning"];
$hvor = $_REQUEST["hvor"];
$em = $_REQUEST["em"];
$Kontakt = $_REQUEST["Kontakt"];
$Besked = $_REQUEST["Besked"];


mail("$email",
"Bestilling",
"
Navn: $navn
Adresse: $Adresse
Post nr. og by: $Postnr
By: $by

Tlf.: $Tlf

Dato: $dato
KL: $kl
Anledning: $anledning
Hvor: $hvor

Kontakt: $Kontakt

E-mail: $em

Besked: $Besked",
"From: Book");


?>

Den virke, men uden kode.


På forhånd 1000 tak

Mvh
Ulla
Avatar billede w13 Novice
05. oktober 2008 - 12:50 #1
Du kan jo f.eks. indsætte et felt:

<input type="text" name="message" id="dummymessage">

<script type="text/javascript">
document.getElementById("dummymessage").style.display="none";
</script>

Så har du et felt, der hedder message, men som skjules for brugerne med JavaScript.

Så kan du rette dit PHP til:

<?php
$email = "xxx@xxxx.dk";

$navn = $_FORM["navn"];
$Adresse = $_FORM["Adresse"];
$Postnr = $_FORM["Postnr"];
$by = $_FORM["by"];
$Tlf = $_FORM["Tlf"];
$dato = $_FORM["dato"];
$kl = $_FORM["kl"];
$anledning = $_FORM["anledning"];
$hvor = $_FORM["hvor"];
$em = $_FORM["em"];
$Kontakt = $_FORM["Kontakt"];
$Besked = $_FORM["Besked"];

$spamtest = $_FORM[

if ( $spamtest == '' ) {

  mail("$email",
"Bestilling",
"
Navn: $navn
Adresse: $Adresse
Post nr. og by: $Postnr
By: $by

Tlf.: $Tlf

Dato: $dato
KL: $kl
Anledning: $anledning
Hvor: $hvor

Kontakt: $Kontakt

E-mail: $em

Besked: $Besked",
"From: Book");

}

?>

Idéen er, at spamrobotter ikke kan forstå JavaScript, så de kan ikke se, at vi skjuler feltet "message". Derfor skulle de gerne udfylde feltet, hvilket dine brugere ikke kan, når de ikke kan se det.

Så hvis feltet er udfyldt, sendes mailen ikke.

I øvrigt har jeg rettet $_REQUEST til $_FORM, da det er bedre at tilgå det direkte.
Avatar billede noidem Nybegynder
05. oktober 2008 - 14:19 #2
Øhh...

Parse error: syntax error, unexpected T_IF, expecting ']' in /share/MD0_DATA/Qweb/xxx/test/mail/bestil.php on line 19


Htm-file: booking.htm

<form action="bestil.php" method="post">

<input type="text" name="message" id="dummymessage">

<script type="text/javascript">
document.getElementById("dummymessage").style.display="none";
</script>

<table border="0">
<tr>
    <td><font face="Verdana" size="2">Navn:</font></td>
    <td><input type="text" name="navn"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Adresse:</font></td>
    <td><input type="text" name="Adresse"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Post nr.:</font></td>
    <td><input type="text" name="Postnr"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">By:</font></td>
    <td><input type="text" name="by"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Tlf.:</font></td>
    <td><input type="text" name="Tlf"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Dato.:</font></td>
    <td><input type="text" name="dato"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Kl.:</font></td>
    <td><input type="text" name="kl"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Anledning:</font></td>
    <td><input type="text" name="anledning"></td>
</tr>
<tr>
    <td><font face="Verdana" size="2">Kontakt:</font></td>
    <td><input type="checkbox" name="Kontakt"> Jeg vil gerne kontaktes.</td>
</tr>
<tr>
    <td><font face="Verdana" size="2">E-mail:</font></td>
    <td><input type="text" name="em"></td>
</tr>
</table>
Hvor du/I har fundet mig? <input type="text" name="hvor">
<br><br>
Besked:<br>
<textarea wrap="physical" rows="5" cols="50" name="Besked"></textarea>

<p></p>
<input type="submit" value="send">

</form>


PHP-file: bestil.php

<?php
$email = "xxx@xxxx.dk";

$navn = $_FORM["navn"];
$Adresse = $_FORM["Adresse"];
$Postnr = $_FORM["Postnr"];
$by = $_FORM["by"];
$Tlf = $_FORM["Tlf"];
$dato = $_FORM["dato"];
$kl = $_FORM["kl"];
$anledning = $_FORM["anledning"];
$hvor = $_FORM["hvor"];
$em = $_FORM["em"];
$Kontakt = $_FORM["Kontakt"];
$Besked = $_FORM["Besked"];

$spamtest = $_FORM[

if ( $spamtest == '' ) {

  mail("$email",
"Bestilling",
"
Navn: $navn
Adresse: $Adresse
Post nr. og by: $Postnr
By: $by

Tlf.: $Tlf

Dato: $dato
KL: $kl
Anledning: $anledning
Hvor: $hvor

Kontakt: $Kontakt

E-mail: $em

Besked: $Besked",
"From: Book");

}

?>
Avatar billede w13 Novice
05. oktober 2008 - 15:01 #3
$spamtest = $_FORM[
skulle lige være:
$spamtest = $_FORM['message'];
:)
Avatar billede noidem Nybegynder
05. oktober 2008 - 15:23 #4
Det er hvad den sender.

**********************************
Navn:
Adresse:
Post nr. og by:
By:

Tlf.:

Dato:
KL:
Anledning:
Hvor:

Kontakt:

E-mail:

Besked:
*********************************
Avatar billede noidem Nybegynder
05. oktober 2008 - 15:28 #5
Ps. alle felterne var udfyldt.
Avatar billede w13 Novice
05. oktober 2008 - 15:30 #6
Nå, men så bare ret alle $_FORM tilbage til $_REQUEST
Avatar billede noidem Nybegynder
05. oktober 2008 - 15:50 #7
Jeg har rette det som du skrev og det virke :)  Jeg har opdaget at den kan sende uden at man skriver noget i den. Er det et stort arbejde at lave den, så man kan sende uden alle felter er udfyldt?
Avatar billede w13 Novice
05. oktober 2008 - 18:05 #8
Det må så bare være:

<?php
$email = "xxx@xxxx.dk";

$navn = $_FORM["navn"];
$Adresse = $_FORM["Adresse"];
$Postnr = $_FORM["Postnr"];
$by = $_FORM["by"];
$Tlf = $_FORM["Tlf"];
$dato = $_FORM["dato"];
$kl = $_FORM["kl"];
$anledning = $_FORM["anledning"];
$hvor = $_FORM["hvor"];
$em = $_FORM["em"];
$Kontakt = $_FORM["Kontakt"];
$Besked = $_FORM["Besked"];

$spamtest = $_FORM[

if ( $spamtest == '' && ( $navn != '' && $Adresse != '' && $Postnr != '' && $by != '' && $Tlf != '' && $dato != '' && $kl != '' && $anledning != '' && $hvor != '' && $em != '' && $Kontakt != '' && $Besked != '' ) ) {

  mail("$email",
"Bestilling",
"
Navn: $navn
Adresse: $Adresse
Post nr. og by: $Postnr
By: $by

Tlf.: $Tlf

Dato: $dato
KL: $kl
Anledning: $anledning
Hvor: $hvor

Kontakt: $Kontakt

E-mail: $em

Besked: $Besked",
"From: Book");

}

?>

Denne burde ikke acceptere det, hvis nogle felter ikke er udfyldt. Men det er ikke sikkert, den virker, som den er nu. Der er sikkert nogle ting, vi skal tage højde for, men du kan jo lige prøve den.

Den giver ingen fejlbesked, hvis felterne ikke er udfyldt - jeg synes, du skal finde en JavaScript-kode, til at tjekke og give brugeren besked, hvis nogle felter mangler at blive udfyldt. Det er langt mere brugervenligt. Hvis du spørger i JavaScript-kategorien kan nogen sikkert også hjælpe dig med det.
Avatar billede noidem Nybegynder
06. oktober 2008 - 15:21 #9
Tak for det.
Avatar billede w13 Novice
06. oktober 2008 - 15:28 #10
Og tak for points. :)
Avatar billede noidem Nybegynder
06. oktober 2008 - 15:40 #11
W13

Kan du fix den her: http://www.eksperten.dk/spm/847780

Så siger jeg mange tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester