Emailformulier met bijlage.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Vitens

vitens

16/11/2005 14:41:00
Quote Anchor link
Ik heb een emailformulier met bijlage gemaakt aan de hand van dit voorbeeld: http://www.phphulp.nl/php/scripts/1/262/


Helaas staat er een fout in, ook in het origineel, bekijk het voorbeeld maar. Niets meesturen levert een aantal foutmeldingen en een lege .dat- bijlage op.
De bedoeling is dat het bericht zonder bijlage niet verzonden wordt.
De code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
//mail formulier voor bijlage
$email ='email@email';
//geneer boundary
DEFINE('bound',md5(uniqid(time())));
//check request method
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//if file upload send with email as mixed
if(!empty($_FILES['file'])){
//check filesize
if($_FILES['file']['size'] < 1024*5){
   $headers = "From: ".$_POST['url']." <".$_POST['email'].">\r\n";
   $headers .= "Reply-To: ".$_POST['url']." <".$_POST['email'].">\r\n";
   $headers .= "MIME-Version: 1.0\r\n";
   // Wat is de maximale groote van het bestand in bytes ( 1 kb = 1000 bytes )
   $max = "70000";  

   // Welke extensies kunnen er worden geupload ( als alles mag dan niks invullen )
   $ext = "jpg JPG gif GIF png PNG";
  
   //email bestaat uit meerdere  bestanden dus vertel wat de scheidings teken is en dat het een multipart is
   $headers .= "Content-Type: multipart/mixed; boundary=\"".bound."\"\r\n";
   //we zenden een attachment mee
   $headers .= "Content-Disposition:  attachment\r\n";

   //create body
   //generenen een body. Dit is een multi part gezeik

   $body.= "This is a multi-part message in MIME format.\r\n";
   $body.= "\r\n";
   //boundary
   $body.= "--".bound."\r\n";
   //content type + charater set (iso in dit geval)
   $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n";
   //codering (7 bit)
   $body.= "Content-Transfer-Encoding: 7bit\r\n";
   $body.= "\r\n";
   //het bericht
   $body.= $_POST['url'] ."\r\n";
   $body.= $_POST['titel/alt'] ."\r\n";
   $body.= $_POST['img_nr'] ."\r\n";
   $body.= $_POST['email'] ."\r\n";
   //boundary
   $body.= "--".bound."\r\n";
   //content type + naam bestand (database.sql)
   $body .= "Content-Type: application/octet-stream; name=".$_FILES['file']['name']."\r\n";
   //codering
   $body .= "Content-Transfer-Encoding: base64\r\n";
   //als bijlage toegevoegd
   $body.= "Content-disposition: attachment\r\n";
   $body .= "\n";
   //de inhoud van het bestand
   $body .= chunk_split(base64_encode($bestand )) . "\r\n";
   mail($email,$_POST['titel/alt'],$body,$headers);
    echo 'Uw aanvraag met afbeelding is correct verzonden, na acceptatie zal uw link z.s.m. op de homepage staan';
}
else{
echo 'Uw afbeelding is te groot of het formaat is onjuist. Alleen gif/jpg/png, max. 20x20 pixels <a href="free.php">overnieuw</a>';
}
}
else{  
   $headers = "From: ".$_POST['from']." <".$_POST['email'].">\r\n";
   $headers .= "Reply-To: ".$_POST['from']." <".$_POST['email'].">\r\n";
   $headers .= "MIME-Version: 1.0\r\n";
   $bericht = $_POST['email'];
   $bericht = $_POST['img_nr'];
   $bericht = $_POST['url'];
   $bericht = $_POST['titel/alt'];
   mail($email,$_POST['titel/alt'],$bericht,$headers);
   echo 'U heeft geen afbeelding geselecteerd om mee te sturen.';
}
}
else{
//mail formulier je moet zelf het fomullier maken
?>
 
PHP hulp

PHP hulp

18/05/2024 13:24:59
 

16/11/2005 14:58:00
Quote Anchor link
Doe dan een formulier check. Simpel toch
 
Vitens

vitens

16/11/2005 22:04:00
Quote Anchor link
Voor de een simpel, voor de ander niet. Ik ben er nu al een tijdje mee bezig maar kom er echt niet uit.
 
Jan Koehoorn

Jan Koehoorn

16/11/2005 22:39:00
Quote Anchor link
Hoi vitens,

ik begrijp uit je vraag dat het mogelijk is om via dit formulier een email te versturen met een bijlage, maar dat het fout gaat als de gebruiker geen bijlage uploadt?
Gewijzigd op 16/11/2005 22:40:00 door Jan Koehoorn
 
Willem Jan Z

Willem Jan Z

16/11/2005 22:43:00
Quote Anchor link
Hij moet de email niet versturen als er geen bijlage bij zit...
 
Jan Koehoorn

Jan Koehoorn

16/11/2005 22:52:00
Quote Anchor link
Ja, dus bijvoorbeeld een check in JavaScript of de input type file wel een waarde heeft.

Vitens, heb je de HTML code van het formulier?
 
Vitens

vitens

16/11/2005 23:47:00
Quote Anchor link
Dit is het formulier, Jan.


<form action='' method='post' enctype='multipart/form-data'>

<p>
<input type="text" name="url" size="30" value="http://"> Uw website </p>
<p>

<input type="text" name="email" size="30" > Uw email-adres </p>
<p>
<input type="text" name="titel/alt" size="30"> Alt tekst (bij mouse over) </p>
<P><input type="file" name="file"></P>
<span class="label"><label for="img_nr">

<input id="img_nr" name="img_nr" size="8" class="medium" type="text" value="0 - 0"></label></span>

</p>



<p>
<span class="label"></span>
<input id="verzenden" name="verzenden" type="submit" value="aanvragen">
</p>


</form>

Ik heb ook al op jouw site gekeken, Jan bij de voorbeelden over php formcheck. Daarmee lukte het niet. In bovenstaand script moet er iets fout zitten.
 
Vitens

vitens

18/11/2005 13:08:00
Quote Anchor link
ff weer onder de aandacht brengen.
 
Vitens

vitens

23/11/2005 14:13:00
Quote Anchor link
Ik ben er nog steeds niet uit.........
 

27/11/2005 14:04:00
Quote Anchor link
Helaas geen hulp hier op php-hulp.
 
Paul du Long

Paul du Long

27/11/2005 14:06:00
Quote Anchor link
kijk anders ff op sitemasters.be of phpfreakz.nl
 
Jan Koehoorn

Jan Koehoorn

27/11/2005 14:46:00
Quote Anchor link
vitens:
Helaas geen hulp hier op php-hulp.


Hoi Vietens,

de action='' van je form is leeg.
 
Alfred -

Alfred -

27/11/2005 15:40:00
Quote Anchor link
Jan:

de action='' van je form is leeg.


Lege action stuurt de gebruiker naar de huidige pagina terug? :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.