Avatar billede netassist Juniormester
04. august 2008 - 11:02 Der er 10 kommentarer og
1 løsning

mail form

kan nogle hjælpe mig med at få nogle ting ind i min mail form

1)kontrolere mail adrassen
2)få ip addrassen

echo'<form action="'.$_SERVER['PHP_SELF'].'?page=tak" method="POST">
                        <table cellspacing="0">
                            <tr align="left" valign="top">
                                <th><label>Navn: </label></th>
                                <td><input type="text" name="Realname" id="Realname" size="24" tabindex="1" /></td>
                            </tr>
                            <tr align="left" valign="top">
                                <th><label>Adresse: </label></th>
                                <td><input type="text" name="Adresse" id="Adresse" size="24" tabindex="2" /></td>
                            </tr>
                            <tr align="left" valign="top">
                                <th><label>Postnr./by: </label></th>
                                <td><input type="text" name="Postnummer" id="Postnummer" size="4" tabindex="3" />&nbsp;<input type="text" name="By" id="By" size="24" tabindex="4" /></td>
                            </tr>
                            <tr align="left" valign="top">
                                <th><label>Email: </label></th>
                                <td><input type="text" name="Email" id="Email" size="24" tabindex="5" /></td>
                            </tr>
                            <tr align="left" valign="top">
                                <th><label>Telefon: </label></th>
                                <td><input type="text" name="Telefon" id="Telefon" size="24" tabindex="6" /></td>
                            </tr>
                            <tr align="left" valign="top">
                                <td><label>Din tekst: </label></td>
                                <td><textarea name="Tekst" id="Tekst" rows="8" cols="42" tabindex="7"></textarea></td>
                            </tr>
                            <tr align="left" valign="top">
                                <td><input class="button" type="submit" value="Send" name="Send" tabindex="8" onfocus="this.blur()" /></td>
                                <td><label>- Udfyld venligst alle felter</label></td>
                            </tr>
                        </table>
                    </form>
';
$ip = $_SERVER["REMOTE_ADDR"];
Avatar billede netassist Juniormester
04. august 2008 - 11:03 #1
$msg ="Navn :      ".$_POST['Realname']."\n";
$msg .="adresse :    ".$_POST['Adresse']."\n";
$msg .="postnummer : ".$_POST['Postnummer'];
$msg .="      ".$_POST['By']."\n";
$msg .="Telefon :    ".$_POST['Telefon']."\n";
$msg .="Email :      ".$_POST['Email']."\n";
$msg .="Besked :    ".$_POST['Tekst']."\n";
$msg .="din ip :    ".$_POST['ip']."\n";
echo "Du har sendt f&oslash;lgende oplysninger:<br> ".nl2br($msg);
$recipient  = "";
$subject    = "vigtig henvenlse";
$mailheaders ="From: Netassist <>\n";
$mailheaders .="Reply-To: ".$_POST['Email']."\n";
mail($recipient, $subject, $msg, $mailheaders , $ip);
Avatar billede jakobdo Ekspert
04. august 2008 - 11:04 #2
Det er bare selve formularen du viser her.
Du må have noget kode, som ender med: mail(....);
Det er den kode du skal vise.

Du har jo allerede ip her:
$ip = $_SERVER["REMOTE_ADDR"];
Og hvor meget du vil kontrollere email, er jo uvist.
Men man kan f.eks. tjekke den med http://dk.php.net/manual/en/function.getmxrr.php
Så ser man om der er en mailserver som svarer på domænet.
Og mere kontrol kan man faktisk ikke lave.
Avatar billede jakobdo Ekspert
04. august 2008 - 11:06 #3
Ret:
$msg .="din ip :    ".$_POST['ip']."\n";
til:
$msg .="Brugerens ip :    ".$_SERVER['REMOTE_ADDR']."\n";
og fjern: $ip = $_SERVER["REMOTE_ADDR"];

Så er IP på plads.

og du skal stadig finde ud af hvad kontrol af en email skal indebære.
Avatar billede netassist Juniormester
04. august 2008 - 11:33 #4
jamen deres mail addrassen er skrivet rigtig
Avatar billede netassist Juniormester
04. august 2008 - 11:36 #5
eller kan man lave en ban liste som ikke sender mail vider
Avatar billede jakobdo Ekspert
04. august 2008 - 16:43 #6
Det kan man også!
Men måske du skal uddybe: 1)kontrolere mail adrassen
Avatar billede netassist Juniormester
04. august 2008 - 18:48 #7
nået i stil med en if sætning
der er bare rigtig meget spam fra en mail add. som jeg godt kunne tænke mig at komme af med
er det nået man kan sætte in og virker det

if (eregi("^[0-9a-z_]([-_.]?[0-9a-z])*@[0-9a-z][-.0-9a-z]*\\.[a-z]{2,3}[.]?$", $string, $check)) {
    $host = substr(strstr($check[0], '@'), 1).".";
    if ( getmxrr($host, $validate_email_temp) )
        return TRUE;
    // THIS WILL CATCH DNSs THAT ARE NOT MX.
    if(checkdnsrr($host,"ANY"))
        return TRUE;
}
Avatar billede jakobdo Ekspert
04. august 2008 - 19:01 #8
Det kunne du f.eks. godt ja!
Lav det evt. til en funktion:

function check_email($email){
if (eregi("^[0-9a-z_]([-_.]?[0-9a-z])*@[0-9a-z][-.0-9a-z]*\\.[a-z]{2,3}[.]?$", $email, $check)) {
    $host = substr(strstr($check[0], '@'), 1).".";
    if ( getmxrr($host, $validate_email_temp) )
        return true;
    // THIS WILL CATCH DNSs THAT ARE NOT MX.
    if(checkdnsrr($host,"ANY"))
        return true;
}
return false;
}

Funktionen kan så bruges som:

if(!check_email($_POST['Email'])){
header('Location: spam_attack.php);
exit();
}
$msg ="Navn :      ".$_POST['Realname']."\n";

Hvis emailen der sender spam, f.eks. er: spam@hotmail.com vil spam ikke stoppe fra denne email.
Avatar billede netassist Juniormester
04. august 2008 - 19:47 #9
ser cool ud kommer du med et svar
Avatar billede jakobdo Ekspert
04. august 2008 - 20:00 #10
Svar!
Avatar billede jakobdo Ekspert
04. august 2008 - 20:54 #11
Takker for point.
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

IT-JOB