Avatar billede dotcom1 Nybegynder
25. januar 2005 - 17:29 Der er 6 kommentarer og
1 løsning

Tilføje afsenders IP, browser og sprog i formmail.

Bruger dette formmail-script:

http://www.multimedia.au.dk/~nanna/test/formmailer.phps

Kan nogen hjælpe med at ændre i koden, således at afsenderens IP, browsertype og sprog (REMOTE_ADDR, HTTP_USER_AGENT og HTTP_ACCEPT_LANGUAGE) automatisk tilføjes nederst i mailen når den sendes - altså så informationen kommer til at stå efter den besked der skrives?

Mvh.
Avatar billede blueeye97 Nybegynder
25. januar 2005 - 23:06 #1
$ipadr=$_SERVER['REMOTE_ADDR'];

Så tilføjer du bare $ipadr i din phpmail's tekst
Avatar billede blueeye97 Nybegynder
25. januar 2005 - 23:07 #2
Altså:
25/01-2005 23:06:23 $ipadr=$_SERVER['REMOTE_ADDR'];

mail("modtageradresse","Overskrift","Her skriver du teksten i mailen<br><br>$ipadr",);
Avatar billede blueeye97 Nybegynder
25. januar 2005 - 23:08 #3
fejl... Sådan her:

$ipadr=$_SERVER['REMOTE_ADDR'];

mail("modtageradresse","Overskrift","Her skriver du teksten i mailen<br><br>$ipadr",);
Avatar billede blueeye97 Nybegynder
25. januar 2005 - 23:09 #4
Du kan gøre det samme med $usr=$_SERVER['HTTP_USER_AGENT];
Avatar billede dotcom1 Nybegynder
26. januar 2005 - 10:57 #5
>> blueeye97: Ser nemt ud, men jeg kan ikke få det til at virke. (Formen vil ikke sende.) Kan jeg ikke få dig til at sætte det ind i koden for mig?
Avatar billede dotcom1 Nybegynder
26. januar 2005 - 14:13 #6
Det virkede desværre ikke på den måde, men tusind tak for ulejligheden. :) Her er en løsning, der virker glimrende:

<?php
    // Your e-mail adress:
    $mailto = "name@domain.com";

    # Maximum size of attachment in bytes:
    $max_attach_size = 500000;

    //Collect sender's details
    $ips = $_SERVER['REMOTE_ADDR'];
    $useragent = $_SERVER['HTTP_USER_AGENT'];
    $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    $info ="\n\n\n\n\n***********************************\n" . "Afsenders IP: $ips" . "\n" . "Browser: $useragent" . "\n" . "Language: $lang"  . "\n***********************************";

    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title>Formmailer</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <style type="text/css">
    <!--
    body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #000000; background: #fffff; margin: 20px; padding: 0px; border: 0px; }
    .caution { color: red; font-weight: bold; }
    -->
    </style>
    </head>
    <body><?php
    /*if (empty($_POST['form_submitted']))
    {
      ?><p>Please fill out the form:</p><?php
    }
    */
    if (isset($_POST["form_submitted"]))
    {
      $name = $_POST['name'];
      $email = $_POST['email'];
      $subject = $_POST['subject'];
      $text = $_POST['text']."$info";

      unset($errors);
      if ($email != "" and !preg_match("/^[^@]+@.+.D{2,5}$/", $email)) $errors[] = "e-mail address seems to be invalod";
      if ($text == "") $errors[] = "no message entered";
      if ($_FILES['probe']['size'] > $max_attach_size) $errors[] = "attachment too large (".number_format($_FILES['probe']['size']/1000,0,",","")." KB) - maximum size: ".number_format($max_attach_size/1000,0,",","")." KB";

      if (empty($errors))
      {
        $text = stripslashes($text);
        $subject = stripslashes($subject);
        if ($name != "") $mail_name=$name; else $mail_name="Unknown";
        if ($subject != "") $mail_subject = $subject; else $mail_subject = "No subject";
        if ($email != "") $mail_email = $email; else $mail_email = "email@unknown.xyz";
        $ip = $_SERVER["REMOTE_ADDR"];

        // if attachment, MIME-Mail:
        if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "")
        {
          // read and encode file:
          $datei_content = fread(fopen($_FILES['probe']['tmp_name'],"r"),filesize($_FILES['probe']['tmp_name']));
          $datei_content = chunk_split(base64_encode($datei_content),76,"\n");
          // Boundary:
          $boundary = md5(uniqid(rand()));
          // Mail-Header:
          $mail_header = "From: ".$mail_name." <".$mail_email.">\n";
          $mail_header .= "X-Sender-IP: ".$ip."\n";
          $mail_header .= "MIME-Version: 1.0\n";
          $mail_header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
          $mail_header .= "This is a multi-part message in MIME format.\n";
          // Mail-Text:
          $mail_header .= "--".$boundary;
          $mail_header .= "\nContent-Type: text/plain";
          $mail_header .= "\nContent-Transfer-Encoding: 8bit";
          $mail_header .= "\n\n".$text;
          // Attachment:
          $mail_header .= "\n--".$boundary;
          $mail_header .= "\nContent-Type: ".$_FILES['probe']['type']."; name=\"".$_FILES['probe']['name']."\"";
          $mail_header .= "\nContent-Transfer-Encoding: base64";
          $mail_header .= "\nContent-Disposition: attachment; filename=\"".$_FILES['probe']['name']."\"";
          $mail_header .= "\n\n".$datei_content;
          // End:
          $mail_header .= "\n--".$boundary."--";
          // Sende E-Mail and display error or confirmation:
          if (@mail($mailto,$mail_subject,"",$mail_header)) $sent = true; else $errors[] = "no connection to the mailserver - please try again later";
        }
        // no attachment, normal E-mail:
        else
        {
          $mail_header = "From: ".$mail_name." <".$mail_email.">\n";
          $mail_header .= "X-Sender-IP: $ip\n";
          $mail_header .= "Content-Type: text/plain";
          if (@mail($mailto,$mail_subject,$text,$mail_header)) $sent = true; else $errors[] = "no connection to the mailserver - please try again later";
        }

        // copy to sender:
        if (isset($sent) && isset($email) && $email != "" && isset($_POST['copy']))
        {
          if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "") $copy_mail_text = "Copy of the e-mail:\n\n".$text."\n\nAttachment: ".$_FILES['probe']['name']; else $copy_mail_text = "Copy of the e-mail:\n\n".$text;
          $header= "From: ".$mailto."\n";
          $header .= "X-Sender-IP: ".$ip."\n";
          $header .= "Content-Type: text/plain";
          @mail($email, $mail_subject, $copy_mail_text, $header);
        }
      }
    }

    if (empty($sent))
    {
      if(isset($errors))
      {
        ?><p class="caution">Error:</p><ul><?php foreach($errors as $f) { ?><li><?php echo $f; ?></li><?php } ?></ul><br /><?php
      }

      ?><form method="post" action="<?php echo basename($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data"><div>
      <p><b>Name:</b><br /><input type="text" name="name" value="<?php if (isset($name)) echo htmlentities(stripslashes($name)); else echo ""; ?>" size="35" /></p>
      <p><b>E-mail:</b><br /><input type="text" name="email" value="<?php if (isset($email)) echo htmlentities(stripslashes($email)); else echo ""; ?>" size="35" /></p>
      <p><b>Subject:</b><br /><input type="text" name="subject" value="<?php if (isset($subject)) echo htmlentities(stripslashes($subject)); else echo ""; ?>" size="35" /></p>
      <p><b>Message:</b><br /><textarea name="text" cols="55" rows="12"><?php if (isset($text)) echo htmlentities(stripslashes($text)); else echo ""; ?></textarea></p>
      <b>Attachment:</b><br /><input type="file" name="probe" value="<?php if (isset($_POST['probe'])) echo htmlentities(stripslashes($_POST['probe'])); else echo ""; ?>" size="20"/></p>
      <br /><br />
      <p><input type="submit" name="form_submitted" value="OK - Submit" /> <input type="checkbox" name="copy" value="true" /> Copy to sender</p>
      </div></form><?php
    }
    else
    {
      if (empty($email)) { ?><p><b>Thank you!</b><br />The message has been sent successfully but you didn't specify your e-mail address so I can't reply.</p><?php }
      else { ?><p><b>Thank you!</b><br />The message has been sent successfully.</p><?php }
    }
    </body>
    </html>
Avatar billede dotcom1 Nybegynder
26. januar 2005 - 14:14 #7
Svar
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