Image in mailform

  • Onderwerp starter Onderwerp starter mvk
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

mvk

Gebruiker
Lid geworden
9 nov 2006
Berichten
22
Ik zit me helemaal suf te piekeren hoe ik het voor elkaar moet krijgen dus ik hoop dat iemand de oplossing heeft.

Ik heb een html pagina waarin de bezoeker een formuliertje kan invullen. deze gegevens worden dan via verzenden.php verzonden naar mijn mailadres.

Nu wil ik alleen dat er standaard een plaatje wordt meeverzonden (bijlage.gif)

verzenden.php ziet er als volgt uit:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Verzenden...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="2;URL=bedankt.html">

</head>

<body>
<? 


$naam = $HTTP_POST_VARS["naam"];
$bedrijfsnaam = $HTTP_POST_VARS["bedrijfsnaam"];
$adres = $HTTP_POST_VARS["adres"];
$postcode = $HTTP_POST_VARS["postcode"];
$woonplaats = $HTTP_POST_VARS["woonplaats"];
$telefoon = $HTTP_POST_VARS["telefoon"];
$fax = $HTTP_POST_VARS["fax"];
$email = $HTTP_POST_VARS["email"];
$bericht = $HTTP_POST_VARS["bericht"];


// Email naar de beheerder 

mail("XXX@XXX.nl","Reactie via website"," 

De volgende aanvraag is gedaan via de website: 

$naam 
$bedrijfsnaam
$adres 
$postcode $woonplaats

Email: $email 
Telefoon: $telefoon 
Fax: $fax

Bericht:
$bericht 


","FROM: $naam <$email>" 
); 



//Bevesteging naar de bezoeker

mail("$email","Uw contact aanvraag"," 

We hebben uw aanvraag in behandeling genomen en zullen binnen enkele werkdagen contact met u opnemen. 

Met vriendelijke groet,
XXXX

","FROM: XXXXX <noreply@XXXX.nl>" 

); 


?>
</body>
</html>

Nu moet dus in het bericht naar de beheerder, ik dus een plaatje meegezonden worden.
Is dit te doen ?
 
Heel simpel

Upload je plaatje op je server
Link vanuit je email naar het plaatje op de server =)
 
Linken naar plaatje

Hey

Dat heb ik gedaan maar lukt niet.

<img src="http://www.domein.nl/plaatje.gif" width="100" height="100">

Dit had ik geplaatst in de verzenden.php maar dan krijg ik de volgende fout.

Parse error: syntax error, unexpected T_STRING in /home/xxx/domains/xxx.nl/public_html/test/Forms/verzenden.php on line 30
 
Ow wacht ><

je wilt hem als bijlage... Ik dacht in je pagina...
dat had moeten worden:

PHP:
mail("XXX@XXX.nl","Reactie via website","

De volgende aanvraag is gedaan via de website:

$naam
$bedrijfsnaam
$adres
$postcode $woonplaats

Email: $email
Telefoon: $telefoon
Fax: $fax

Bericht:
$bericht

Afbeelding:
<img src='http://www.domein.nl/plaatje.gif' width='100' height='100' />


","FROM: $naam <$email>"


Attachments kunnen wel... moet je even kijken op welke plek in de header van je mail ze moeten...

http://nl3.php.net/manual/en/function.mail.php

Ik heb het nog nooit gebruikt maar zie kort hier dat het wel kan (nog niet gevonden hoe)
 
img

Ik krijg nu geen foutmelding meer inderdaad. maar het plaatje staat niet in de mail., alleen gewoon die regel :

---------------
Bericht:
kjkjk


<img src='http://www.xxx.nl/Images/plaatje.gif' width='100' height='100' />
--------------------

Dus hij zet het niet om naar het plaatje (heb natuurlijk wel de goeie locatie in mn script gezet)
 
Persoonlijk zou ik niet werken met een bijlage omdat dat de mail veel groter maakt. Gewoon linken naar je server is een prima oplossing. (tegenwoordig gebeurd het niet meer zo vaak dat er mensen zijn die offline hun mail controleren, dus daar heb je geen last van).

De reden dat het neit werkt is omdat je het als text/plain verstuurd. Je moet even in de header toevoegen dat je HTML uitstuurt:

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($to, $subject, $message, $headers);

meer info op www.php.net/mail

Wout
 
fout

PHP:
<? 


$naam = $HTTP_POST_VARS["naam"];
$bedrijfsnaam = $HTTP_POST_VARS["bedrijfsnaam"];
$adres = $HTTP_POST_VARS["adres"];
$postcode = $HTTP_POST_VARS["postcode"];
$woonplaats = $HTTP_POST_VARS["woonplaats"];
$telefoon = $HTTP_POST_VARS["telefoon"];
$fax = $HTTP_POST_VARS["fax"];
$email = $HTTP_POST_VARS["email"];
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";


// Email naar de beheerder 




mail("maikel@xxxx.nl","Reactie via website","$headers","


De volgende aanvraag is gedaan via de website: 

$naam 
$bedrijfsnaam
$adres


Nou ik snap er geen snars meer van heb het erin gezet, maar nu stuurd ie de mail niet meer.
 
Laatst bewerkt:
Je moet ook wel goed lezen :).

PHP:
// Wel de complete headers kopieëren!!
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail("XXX@XXX.nl","Reactie via website","JE BERICHT PLAATS JE HIER!!!", $headers);

zie verder http://www.php.net/mail

Wout
 
SUPER!

nu heb ik hem door :) het is helemaal gelukt.

bedankt !
 
Goed dat het je gelukt is, want dan ga ik nu zeuren :P

Er word de laatste tijd vrij veel gebruik gemaakt van mail forms omdat je er zo makkelijk spam mee kan versturen. Dit moet je dus tegen gaan.
Bij elk php project dat je maakt moet je je gaan realiseren dat user input (Dus formulieren die je gaat verwerken in php bijvoorbeeld) altijd slecht is. Dus stel ik ben een hacker, en ik kom op je site, en zie je mail form, dan ga ik daar eens even lekker gebruik van maken door flink wat spam te versturen op jou naam....

Om dit tegen te gaan moet je alle user input controleren op dingen die niet thuis horen in de input. Meer hierover lees je op:
http://www.securephpwiki.com/index.php/Email_Injection
(ff een snelle google gaf me deze link: ) http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/php.html

Dus ff lezen over hoe je je code beschermt tegen de potentiële hacker op je website.

Succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan