contactformulier PC extreme
Ik heb een contactformulier gedownload bij PCExtreme en dat werkt naar behoren, behalve dat de naam en het emailadres van de afzender niet meegezonden worden. Hierdoor weet je niet er een bericht heeft gestuurd en kan je niet reageren.
Ik zou heel blij zijn als iemand mij hiermee kan helpen waardoor het wel gaat werken.
Volgens de provider is het een vereiste dat het emailadres verbonden aan de website waar het contactformulier staat wordt gebruikt. Hieronder volgt 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
56
57
58
59
60
61
62
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
<?php
/*
*
* $to
* E-mailadres ontvanger bericht
*
* $from
* E-mailadres van de website waarop het formulier staat
* Dit is niet het e-mailadres van degene die het formulier invult
*
* $replyto
* E-mailadres van degene die het formulier invult
*
* $subject
* Onderwerp van bericht
*
* $message
* Inhoud van bericht
*
*
* Documentatie
* http://www.php.net/function.mail
*
*
*/
if ($_POST)
{
$to = "[email protected]";
$from = "[email protected]";
$replyto = $_POST['naam'] . " <" . $_POST['emailadres'] . ">";
$subject = "Wilt u contact met mij opnemen?";
$message = $_POST['message'];
$headers = "From: " . $from . "\n";
$headers .= "Return-path: " . $return-path . "\n";
$headers .= "Reply-to: " . $replyto . "\n";
if (mail($to, $subject, $message, $headers))
{
echo "<p>Succesvol verzonden!</p>";
}
else
{
echo "<p>Verzenden mislukt!</p>";
}
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
   Naam:<br />
   <input type="text" name="naam"><br />
   E-mailadres:<br />
   <input type="text" name="emailadres"><br />
   Bericht:<br />
   <textarea name="message" rows="5" cols="30" wrap="yes"></textarea><br />
   <input type="submit" value="Versturen">
</form>
/*
*
* $to
* E-mailadres ontvanger bericht
*
* $from
* E-mailadres van de website waarop het formulier staat
* Dit is niet het e-mailadres van degene die het formulier invult
*
* $replyto
* E-mailadres van degene die het formulier invult
*
* $subject
* Onderwerp van bericht
*
* $message
* Inhoud van bericht
*
*
* Documentatie
* http://www.php.net/function.mail
*
*
*/
if ($_POST)
{
$to = "[email protected]";
$from = "[email protected]";
$replyto = $_POST['naam'] . " <" . $_POST['emailadres'] . ">";
$subject = "Wilt u contact met mij opnemen?";
$message = $_POST['message'];
$headers = "From: " . $from . "\n";
$headers .= "Return-path: " . $return-path . "\n";
$headers .= "Reply-to: " . $replyto . "\n";
if (mail($to, $subject, $message, $headers))
{
echo "<p>Succesvol verzonden!</p>";
}
else
{
echo "<p>Verzenden mislukt!</p>";
}
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
   Naam:<br />
   <input type="text" name="naam"><br />
   E-mailadres:<br />
   <input type="text" name="emailadres"><br />
   Bericht:<br />
   <textarea name="message" rows="5" cols="30" wrap="yes"></textarea><br />
   <input type="submit" value="Versturen">
</form>
Graag in het vervolg bij code, [code] [/code] tags gebruiken. [/modedit]
Gewijzigd op 05/11/2010 14:11:51 door Bas IJzelendoorn
- er zit geen anti-spam beveiliging in en er wordt ook niet gecontroleerd of er een veld uberhaupt wordt ingevuld. Mijn tip is om te gaan kijken naar een ander mail formulier. Kijk anders even naar php swiftmailer.
Gewijzigd op 05/11/2010 14:21:03 door Joey Drieling
Bouw een formulier in HTML en voorzie de input velden van een name die daarbij past.
Vervolgens ga je als volgt te werk:
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Als er op submit is gedrukt voert hij dit uit.
if(empty($_POST['veldnaam']))
{
// Veld is leeg, geef een error o.i.d.
}
else
{
// Veld1 is niet leeg, controleer volgend veld met dezelfde constructie
if(empty($_POST['veld2']))
{
//error
}
else
{
// Alle velden gecontroleerd, verzenden:
$to = '[email protected]';
$from = 'From: '.$_POST['naam'].'<'.$_POST['email'].'>';
$subject = 'Bericht van website';
$message = "Dit is een bericht \r\n";
// met een \r geef je het einde van een regel aan, met \n maak je een nieuwe regel.
// Nu ga je verzenden:
if(mail($to, $subject, $message, $from))
{
// Geslaagd en verzonden, geef melding
echo 'verzonden!';
}
else
{
// Niet verzonden, geef error message
}
}
}
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Als er op submit is gedrukt voert hij dit uit.
if(empty($_POST['veldnaam']))
{
// Veld is leeg, geef een error o.i.d.
}
else
{
// Veld1 is niet leeg, controleer volgend veld met dezelfde constructie
if(empty($_POST['veld2']))
{
//error
}
else
{
// Alle velden gecontroleerd, verzenden:
$to = '[email protected]';
$from = 'From: '.$_POST['naam'].'<'.$_POST['email'].'>';
$subject = 'Bericht van website';
$message = "Dit is een bericht \r\n";
// met een \r geef je het einde van een regel aan, met \n maak je een nieuwe regel.
// Nu ga je verzenden:
if(mail($to, $subject, $message, $from))
{
// Geslaagd en verzonden, geef melding
echo 'verzonden!';
}
else
{
// Niet verzonden, geef error message
}
}
}
}
?>
Dit is geen werkbaar script maar slechts hoe je het moet doen, je zult deze zelf moeten uitbreiden enz, bijvoorbeeld niet alle velden worden hier gecontroleerd, daarvoor plaats je in elke else een if/else controle statement!
Gewijzigd op 05/11/2010 14:39:44 door Justin S
Bedankt voor jullie reacties, ik schrok er wel van. Dat zal wel even zoeken worden naar een nieuw script. Maar voor de volledigheid : moet ik dan ook zoeken naar een script dat het emailadres van de waar de site wordt gehost bevat, naast de geadresseerde en de ontvanger?
Ik heb een kant en klaar contactformulier voor je, alleen te groot om hier te plaatsen.
Je kunt hem als .pdf downloaden via de volgende link: http://ronvos.nl/contactform.pdf
Deze werkt gegarandeerd :-)
Vriendelijke groeten
Ron Vos
@Ron: Ook jouw headers zijn niet correct. Tevens is je html niet valid en zitten er kleine foutjes in de php-code.
In dit script kun je elke afzender opnemen die je wilt, in de praktijk gebruik ik altijd [email protected], maar dat kan alles zijn wat je wilt...
Suc7
Toevoeging op 06/11/2010 15:37:24:
Ik weet het SanThe, maar hij werkt feilloos en ik heb afgeleerd om me te veel in details te verdiepen, zit al veeeeeel te lang achter die laptop elke dag en soms 's nachts :-)
Groetjes
Ron
De From komt altijd van de website zelf of van de eigenaar van de site. In Reply-to komt de klant te staan.
Bedoel ik uiteraard :-))
Kan iemand mij helpen met het volgende topic ?.
Heb nog geen enkele reactie mogen ontvangen en ik ben juist zo blij met dit forum, in het verleden ben ik HEEEEL fijn geholpen...
http://www.phphulp.nl/php/forum/topic/eregreplace-naar-pregreplace/74175/last/
Toevoeging op 06/11/2010 16:54:05:
@Santhe
Probeer anders even het contacformulier op www.mirtos.nl, dan kun je zien hoe het in de praktijk werkt...
Verder heb ik het contactformulier van Ron Vos gedownload, de juiste emailadressen ingevuld, ook bij de From en alle velden. Ik heb het online gezet maar als ik het dan invul en verstuur dan krijg ik de melding : Please fill in all fields.Go Back
Ik weet niet wat ik moet veranderen om het werkend te krijgen.
Helaas...
- SanThe - op 06/11/2010 13:41:57:
@Justin: Jouw headers zijn niet correct.
http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
Het was slechts een werkwijze hoe je iets opzet :-)..