Avatar billede raffar Juniormester
12. maj 2003 - 01:32 Der er 10 kommentarer og
1 løsning

MailForm script der inkluderer brugerinfo.

Jeg skal bruge et script der kan sende mail formen nedenfor. Det skal kunne følgende og skal være på engelsk.

1. Sende de parametre som formen indeholder + de nødvendige Headere osv.
2. Checke om formens felter er udfyldt.
  - Hvis nej skal brugeren have en fejlmelding.
  - Hvis ja skal han  få svar om at formen er sendt.
3. Mailen der bliver sendt til Webmaster skal udover det brugeren har udfyldt indeholde følgende. Det skal stå i bunden af mailen.
  - Brugerens IP
  - Remote Host
  - referrer (Hvilken side han kom fra)
  - Browser info

Håber at der er nogle venlige sjæle der kan hjælpe!



<!-- Form Starts here -->

<form action="contact.php" METHOD="POST">
<input type="hidden" name="" value="">
    <TABLE border="0" cellpadding=0 cellspacing=0 width="100%">
        <TR>
            <TD><B>Your Contact Information</B></TD>
        </TR>
        <TR>
            <TD>Name:<BR><INPUT TYPE="text" NAME="Name" VALUE="" class="form"></TD>
        </TR>
        <TR>
            <TD>E-mail:<BR><INPUT TYPE="text" NAME="Email" VALUE="" class="form"></TD>
        </TR>
        <TR>
            <TD>Select a subject for your inquiry:<BR>
                <select name="subject" class=form>
                <option value="" selected>Contact us..</option>
                <option>-----------------------------------------</option>
                <option>General Enquiries</option>
                <option>Editorial Enquiries</option>
                <option>Advertising Enquiries</option>
                <option>Other</option>
                </select>
            </TD>
        </TR>
        <TR>
            <TD>Comments:<BR><TEXTAREA NAME="Comments" ROWS=6 COLS=50 class="form"></TEXTAREA></TD>
        </TR>
        <TR>
            <TD>
                <INPUT TYPE="submit" class="form" value="Click Once to Send">
            </TD>
        </TR>
    </table>
</form>

<!-- Form Ends here -->
Avatar billede tipsen Nybegynder
12. maj 2003 - 12:20 #1
Har du selv lavet noget af php-koden til at starte med?
Avatar billede apache999 Nybegynder
12. maj 2003 - 16:30 #2
Nedenstående løsning indeholder form+validering. Mailen bliver sendt, hvis alt går rigtigt til. Efterfølgende bliver brugeren omdirigeret til en send.php, hvor han/hun får en bekræftelse.

Modificeres efter behov. Der er lidt overflødig kode i eksemplet, blandt andet fordi jeg tidligere har skrevet, hvor mange felter, der var fejl i. Det er derfor $iNogetGalt er en integer i stedet for en boolean.


skriv.php
<?
    include "../functions/functions.inc.php";
    if ($_POST["submitknap"]) {
        if (isset($_POST["navn"])) $navn = $_POST["navn"];
        if (isset($_POST["email"])) $email = $_POST["email"];
        if (isset($_POST["text"])) $text = $_POST["text"];
        if (isset($_POST["tlfnr"])) $tlfnr = $_POST["tlfnr"];
       
        unset($msg1);
        unset($msg2);
        unset($msg3);
        unset($msg4);
       
        $iNogetGalt=0;
        $navn = trim($navn);
        if ($navn=="") {
            $msg1 ="Du skal skrive dit navn.<br>\n";
            $iNogetGalt++;
        }
       
        $email = trim($email);
        $emailResult = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $email);
        if (!$emailResult AND $email !="") {
            $msg2  = "Din emailadresse er ikke korrekt indtastet<br>\n";
            $msg2 .= "Hvis du ikke ønsker at opgive en emailadresse,\n";
            $msg2 .= "skal du lade feltet være blankt.<br>\n";
            $iNogetGalt++;   
        }
       
        $tlfnr = eregi_replace("[^0-9]","",$tlfnr);
        $tlfnr = eregi_replace("[ +]","",$tlfnr);
        $tlfResult = ereg("^[0-9]{8}$",$tlfnr);
        if (!$tlfResult  AND $tlfnr !="") {
            $msg3  = "Dit telefonnummer er ikke korrekt indtastet.<br>\n";
            $msg3 .= "Hvis du ikke ønsker at opgive et telefonnummer,\n";
            $msg3 .= "skal du lade feltet være blankt.<br>\n";
            $iNogetGalt++;   
        }
        $text=trim($text);
        if ($text=="") {
            $msg4 = "Du skal da huske at skrive i det store felt!";
            $iNogetGalt++;
        }
               
        if ($iNogetGalt==0) {
            $mailbody  = "Mail fra $navn\n";
            if ($email !="") $mailbody .= "Email: $email\n";
            if ($tlfnr !="") $mailbody .= "Tlf $tlfnr\n";
            $mailbody .= "Og hvad står der så i mailen:\n\n";
            $mailbody .= $text;
            mail("kontakt_nospam@ungdomssekretariatet.dk","mail sendt via ungdomssekretariatet.dk fra $navn",$mailbody,
                "From: Ungdomssekretariatets postkasse\r\nReply-to: $email");
            header("Location:http://www.ungdomssekretariatet.dk/kontakt/send.php?tjek=true");
            exit;
        }
    }
    writeHTMLHeader("Kontakt Ungdomssekretariatet");
?>
<script language="javascript" src="../javascript.js">
</script>
</head>
<body topmargin="0" leftmargin="0">
<form action="skriv.php" name="formular" method="post">
  <table align="center" width="100%">
  <tr>
    <td colspan="2" align="center" class="superoverskrift">
    Kontakt Ungdomssekretariatet
    </td>
  </tr>
  <tr>
    <td class="overskrift">
    Dit navn (obligatorisk)
    </td>
    <td align="right">
    <input type="text" name="navn" value="<?echo $navn;?>">
    </td>
  </tr>
  <tr>
    <td colspan="2" align="right" class="fejl">
    <?echo $msg1;?>
    </td>
  </tr>
  <tr>
    <td class="overskrift">
    Email-adresse
    </td>
    <td align="right">
    <input type="text" name="email" value="<?echo $email;?>">
    </td>
  </tr>
  <tr>
    <td colspan="2" align="right" class="fejl">
    <?echo $msg2;?>
    </td>
  </tr>
  <tr>
    <td class="overskrift">
    Telefonnummer (ex. 27282930)
    </td>
    <td align="right">
    <input type="text" name="tlfnr" value="<?echo $tlfnr;?>">
    </td>
  </tr>
  <tr>
    <td colspan="2" align="right" class="fejl">
    <?echo $msg3;?>
    </td>
  </tr>
  <tr>
    <td colspan="2" class="overskrift">
    Hvad er det liiige, du vil os?
    </td>
  </tr>
  <tr>
    <td colspan="2">
    <textarea rows="10" cols="40" name="text"><?echo $text;?></textarea>
    </td>
  </tr>
  <tr>
    <td colspan="2" align="right" class="fejl">
    <?echo $msg4;?>
    </td>
  </tr>
  <tr>
    <td colspan="2" align="right">
    <input type="reset" value="slet alt">
    <input type="submit" value="send mail" name="submitknap">
    </td>
  </tr>
  </table>
  </form>
<?
writeHTMLFooter();
?>
Avatar billede raffar Juniormester
12. maj 2003 - 21:18 #3
Takker for de indlæg der er kommet indtil videre:

Scriptet jeg pt. bruger ser såden ud. Det virker også fint at sende, med det er de extra features beskrevet i spørgsmåletg jeg eftersøger.

<?
if(isset($subject)) {
    $mailsubject = $subject;
    $mailbody = "Subject: " . $subject . "\r\n" . $Comments;
    $extraheader = "From: " . $Email . "\r\nReply-To:" . $Email;
    mail ("min@mail.com", $mailsubject, $mailbody, $extraheader);

?>
    Thank you for your feedback.<BR>
<?

} else {

?>

---------

PS. Jeg er ikke nogen kodekarl.
Avatar billede apache999 Nybegynder
12. maj 2003 - 21:48 #4
- Brugerens IP
$_SERVER['REMOTE_ADDR']

  - Remote Host
$_SERVER['REMOTE_HOST]

  - referrer (Hvilken side han kom fra)
$_SERVER['HTTP_REFERER'] (meget platformsafhængig, så vidt jeg erindrer)

  - Browser info
$_SERVER['HTTP_USER_AGENT']

Konkateneres ind efter behov. Har ikke selv erfaring med de 2 øverste. Alle advarer meget mod HTTP_REFERER, men den har virket de gange, jeg har prøvet at bruge den. Desuden er det jo ikke en ulykke for dig, hvis den er tom en gang imellem.

Kig på for hele $_SERVER-arrayet http://www.php.net/manual/en/reserved.variables.php#reserved.variables.server
Avatar billede raffar Juniormester
12. maj 2003 - 22:27 #5
Jeg kender lidt til de parametre du nævner. Har bl.a. lavet denne lille kodestump, som virker 100% efter hensigten i et .php dokument. Jeg er dog kodemæssigt ikke habil nok til at få den implementeret i min mailform kode :(

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo "Your current IP Address: $REMOTE_ADDR<br>";
echo "Your Hostname: $hostname<br>";
echo "Refferer is: $HTTP_REFERER<br>";
echo "Your Browser: $HTTP_USER_AGENT<br>";
?>
Avatar billede apache999 Nybegynder
12. maj 2003 - 22:40 #6
Jamen så er det jo bare et spørgsmål om at konkatenere de nævnte variable på din $mailbody-variabel. Fx sådan her:

$mailbody .= "\nAfsender-IP:".$_SERVER['REMOTE_ADDR']." - Remote host:".$_SERVER['REMOTE_HOST]." - Referer:".$_SERVER'HTTP_REFERER']." - Browser:".$_SERVER['HTTP_USER_AGENT'];

Så kommer alle oplysningerne til at stå en linje nede i bunden af mailen.

Du skal sandsynligvis bruge $_SERVER[]-arrayet til at hente variablene, da det ikke virker blot at skrive $HTTP_REFERER, hvis register_globals er slået fra, som den er det på langt de fleste webservere
Avatar billede raffar Juniormester
12. maj 2003 - 22:43 #7
Jeg tester det lige senere efter midnat.(Arbejder på andet i øjeblikket) Hvis det virker bliver jeg glad ..:)
Avatar billede raffar Juniormester
13. maj 2003 - 23:15 #8
apache999 > Har ikke fået testet endnu i det vi har nogle problemer med maildelen på vores server. Den sender simpelt hen ikke. Har kontaktet min administrator.
Jeg vender tilbage.
Avatar billede raffar Juniormester
22. maj 2003 - 23:58 #9
Sorry for den lange ventetid. Sygdom o.a. har været hovedårsagen.

Jeg kan desværre ikke få det til at spille.. Det må være mere konkret hvis jeg skal finde ud af det.
Avatar billede apache999 Nybegynder
23. maj 2003 - 11:41 #10
Hvad er det præcist, der går galt?

Hvordan kommer mailen til at se ud?

Hvad mangler der?

Får du evt. nogen fejlmeddelelser og i givet fald hvilke?
Avatar billede raffar Juniormester
02. juli 2003 - 02:35 #11
Tak for hjælpen og unskyld ventetiden.. Jeg fik det løst af en tekniker, men har også fået lidt mere indsigt...
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

Politiets Efterretningstjeneste

Netværksspecialist til IT i PET

Det Nationale Forskningscenter for Arbejdsmiljø

IT-sikkerhedsspecialist med fokus på AI inden for forskning

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operations Center ved Cyberdivisionen

JP/Politikens Hus

Netværkstekniker