30. marts 2009 - 18:07Der er
10 kommentarer og 1 løsning
Ekstra felter i php mailform?
Godaften. Jeg har fundet en god mailform, med mlighed for at vedhæfte filer, men jeg vil gerne have tre ekstra felter: "adresse" "postnummer" og "telefonnummer". Jeg kan ikke lige helt overskue hvordan jeg sætter det ind ind PHP-koden, så den sender det med. Her er koden:
<?php if ($_SERVER['REQUEST_METHOD']=="POST"){
// we'll begin by assigning the To address and message subject $to="cozey@sol.dk"; $subject="E-mail with attachment";
// get the sender's name and email address // we'll just plug them a variable to be used later $from = stripslashes($_POST['fromname'])."<".stripslashes($_POST['fromemail']).">";
// generate a random string to be used as the boundary marker $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
// now we'll build the message headers $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: multipart/mixed;\r\n" . " boundary=\"{$mime_boundary}\"";
// here, we'll start the message body. // this is the text that will be displayed // in the e-mail $message="This is an example";
// next, we'll build the invisible portion of the message body // note that we insert two dashes in front of the MIME boundary // when we use it $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
// now we'll process our uploaded files foreach($_FILES as $userfile){ // store the file information to variables for easier access $tmp_name = $userfile['tmp_name']; $type = $userfile['type']; $name = $userfile['name']; $size = $userfile['size'];
// if the upload succeded, the file will exist if (file_exists($tmp_name)){
// check to make sure that it is an uploaded file and not a system file if(is_uploaded_file($tmp_name)){
// open the file for a binary read $file = fopen($tmp_name,'rb');
// read the file content into a variable $data = fread($file,filesize($tmp_name));
// close the file fclose($file);
// now we encode it and split it into acceptable length lines $data = chunk_split(base64_encode($data)); }
// now we'll insert a boundary to indicate we're starting the attachment // we have to specify the content type, file name, and disposition as // an attachment, then add the file content. // NOTE: we don't set another boundary to indicate that the end of the // file has been reached here. we only want one boundary between each file // we'll add the final one after the loop finishes. $message .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; } } // here's our closing mime boundary that indicates the last of the message $message.="--{$mime_boundary}--\n"; // now we just send the message if (@mail($to, $subject, $message, $headers)) echo "Message Sent"; else echo "Failed to send"; } else { ?> <p>Send an e-mail with an attachment:</p> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form1"> <p>From name: <input type="text" name="fromname"></p> <p>From e-mail: <input type="text" name="fromemail"></p> <p>File: <input type="file" name="file1"></p> <p>File: <input type="file" name="file2"></p> <p><input type="submit" name="Submit" value="Submit"></p> </form> <?php } ?>
Det kan evt. være fordi jeg har sat det ind på en anden måde end det der er skrevet tidligere. Her er min kode:
<?php if ($_SERVER['REQUEST_METHOD']=="POST"){
// we'll begin by assigning the To address and message subject $to="vindue@proinmotion.dk"; $subject="Tilmelding af vindue";
// get the sender's name and email address // we'll just plug them a variable to be used later $from = stripslashes($_POST['fromname'])."<".stripslashes($_POST['fromemail']).">";
// generate a random string to be used as the boundary marker $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
// now we'll build the message headers $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: multipart/mixed;\r\n" . " boundary=\"{$mime_boundary}\"";
// here, we'll start the message body. // this is the text that will be displayed // in the e-mail $adress = stripslashes($_POST['adress']); $postnum = stripslashes($_POST['postnum']); $city = stripslashes($_POST['city']); $tele = stripslashes($_POST['tele']); $message="Navn: ".$from." \n\nadresse: ".$adress." \n\npostnummer: ".$postnum." \n\ntelefon: ".$tele." \n\nBy: ".$city."";
// next, we'll build the invisible portion of the message body // note that we insert two dashes in front of the MIME boundary // when we use it $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
// now we'll process our uploaded files foreach($_FILES as $userfile){ // store the file information to variables for easier access $tmp_name = $userfile['tmp_name']; $type = $userfile['type']; $name = $userfile['name']; $size = $userfile['size'];
// if the upload succeded, the file will exist if (file_exists($tmp_name)){
// check to make sure that it is an uploaded file and not a system file if(is_uploaded_file($tmp_name)){
// open the file for a binary read $file = fopen($tmp_name,'rb');
// read the file content into a variable $data = fread($file,filesize($tmp_name));
// close the file fclose($file);
// now we encode it and split it into acceptable length lines $data = chunk_split(base64_encode($data)); }
// now we'll insert a boundary to indicate we're starting the attachment // we have to specify the content type, file name, and disposition as // an attachment, then add the file content. // NOTE: we don't set another boundary to indicate that the end of the // file has been reached here. we only want one boundary between each file // we'll add the final one after the loop finishes. $message .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; } } // here's our closing mime boundary that indicates the last of the message $message.="--{$mime_boundary}--\n"; // now we just send the message if (@mail($to, $subject, $message, $headers)) echo "Vinduet blev tilmeldt. Du vil blive kontaktet snarest muligt!"; else echo "Der opstod en fejl"; } else { ?> <FONT face="tahoma" size="2"> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form1"> <p>Navn: <input type="text" name="fromname"></p> <p>E-mail: <input type="text" name="fromemail"></p> <p>Adresse: <input type="text" name="adress"></p> <p>Postnr.: <input type="text" name="postnum"></p> <p>By: <input type="text" name="city"></p> <p>Telefon: <input type="text" name="tele"></p> <p>Billede 1: <input type="file" name="file1"></p> <p>Billede 2: <input type="file" name="file2"></p> <p>Ja tak, jeg vil gerne modtage nyhedsbrevet<input type="checkbox" name="fromcheckbox" checked> <p><input type="submit" name="Submit" value="Tilmeld"></p> </form> </font> <?php } ?>
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.