Avatar billede 1409 Praktikant
18. januar 2008 - 16:39 Der er 1 kommentar og
1 løsning

Mailform med antispam

Hejsa

Jeg har taget udgangspunkt i den her: http://www.hjemmesideskolen.dk/scripts/phpmailc.php

Men selve verifikationen virker ikke. Jeg får ihvertfald at vide hver gang, at den ikke kan godkendes...

<?php

IF (isset($_POST['submit'])) {
    IF($_SESSION['verify'] == strtoupper($_POST['auth'])) {
//  IF (!empty($_POST['name']) && !empty($_POST['subject']) &&
//  !empty($_POST['email']) && !empty($_POST['message'])) {
        $headers="From: ".$_POST['navnFra']."<".$_POST['mailFra'].">";
        IF (@$_POST['customer_copy']) {
            $headers .= "\r\nBcc: ".$_POST['mailFra'];
        }
        $body .= "Meddelelse den " . date("d/m y") . " kl. " . date("G:i") . " fra " . ($_SERVER['REMOTE_ADDR']) . "\r\n" . "Navn: " . $_POST['navnFra'] . "\r\n" . "Mail: " . $_POST['mailFra'] . "\r\n" . "Emne: " . $_POST['emneFra'] . "\r\n\r\n" . $_POST['indholdFra'];
        IF(@mail("dit.navn@dit_domain.dk", strip_tags($_POST['emneFra']), stripslashes(strip_tags(strip_tags($body))), $headers)) {
            echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>";
        }
        else {
            echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
        }
//  }
//  else {
//  echo "<p>Alle felter skal udfyldes!</p>";
//  }
}
    else {
        echo '<p>Desværre, verifikationskoden kunne ikke godkendes!</p>';
    }
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>
<HEAD>
    <TITLE>Untitled</TITLE>
<SCRIPT LANGUAGE="JavaScript">
/* validering af formular */
<!-- Begin
/*
function checkEmail(myForm) {
    if ((myForm.navnFra.value == "")||(myForm.mailFra.value == "")||(myForm.emneFra.value == "")||(myForm.indholdFra.value == "") ) {
        alert("Alle felter skal udfyldes!");
        return(false);
    }
    if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.mailFra.value)){
        alert("Din e-mail addresse er ikke korrekt!");
        return(false);
    }
    if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.mailFra.value)){
        alert("UPS!\nDin e-mail addresse er ikke korrekt!");
        return(false);
    }
    else{
        return(true);
    }
}*/
//  End -->
</SCRIPT>
</HEAD>

<BODY>
<FORM ACTION="<? ECHO $_SERVER['PHP_SELF']; ?>" METHOD="post" NAME="anbefal">
<fieldset>
<legend>Husk at udfylde alle felter</legend>

<label for="t1">Navn:</label>
<input id="t1" type="text" name="navnFra" /><br />

<label for="t2">Email:</label>
<input id="t2" type="text" name="mailFra" /><br />

<label for="t3">Emne:</label>
<input id="t3" type="text" name="emneFra" /><br />

<label for="t4">Besked:</label>
<textarea id="t4" name="indholdFra" rows="10" cols="49"></textarea><br />

<label for="t5">Kopi til dig?</label>
<input type="checkbox" id="t5" name="customer_copy" checked="checked" /><br />

<label for="auth">Verifikation:</label>
<span style="float:left;margin-right=10px;">
<input type="password" id="auth" name="auth" />
<br />Indtast kode for<br />at sende mail!
</span>
<img src="verify.php" alt="auth" /><br />

<label for="t6"> </label><input id="t6" type="submit" name="submit" value=" Send mail " />
&nbsp; &nbsp; <input type="reset" value=" Slet alt " />
</fieldset>

</FORM>

</BODY>
</HTML>


Dette script er ikke ændret:

<?php
session_start();

if(isset($_SESSION['verify'])) {
  unset($_SESSION['verify']);
}

$str = substr(strtoupper(md5(uniqid("w"))), 0, 5);

$_SESSION['verify'] = $str;

$im = ImageCreateFromPNG("verify.png"); // Definer baggrundsgrafik
$sort = ImageColorAllocate($im,0,0,0);  // Definer tekstfarve - rgb-værdier
ImageTTFText ($im,32,5,6,45,$sort,"verdana.ttf",$str); // Definer fontfil -
    // Tallene i parentesen herover betyder:
    // 32 = fontstørrelse i px
    // 5 = rotation i grader
    // 6 = afstand i px fra venstre billedkant til tekst
    // 45 = afstand i px fra billedtop til tekstlinje
header("Content-type: image/png");
ImagePNG($im);
ImageDestroy($im);

?>
Avatar billede yHec Novice
18. januar 2008 - 19:54 #1
Har du husket session_start øverst på alle sider, der bruger $_SESSION ?

/y
Avatar billede 1409 Praktikant
16. april 2010 - 09:13 #2
lukker...
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