Mail versturen vanuit website
Ik wil een formuliertje waarmee ik vanuit een website een email kan sturen. Ik wil zelf de ontvanger kunnen opgeven. Ik weet alleen niet hoe ik dit moet maken. Iemand een script of tut voor me?
Het mailen kan je het beste met swiftmailer doen, die heeft ook goede documentatie.
niet echt, heb wel een contact formulier op me site staan, maar dat is een script van deze site
site:phphulp.nl beginnershandleiding php.
Die tutorial helpt je op weg.
Die tutorial helpt je op weg.
ok, ben ook in de documentatie aan het kijken van swift mailer, ziet er goed uit
$afz = $_POST['afz'] ;
$headers = "from: $naam <$afz>";
en die zet je op het einde neer
mail($to,$onderwerp,$bericht,$headers);
zoals karl al zegt kan je beter iets gebruiken als swiftmailer
Jordi kroon op 18/12/2010 18:23:39:
daar heb je headers voor
$afz = $_POST['afz'] ;
$headers = "from: $naam <$afz>";
en die zet je op het einde neer
mail($to,$onderwerp,$bericht,$headers);
$afz = $_POST['afz'] ;
$headers = "from: $naam <$afz>";
en die zet je op het einde neer
mail($to,$onderwerp,$bericht,$headers);
Niet gebruiken!
Mail injection gevaar!
(van phphulp)
Zou ik dan niet beter de vervangen naar
en dan het script zelf ook ombouwen zodat je de een email adres moet opgeven om een mail naartoe te sturen?
Ik heb wat zitte proberen met die swiftmailer maar krijg het niet echt aan de praat. Ik heb momenteel dit scriptZou ik dan niet beter de vervangen naar
en dan het script zelf ook ombouwen zodat je de een email adres moet opgeven om een mail naartoe te sturen?
Beter is om gewoon die handleiding door te lezen. Je leert dan hoe je een formulier kan afhandelen, het enige wat je dan nog zelf moet verzinnen is hoe je het aan swiftmailer koppelt. Maar gelukkig is dat dus ook niet zo ingewikkeld.
Karl Karl op 18/12/2010 18:32:18:
Niet gebruiken!
Mail injection gevaar!
Jordi kroon op 18/12/2010 18:23:39:
daar heb je headers voor
$afz = $_POST['afz'] ;
$headers = "from: $naam <$afz>";
en die zet je op het einde neer
mail($to,$onderwerp,$bericht,$headers);
$afz = $_POST['afz'] ;
$headers = "from: $naam <$afz>";
en die zet je op het einde neer
mail($to,$onderwerp,$bericht,$headers);
Niet gebruiken!
Mail injection gevaar!
Aanvulling: In een mail vanaf een site is de From nooit de bezoeker maar de website. De bezoeker komt in de Reply to,
Dit is het script:
Code (php)
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
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
<?php
$mail_stuur = '[email protected]'
if(!isset($_POST['sumbit'])) //Kijken of het formulier al verstuurd is
{
if($_GET['email'] == "")
{
echo "Sorry, maar je bent vergeten een email adres in te vullen.";
}
elseif($_GET["onderwerp"] == "")
{
echo "Sorry, maar er is geen onderwerp ingevuld.";
}
elseif($_GET['bericht'] == "")
{
echo "Sorry, maar je bent vergeten een bericht in te vullen.";
}
elseif
{
echo "Sorry, maar er is iets fout gegaan. Probeer opnieuw.";
}
}
else
{
echo '
<div id="contact_form">
<form method="post" name="contact" action="#">
<input type="hidden" name="post" value="Send" />
<label for="naam">Naam:</label> <input type="text" id="naam" name="naam" class="required input_field" />
<div class="cleaner_h10"></div>
<label for="email">Email:</label> <input type="text" id="email" name="email" class="validate-email required input_field" />
<div class="cleaner_h10"></div>
<label for="onderwerp">Onderwerp:</label> <input type="text" name="onderwerp" id="onderwerp" class="input_field" />
<div class="cleaner_h10"></div>
<label for="bericht">Bericht:</label> <textarea id="bericht" name="bericht" rows="0" cols="0" class="required"></textarea>
<div class="cleaner_h10"></div>
<input type="submit" class="submit_btn float_l" name="submit" id="submit" value="Verstuur" />
<input type="reset" class="submit_btn float_r" name="reset" id="reset" value="Reset" />
</form>
</div>';
}
$headers = 'From: ' . ($_POST['naam']) . ' <' . $_POST['$mail_stuur'] . '>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
(mail($_POST['email'], $_POST['onderwerp'], $_POST['bericht'], $headers));
?>
$mail_stuur = '[email protected]'
if(!isset($_POST['sumbit'])) //Kijken of het formulier al verstuurd is
{
if($_GET['email'] == "")
{
echo "Sorry, maar je bent vergeten een email adres in te vullen.";
}
elseif($_GET["onderwerp"] == "")
{
echo "Sorry, maar er is geen onderwerp ingevuld.";
}
elseif($_GET['bericht'] == "")
{
echo "Sorry, maar je bent vergeten een bericht in te vullen.";
}
elseif
{
echo "Sorry, maar er is iets fout gegaan. Probeer opnieuw.";
}
}
else
{
echo '
<div id="contact_form">
<form method="post" name="contact" action="#">
<input type="hidden" name="post" value="Send" />
<label for="naam">Naam:</label> <input type="text" id="naam" name="naam" class="required input_field" />
<div class="cleaner_h10"></div>
<label for="email">Email:</label> <input type="text" id="email" name="email" class="validate-email required input_field" />
<div class="cleaner_h10"></div>
<label for="onderwerp">Onderwerp:</label> <input type="text" name="onderwerp" id="onderwerp" class="input_field" />
<div class="cleaner_h10"></div>
<label for="bericht">Bericht:</label> <textarea id="bericht" name="bericht" rows="0" cols="0" class="required"></textarea>
<div class="cleaner_h10"></div>
<input type="submit" class="submit_btn float_l" name="submit" id="submit" value="Verstuur" />
<input type="reset" class="submit_btn float_r" name="reset" id="reset" value="Reset" />
</form>
</div>';
}
$headers = 'From: ' . ($_POST['naam']) . ' <' . $_POST['$mail_stuur'] . '>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
(mail($_POST['email'], $_POST['onderwerp'], $_POST['bericht'], $headers));
?>
En dit is de warning die ik krijg als ik het script test:
Code (php)
1
Parse error: syntax error, unexpected T_IF in C:\xampp\htdocs\eigen design\Web Design V2\contact.php on line 112
Ter informatie, dit is rij 110 t.e.m. 113
Code (php)
1
2
3
4
2
3
4
$mail_stuur = '[email protected]'
if(!isset($_POST['sumbit'])) //Kijken of het formulier al verstuurd is
{
if(!isset($_POST['sumbit'])) //Kijken of het formulier al verstuurd is
{
Weet er iemand wat er fout is?
Controleer altijd de invoer. Nu is je script lek => email-injection.
En voor headers zie http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
Ok dankje, hij doet het nu wel. ;)
Je bedoelt:
$_POST['submit']
En ja, het is een bekende typfout...
- Aar - op 19/12/2010 00:11:58:
$_POST['sumbit']
Je bedoelt:
$_POST['submit']
En ja, het is een bekende typfout...
Je bedoelt:
$_POST['submit']
En ja, het is een bekende typfout...
wat is het verschil?? ik zie er geen verschil tussen namelijk
Toevoeging op 19/12/2010 00:27:22:
ik heb hem nu eens online gezet, maar wanneer ik naar de pagina ga waar het formulier staat, zou ik normaal een formulier moetten krijgen. Dit is echter niet het geval. Wanneer ik de pagina bezoek krijg ik volgend bericht:
Sorry, maar je bent vergeten een email adres in te vullen.
Jules Kreutzer op 19/12/2010 00:21:37:
wat is het verschil?? ik zie er geen verschil tussen namelijk
- Aar - op 19/12/2010 00:11:58:
$_POST['sumbit']
Je bedoelt:
$_POST['submit']
En ja, het is een bekende typfout...
Je bedoelt:
$_POST['submit']
En ja, het is een bekende typfout...
wat is het verschil?? ik zie er geen verschil tussen namelijk
sumBit moet zijn suBmit
Je gebruikt POST en GET door elkaar.
Maar hoe kan ik het dan het beste oplossen met die GET en POST?
Je schrijft in je code if($_GET['email'] == "") en dat klopt niet, het moet zijn if($_POST['email'] == ""). Dit gebeurt een paar keer. De waardes die uit een formulier komen zijn $_POST waardes en geen $_GET waardes.
Dus waar zouden de GET waarden vandaan moeten komen?