/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Spamfri formular virker ikke, hvad er der ~
Fra : Jakob Munck


Dato : 07-01-07 08:40

I henhold til vejledning fra tidligere tråd har jeg lavet en formular, som
spamrobotterne ikke skulle kunne bruge. Men allerede efter at den har været
3 dage på nettet begynder spam at vælte ind, så den virker altså ikke.
Formularen har en specielt navn ("a3586") og den er lavet sådan, at hvis et
usynligt CSS-felt ikke udfyldes, så kan den ikke sende. Alligevel vælter det
ind med spam, som sendes via denne fomular.

Hvad er der galt??

v.h.
Jakob

----------------------------------------------------------
Min kode:
-----------------------------------------------------------

<?php
if ($_POST["skriv"]){

$navn = $_POST["navn"];
$email = $_POST["email"];
$a8573 = $_POST["a8573"];
$indhold = nl2br($_POST["besked"]);

require_once 'smtp_mail.php';

$sql = mysql_query("SELECT * FROM auwebmaster WHERE we_id = '117'");
$data = mysql_fetch_array($sql);

$modtager_email = $data["email"];

$afsender_navn = 'Formmail - Auro.dk';
$afsender_email = 'falsk@webspeed.dk';

$subject = "Formmail - www.auro.dk";

$headers = "MIME-Version: 1.0\r\n".
"Content-type: text/html; charset=iso-8859-1\r\n".
"From: \"Auro.dk\" <".$afsender_email.">\r\n".
"To: \"Client\" <".$modtager_email.">\r\n".
"Date: ".date("r")."\r\n".
"Subject: ".$subject."\r\n";

$emne = 'Formmail - Auro.dk';

//tester om en robot har udfyldt det falske email-felt:
if($email == ''){
mail($modtager, $emne, $indhold, $headers);
}

echo "<br><br><br><br><font face='Verdana, Arial Helvetica' size='3'
color='#606060'>";
echo "<center>Så er din mail afsendt!</center>";
echo "</font>";
}
else{
?>

<br>
<table border="0" bordercolor="#000000" align="center" width="50%"
cellpadding="10" cellspacing="0">
<tr><td align="left" valign="top" class="sort11"">

<SCRIPT type="text/javascript">
function CheckFile() {
if (document.a3586.navn.value.length < 5) {
alert("Skriv dit navn !");
return false;
}
if (document.a3586.a8573.value.length < 8) {
alert("Skriv din e-mail !");
return false;
}
var forLangt = /[^\s]{35,}/; if
(forLangt.test(membership.email.value)){ alert('Der er en fejl i din
e-mail !'); return false; }
return true;
}
</SCRIPT>

<FORM METHOD="POST" name="a3586" ACTION="<?php echo $PHP_SELF; ?>"
onSubmit="return CheckFile();">
<INPUT TYPE=hidden NAME=skriv VALUE=1>
Dit navn:<br>
<INPUT TYPE="text" size="30" NAME="navn"><br>
<br>
Din e-mail:<br>
<INPUT TYPE="text" size="30" NAME="a8573"><br>

<!-- Usynligt CSS-felt -->
<SPAN style="DISPLAY: none">
E-mail (snyd for robotter):
<INPUT TYPE="text" size="30" NAME="email">
</SPAN>


<br>
Meddelelse:<br>
<TEXTAREA NAME=besked COLS=40 ROWS=8></TEXTAREA>
<br><br>
<INPUT class="submit" style="WIDTH: 70px" type="submit" value="Send"
name="submit">
</FORM>
</td></tr></table>

<?php
}
include "bund.inc.php";
?>
---------------------------------------------------------------------



 
 
Erik Ginnerskov (08-01-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 08-01-07 00:04

Jakob Munck wrote:

> //tester om en robot har udfyldt det falske email-felt:
> if($email == ''){
> mail($modtager, $emne, $indhold, $headers);
> }
>

Jeg har med held testet denne konstruktion:

if (!empty($_POST['email'])) {
header ("Location: blokeret.php");
exit;
}

Du skal så selvfølgelig have lavet en 'blokeret.php', som spammerne kan
sendes til. Siden behøver ikke være oplysende, den skal bare være der som et
sted at sende spammerne hen.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Jakob Munck (08-01-2007)
Kommentar
Fra : Jakob Munck


Dato : 08-01-07 08:50

>
> Jeg har med held testet denne konstruktion:
>
> if (!empty($_POST['email'])) {
> header ("Location: blokeret.php");
> exit;
> }
>

Tak skal du have. Jeg forestillede mig at min virkede på nogenlunde samme
måde, men det gjorde den åbenbart ikke, for det er væltet ind med spam siden
jeg uploadede den. Nu har jeg derfor erstattet den med en helt anden, som
har grafisk spamsikring (se Kontakt www.auro.dk ). Men jeg tror faktisk at
din udgave er lige så effektiv.

Må jeg spørge hvorfor du leder de afsendelser, som laves af spamrobotterne,
hen til en særlig side ("blokeret.php"). Var det ikke bedre at bilde
robotterne ind, at de faktisk har afsendt en mail, altså uden at de har
gjort det i virkeligheden? Så bliver det sværere for dem at korrigere deres
fejl. Altså, burde der ikke så "Mail afsendt" i din blokeret-fil og burde
den ikke hedde "afsendt.php" i stedet?

v.h.
Jakob



Erik Ginnerskov (09-01-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 09-01-07 02:39

Jakob Munck wrote:

> Må jeg spørge hvorfor du leder de afsendelser, som laves af
> spamrobotterne, hen til en særlig side ("blokeret.php").

Det var mest tænkt som at det forklarer for den, som laver siden, hvad siden
bruges til (i hvilken situation den aktiveres).

> Var det ikke
> bedre at bilde robotterne ind, at de faktisk har afsendt en mail,
> altså uden at de har gjort det i virkeligheden? Så bliver det sværere
> for dem at korrigere deres fejl. Altså, burde der ikke så "Mail
> afsendt" i din blokeret-fil og burde den ikke hedde "afsendt.php" i
> stedet?

Det er faktisk et rigtig godt forslag du der kommer med. Det vil jeg da
alvorligt overveje at implementere i mine forklaringer.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste