Extra velden toevoegen in contact form

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rens Degenhart

Rens Degenhart

01/02/2011 17:08:51
Quote Anchor link
Hallo,

Wij gebruiken een simpel contact form op onze website, maar deze wil ik uitbreiden met extra velden. Ik heb deze velden toegevoegd in contactscript.php. Als ik klik op voorbeeld html, zie ik beide extra velden staan. Ga ik naar het contact form op de website en test het dan zie je de velden niet en werkt het ook niet.

moet ik ergens anders ook vermelden dat ik extra velden heb???

Nu zie ik staan:

Contactform.text
Contactscript.php
form.php
index.html
Thanks.php

Alvast bedankt.
Rens

ps, kan ik ook een script maken dat als ik in gastenboek of contact form zit, ik rechtstreeks terug kan naar onze website.
 
PHP hulp

PHP hulp

20/04/2024 16:24:51
 
Chrisy teleukomwaartezijn

chrisy teleukomwaartezijn

01/02/2011 17:19:46
Quote Anchor link
alles wat jij zegt kan, ik heb het zelf gemaakt. ik heb een script gemaakt dat je velden via de website kan beheren. (let wel, 1100 regels!)

maar ik kan hiervandaan niet ruiken wat er in die bestanden staan. post de scripts eens hier op het forum, dan kunnen we al meer.
 
Obelix Idefix

Obelix Idefix

01/02/2011 17:50:40
Quote Anchor link
Heb je het bestand op je pc aangepast, maar nog niet geupload naar je webruimte?
Anders kan het zijn dat je cache nog het oude formulier heeft/laat zien.

Hoeveel kennis heb je van html en/of php? Wat je wilt kan idd allemaal en is niet zo moeilijk. Als je (enige) kennis hebt. Overigens vind ik dat een site altijd het menu moet laten zien, zodat de bezoeker zich makkelijk kan verplaatsen over de site. Afgaande op je vraagstelling lijkt dat nu op jullie site niet het geval.

Met welk programma maak je de website?

Heb je in het aangepaste formulier ook invoercontrole?
Wat staat er in Contactform.text? text is geen internet-bestandsformaat.
Gewijzigd op 01/02/2011 17:54:22 door Obelix Idefix
 
Rens Degenhart

Rens Degenhart

01/02/2011 18:08:53
Quote Anchor link
Het contact form laat nu 3 velden zien.

Naam
Email adres
Commentaar en/of opmerking
annuleer
bevestig

Nu wil ik 2 velden toevoegen te weten, Tel nr en Onderwerp.

Zoals ik eerder al vermelde had ik deze velden toegevoegd in "form.php"

In het voorbeeld laat hij deze dan gewoon zien, alleen werkt het niet???


Zoals het was, Form php

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
<form name="form" method="post" action="/contactform/contactscript.php">
<table width="400" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td width="200" valign="top" align="right">Naam: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="name" size="25" maxlength="200" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Emailadres: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="email" size="25" maxlength="100" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Commentaar en/of opmerking: </td>
    <td width="200" valign="top" align="left">
      <textarea name="msg" cols="25" rows="4"></textarea>
    </td>
  </tr><tr>
    <td width="200" valign="top"> </td>
    <td width="200" valign="top" align="left">
      <input type="reset" name="Reset" value="Annuleer" />
      <input type="submit" name="Submit" value="Bevestig" />
    </td>
  </tr>
</table>
</form>


Aangepast!!, Form.php

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
<form name="form" method="post" action="/contactform/contactscript.php">
<table width="400" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td width="200" valign="top" align="right">Naam: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="name" size="25" maxlength="200" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Tel nr: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="name" size="25" maxlength="200" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Emailadres: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="email" size="25" maxlength="100" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Onderwerp: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="name" size="25" maxlength="200" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Commentaar en/of opmerking: </td>
    <td width="200" valign="top" align="left">
      <textarea name="msg" cols="25" rows="4"></textarea>
    </td>
  </tr><tr>
    <td width="200" valign="top"> </td>
    <td width="200" valign="top" align="left">
      <input type="reset" name="Reset" value="Annuleer" />
      <input type="submit" name="Submit" value="Bevestig" />
    </td>
  </tr>
</table>
</form>


Mijn kennis van php is minimaal

Ik gebruik Webdesign Pro 4

Webadres hd-assendelft.nl

In contact form en gastenboek wil ik een knop hebben die de bezoekers terug brengt naar de website.

Groetjes,
Rens



Toevoeging op 01/02/2011 19:40:59:

Rens Degenhart op 01/02/2011 18:08:53:
Het contact form laat nu 3 velden zien.

Naam
Email adres
Commentaar en/of opmerking
annuleer
bevestig


Nu wil ik 2 velden toevoegen te weten, Tel nr en Onderwerp.

Zoals ik eerder al vermelde had ik deze velden toegevoegd in "form.php"

In het voorbeeld laat hij deze dan gewoon zien, alleen werkt het niet???

Zoals het was, Form php

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
<form name="form" method="post" action="/contactform/contactscript.php">
<table width="400" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td width="200" valign="top" align="right">Naam: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="name" size="25" maxlength="200" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Emailadres: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="email" size="25" maxlength="100" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Commentaar en/of opmerking: </td>
    <td width="200" valign="top" align="left">
      <textarea name="msg" cols="25" rows="4"></textarea>
    </td>
  </tr><tr>
    <td width="200" valign="top"> </td>
    <td width="200" valign="top" align="left">
      <input type="reset" name="Reset" value="Annuleer" />
      <input type="submit" name="Submit" value="Bevestig" />
    </td>
  </tr>
</table>
</form>


Aangepast!!, Form.php

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
<form name="form" method="post" action="/contactform/contactscript.php">
<table width="400" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td width="200" valign="top" align="right">Naam: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="name" size="25" maxlength="200" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Tel nr: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="name" size="25" maxlength="200" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Emailadres: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="email" size="25" maxlength="100" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Onderwerp: </td>
    <td width="200" valign="top" align="left">
      <input type="text" name="name" size="25" maxlength="200" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Commentaar en/of opmerking: </td>
    <td width="200" valign="top" align="left">
      <textarea name="msg" cols="25" rows="4"></textarea>
    </td>
  </tr><tr>
    <td width="200" valign="top"> </td>
    <td width="200" valign="top" align="left">
      <input type="reset" name="Reset" value="Annuleer" />
      <input type="submit" name="Submit" value="Bevestig" />
    </td>
  </tr>
</table>
</form>


Mijn kennis van php is minimaal

Ik gebruik Webdesign Pro 4

Webadres hd-assendelft.nl

In contact form en gastenboek wil ik een knop hebben die de bezoekers terug brengt naar de website.

Groetjes,
Rens


[Hopelijk kan iemand me verder helpen]

Graag in het vervolg bij code, [code] [/code] tags gebruiken. [/modedit]
Gewijzigd op 01/02/2011 23:00:13 door Bas IJzelendoorn
 
Obelix Idefix

Obelix Idefix

01/02/2011 22:51:51
Quote Anchor link
Begin bij het begin en lees wat tut's/boeken over html en formulieren. Waar je hier boven mee bezig bent, heeft nog niet zo veel met php te maken (komt bij het controleren van het formulier).

Je noemt nu zowel naam, tel.nr en onderwerp 'name'. Dat gaat in ieder geval niet goed.
Maxlength van 200 voor een tel.nr. lijkt me ook wat overdreven.

Als ik je verhaal goed begrijp, zie je online het gewijzigde formulier niet, maar op je pc wel? In dat geval zul je het formulier nog moeten uploaden naar je hosting. Is dat ook gebeurd?
 
Robbert de Brock

Robbert de Brock

02/02/2011 00:48:31
Quote Anchor link
In contactscript.php moet je die velden ook nog toevoegen want in dat script verstuurt ie alles als het goed is naar je mail en als je een knopje wil die je terug brengt naar de website dan maak je gewoon een plaatje met tekst 'Terug naar website' ofzo en daar een hyperlink opzetten dit stukje code bijvoorbeeld (back.png is jou plaatje die je dan zelf even moet maken)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<a href="http://www.hd-assendelft.nl">
<img border="0" src="images/back.png" width="170" height="37"></a>


Toevoeging op 02/02/2011 00:53:00:

Kom je er niet uit post dan eventjes contactscript.php
Gewijzigd op 02/02/2011 02:55:02 door Robbert de Brock
 
Rens Degenhart

Rens Degenhart

02/02/2011 17:35:58
Quote Anchor link
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
<?php
    // VALUES FROM THE FORM
    $name        = $_POST['name'];
    $email        = $_POST['email'];
    $message    = $_POST['msg'];

    // ERROR & SECURITY CHECKS
    if ( ( !$email ) ||
         (
strlen($_POST['email']) > 200 ) ||
         ( !
preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
       )
    {

        print "Error: Invalid E-Mail Address";
        exit;
    }

    if ( ( !$name ) ||
         (
strlen($name) > 100 ) ||
         (
preg_match("/[:=@\<\>]/", $name) )
       )
    {

        print "Error: Invalid Name";
        exit;
    }

    if ( preg_match("#cc:#i", $message, $matches) )
    {

        print "Error: Found Invalid Header Field";
        exit;
    }

    if ( !$message )
    {

        print "Error: No Message";
        exit;
    }

    if (eregi("\r",$email) || eregi("\n",$email)){
        print "Error: Invalid E-Mail Address";
        exit;
    }

    if (FALSE) {
        print "Error: You cannot send to an email address on the same domain.";
        exit;
    }



    // CREATE THE EMAIL
    $headers    = "Content-Type: text/plain; charset=iso-8859-1\n";
    $headers    .= "From: $name <$email>\n";
    $recipient    = "[email protected]";
    $subject    = "Contact From Your Website";
    $message    = wordwrap($message, 1024);

    // SEND THE EMAIL TO YOU
    mail($recipient, $subject, $message, $headers);

    // REDIRECT TO THE THANKS PAGE
    header("location: thanks.php");
?>



Hoi Robbert, dit is het contactscript.php

Snap alleen niet waar ik de veranderingen moet toevoegen.
Dat wat Obelix aangaf heb ik aangepast

Alvast bedankt voor de genomen moeite
 
Obelix Idefix

Obelix Idefix

02/02/2011 17:43:15
Quote Anchor link
Onder // VALUES FROM THE FORM zul je de 2 nieuwe variabelen nog moeten toevoegen.
Overigens gebruik je eregi in het script --> is verouderd.
Of je mail-functie voldoet aan alle eisen, weet ik niet, maar meestal wordt geadviseerd om php-mailer of swift-mailer te gebruiken.
Breek je het verwerken af als er een veld niet goed is ingevuld? En de controle van de rest laat je nog even achterwege. Is het niet vriendelijker om alle fouten in 1x weer te geven?

Haal het mailadres even uit je code.
 
Robbert de Brock

Robbert de Brock

02/02/2011 19:53:56
Quote Anchor link
form.php

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
<form name="form" method="post" action="/contactform/contactscript.php">
<table width="414" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td width="200" valign="top" align="right">Naam: </td>
    <td width="251" valign="top" align="left">
      <input type="text" name="name" size="18" maxlength="20" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Tel nr: </td>
    <td width="251" valign="top" align="left">
      <input type="text" name="tel" size="18" maxlength="10" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">E-mailadres: </td>
    <td width="251" valign="top" align="left">
      <input type="text" name="email" size="18" maxlength="40" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Onderwerp: </td>
    <td width="251" valign="top" align="left">
      <input type="text" name="onderwerp" size="18" maxlength="30" />
    </td>
  </tr><tr>
    <td width="200" valign="top" align="right">Bericht: </td>
    <td width="251" valign="top" align="left">
      <textarea name="msg" cols="27" rows="6"></textarea></td>
  </tr><tr>
    <td width="200" valign="top"> </td>
    <td width="251" valign="top" align="left">
      &nbsp;<input type="submit" name="Submit" value="Verzenden" />
      <input type="reset" name="Reset" value="Invoer wissen" />
    </td>
  </tr>
</table>
</form>


contactscript.php

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
<?php
    // VALUES FROM THE FORM
    $name        = $_POST['name'];
    $tel    = $_POST['tel'];
    $email        = $_POST['email'];
    $onderwerp        = $_POST['onderwerp'];
    $message    = $_POST['msg'];

    // ERROR & SECURITY CHECKS
    if ( ( !$email ) ||
         (
strlen($_POST['email']) > 40 ) ||
         ( !
preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
       )
    {

        print "Error: Invalid E-Mail Address";
        exit;
    }

    if ( ( !$name ) ||
         (
strlen($name) > 100 ) ||
         (
preg_match("/[:=@\<\>]/", $name) )
       )
    {

        print "Error: Invalid Name";
        exit;
        
            }

    if ( ( !$tel ) ||
         (
strlen($tel) > 10 ) ||
         (
preg_match("/[:=@\<\>]a-zA-Z/", $tel) )
       )
    {

        print "Error: Invalid Phonenumber";
        exit;
    }

    if ( preg_match("#cc:#i", $message, $matches) )
    {

        print "Error: Found Invalid Header Field";
        exit;
    }

    if ( !$message )
    {

        print "Error: No Message";
        exit;
    }

        if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) {
        print "Error: Invalid E-Mail Address";
        exit;
    }

    if (FALSE) {
        print "Error: You cannot send to an email address on the same domain.";
        exit;
    }



    // CREATE THE EMAIL
    $headers    = "Content-Type: text/plain; charset=iso-8859-1\n";
    $headers    .= "From: $name <$email>\n";
    $recipient    = "[email protected]";
    $subject    = "$onderwerp";
    $message    = wordwrap($tel, $message, 1024);

    // SEND THE EMAIL TO YOU
    mail($recipient, $subject, $message, $headers);

    // REDIRECT TO THE THANKS PAGE
    header("location: thanks.php");
?>


PS: weet niet cker of die klopt ben ook niet erg ervaren :P
 
Gerhard l

gerhard l

02/02/2011 20:14:24
Quote Anchor link
je gekopieerd onnodig varriabelen.

eerst kijken of er uberhaupt iets gepost is doe je met:
if($_SERVER['REQUEST_METHOD'] == 'POST'){

je posts controloren zou ik:
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
<?php
if(!isset($_POST['iets']) || blabla je andere controles){
$error = 'invalid';
}

elseif{

}

elseif{
}



//error eruithalen
if(isset($error)){
echo $error;
}

?>
 
Rens Degenhart

Rens Degenhart

03/02/2011 18:11:27
Quote Anchor link
Hallo forumgebruikers,

Ik heb beide scripts die aangepast zijn door Robbert toegepast, maar in contactscript zit een fout (denk ik) want het werkt niet. Ik krijg als ik het voorbeeld html bekijk een foutcode te zien??

40 ) || ( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) ) ) { print "Error: Invalid E-Mail Address"; exit; } if ( ( !$name ) || ( strlen($name) > 100 ) || ( preg_match("/[:=@\<\>]/", $name) ) ) { print "Error: Invalid Name"; exit; } if ( ( !$tel ) || ( strlen($tel) > 10 ) || ( preg_match("/[:=@\<\>]a-zA-Z/", $tel) ) ) { print "Error: Invalid Phonenumber"; exit; } if ( preg_match("#cc:#i", $message, $matches) ) { print "Error: Found Invalid Header Field"; exit; } if ( !$message ) { print "Error: No Message"; exit; } if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) { print "Error: Invalid E-Mail Address"; exit; } if (FALSE) { print "Error: You cannot send to an email address on the same domain."; exit; } // CREATE THE EMAIL $headers = "Content-Type: text/plain; charset=iso-8859-1\n"; $headers .= "From: $name <$email>\n"; $recipient = "mijnemailadres@mijnadres"; $subject = "$onderwerp"; $message = wordwrap($tel, $message, 1024); // SEND THE EMAIL TO YOU mail($recipient, $subject, $message, $headers); // REDIRECT TO THE THANKS PAGE header("location: thanks.php"); ?>


Tevens weet ik niet goed wat Gerard bedoeld met zijn antwoord en hoe ik het stukje script moet toepassen, heb tenslotte niet al te veel verstand van Php

Rens
 
Maarten PHP

Maarten PHP

03/02/2011 19:06:16
Quote Anchor link
Rens Degenhart op 03/02/2011 18:11:27:
Hallo forumgebruikers,

Ik heb beide scripts die aangepast zijn door Robbert toegepast, maar in contactscript zit een fout (denk ik) want het werkt niet. Ik krijg als ik het voorbeeld html bekijk een foutcode te zien??

40 ) || ( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) ) ) { print "Error: Invalid E-Mail Address"; exit; } if ( ( !$name ) || ( strlen($name) > 100 ) || ( preg_match("/[:=@\<\>]/", $name) ) ) { print "Error: Invalid Name"; exit; } if ( ( !$tel ) || ( strlen($tel) > 10 ) || ( preg_match("/[:=@\<\>]a-zA-Z/", $tel) ) ) { print "Error: Invalid Phonenumber"; exit; } if ( preg_match("#cc:#i", $message, $matches) ) { print "Error: Found Invalid Header Field"; exit; } if ( !$message ) { print "Error: No Message"; exit; } if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) { print "Error: Invalid E-Mail Address"; exit; } if (FALSE) { print "Error: You cannot send to an email address on the same domain."; exit; } // CREATE THE EMAIL $headers = "Content-Type: text/plain; charset=iso-8859-1\n"; $headers .= "From: $name <$email>\n"; $recipient = "mijnemailadres@mijnadres"; $subject = "$onderwerp"; $message = wordwrap($tel, $message, 1024); // SEND THE EMAIL TO YOU mail($recipient, $subject, $message, $headers); // REDIRECT TO THE THANKS PAGE header("location: thanks.php"); ?>


Tevens weet ik niet goed wat Gerard bedoeld met zijn antwoord en hoe ik het stukje script moet toepassen, heb tenslotte niet al te veel verstand van Php

Rens


is er iets met je server aan de hand
 
Robbert de Brock

Robbert de Brock

03/02/2011 19:08:02
Quote Anchor link
zal wel aan mij liggen dan denk ik ben ook iet zo ervaren heb ook maar wat geprobeert :P
 
Joris van Rijn

Joris van Rijn

03/02/2011 19:14:16
Quote Anchor link
PHPer PHPer op 03/02/2011 19:06:16:
Rens Degenhart op 03/02/2011 18:11:27:
Hallo forumgebruikers,

Ik heb beide scripts die aangepast zijn door Robbert toegepast, maar in contactscript zit een fout (denk ik) want het werkt niet. Ik krijg als ik het voorbeeld html bekijk een foutcode te zien??

40 ) || ( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) ) ) { print "Error: Invalid E-Mail Address"; exit; } if ( ( !$name ) || ( strlen($name) > 100 ) || ( preg_match("/[:=@\<\>]/", $name) ) ) { print "Error: Invalid Name"; exit; } if ( ( !$tel ) || ( strlen($tel) > 10 ) || ( preg_match("/[:=@\<\>]a-zA-Z/", $tel) ) ) { print "Error: Invalid Phonenumber"; exit; } if ( preg_match("#cc:#i", $message, $matches) ) { print "Error: Found Invalid Header Field"; exit; } if ( !$message ) { print "Error: No Message"; exit; } if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) { print "Error: Invalid E-Mail Address"; exit; } if (FALSE) { print "Error: You cannot send to an email address on the same domain."; exit; } // CREATE THE EMAIL $headers = "Content-Type: text/plain; charset=iso-8859-1\n"; $headers .= "From: $name <$email>\n"; $recipient = "mijnemailadres@mijnadres"; $subject = "$onderwerp"; $message = wordwrap($tel, $message, 1024); // SEND THE EMAIL TO YOU mail($recipient, $subject, $message, $headers); // REDIRECT TO THE THANKS PAGE header("location: thanks.php"); ?>


Tevens weet ik niet goed wat Gerard bedoeld met zijn antwoord en hoe ik het stukje script moet toepassen, heb tenslotte niet al te veel verstand van Php

Rens


is er iets met je server aan de hand


Deze code ga ik niet eens ontcijferen.
 
Rens Degenhart

Rens Degenhart

03/02/2011 19:21:28
Quote Anchor link
Joris van Rijn op 03/02/2011 19:14:16:
PHPer PHPer op 03/02/2011 19:06:16:
Rens Degenhart op 03/02/2011 18:11:27:
Hallo forumgebruikers,

Ik heb beide scripts die aangepast zijn door Robbert toegepast, maar in contactscript zit een fout (denk ik) want het werkt niet. Ik krijg als ik het voorbeeld html bekijk een foutcode te zien??

40 ) || ( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) ) ) { print "Error: Invalid E-Mail Address"; exit; } if ( ( !$name ) || ( strlen($name) > 100 ) || ( preg_match("/[:=@\<\>]/", $name) ) ) { print "Error: Invalid Name"; exit; } if ( ( !$tel ) || ( strlen($tel) > 10 ) || ( preg_match("/[:=@\<\>]a-zA-Z/", $tel) ) ) { print "Error: Invalid Phonenumber"; exit; } if ( preg_match("#cc:#i", $message, $matches) ) { print "Error: Found Invalid Header Field"; exit; } if ( !$message ) { print "Error: No Message"; exit; } if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) { print "Error: Invalid E-Mail Address"; exit; } if (FALSE) { print "Error: You cannot send to an email address on the same domain."; exit; } // CREATE THE EMAIL $headers = "Content-Type: text/plain; charset=iso-8859-1\n"; $headers .= "From: $name <$email>\n"; $recipient = "mijnemailadres@mijnadres"; $subject = "$onderwerp"; $message = wordwrap($tel, $message, 1024); // SEND THE EMAIL TO YOU mail($recipient, $subject, $message, $headers); // REDIRECT TO THE THANKS PAGE header("location: thanks.php"); ?>


Tevens weet ik niet goed wat Gerard bedoeld met zijn antwoord en hoe ik het stukje script moet toepassen, heb tenslotte niet al te veel verstand van Php

Rens


is er iets met je server aan de hand


Deze code ga ik niet eens ontcijferen.
[Ja sorry Joris, dat vraag ik ook niet, heb alleen ter goeder trouw gehandeld en de aangepaste versie van Robbert toegepast. In ieder geval, werkt het niet meer, en ga ik kijken wat er te redden valt]
 
Obelix Idefix

Obelix Idefix

03/02/2011 20:14:36
Quote Anchor link
Bestanden wel als php opgeslagen en niet als html?
Hoe bekijk je ze? Direct in de browser?
Gewijzigd op 03/02/2011 20:16:12 door Obelix Idefix
 
Rens Degenhart

Rens Degenhart

03/02/2011 20:23:02
Quote Anchor link
Obelix en Idefix op 03/02/2011 20:14:36:
Bestanden wel als php opgeslagen en niet als html?
Hoe bekijk je ze? Direct in de browser?


[Contactform is een Php programma en heeft een knop om het in html te bekijken. Als je iets aanpast kun je dus gelijk zien hoe het eruit ziet]
 
Obelix Idefix

Obelix Idefix

03/02/2011 20:40:12
Quote Anchor link
Rens Degenhart op 03/02/2011 20:23:02:
[Contactform is een Php programma en heeft een knop om het in html te bekijken. Als je iets aanpast kun je dus gelijk zien hoe het eruit ziet]

Begrijp mogelijk je tekst verkeerd, maar php-code in html bekijken gaat volgens mij problemen geven.

Je geeft in je andere post aan niet veel php-kennis te hebben. Begin aub bij het begin en leer wat php-basis. Gebruik goede programma's om code mee te schrijven en test het online of bv door xampp te gebruiken.
Gewijzigd op 03/02/2011 20:42:05 door Obelix Idefix
 
Robbert de Brock

Robbert de Brock

03/02/2011 21:52:20
Quote Anchor link
Ja inderdaad zoals astrix zegt
online testen doe ik zelf ook altijd... aanpassen testen, werkt het niet weer wat anders proberen en zo maar door, maar dit is onmogelijk te doen voor mij aangezien ik jou complete php files niet heb.
 
Rens Degenhart

Rens Degenhart

16/02/2011 21:10:35
Quote Anchor link
Hallo allemaal,

Ik heb een heel mooi contactformulier gevonden, maar krijg het niet te zien op mijn website, zou iemand het script na kunnen kijken en mij kunnen wijzen op eventuele fouten.

Volgens de author moet ik twee scripts plaatsen contactformulier.php ( heb ik veranderd in index.php) op aanraden van onze host.
En de map metspambeveiliging.html.

ps, Vergeten te melden, als ik op contactformulier klik op onze website krijg ik een witte pagina te zien met de tekst " Het formulier is niet verzonden, probeer het nog een keer"



INDEX.PHP


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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
<?PHP

define('kOptional', true);
define('kMandatory', false);

error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set('track_errors', true);

function
CaptchaGenerator() {

 if ( (!function_exists('imagejpeg')) && (!function_exists('imagepng')) ) {
  exit;
 }


 $im = imagecreate(100,40);

 $white = imagecolorallocate($im, 255, 255, 255);
 $black = imagecolorallocate($im, 0, 0, 0);
 $gray = imagecolorallocate($im, 150, 150, 150);

 imagerectangle($im, 0, 0, 25, 39, $gray);
 imagerectangle($im, 25, 0, 50, 39, $gray);
 imagerectangle($im, 50, 0, 75, 39, $gray);
 imagerectangle($im, 75, 0, 99, 39, $gray);

 imageline($im, 0, 0, 25, 39, $gray);
 imageline($im, 25, 0, 50, 39, $gray);
 imageline($im, 50, 0, 75, 39, $gray);
 imageline($im, 75, 0, 99, 39, $gray);

 imageline($im, 0, 39, 25, 0, $gray);
 imageline($im, 25, 39, 50, 0, $gray);
 imageline($im, 50, 39, 75, 0, $gray);
 imageline($im, 75, 39, 99, 0, $gray);

 $c1 = rand(65, 90);
 $c2 = rand(65, 90);
 $c3 = rand(65, 90);
 $c4 = rand(65, 90);
 $c5 = rand(65, 90);

 $textOut = chr($c1) . ' ' . chr($c2) . ' ' . chr($c3) . ' ' . chr($c4) . ' ' . chr($c5);
 $textCaptcha = chr($c1) . chr($c2) . chr($c3) . chr($c4) . chr($c5);

 $a = imagestring($im, 5, 11, 13, $textOut, $black);

 $fileName = substr(md5($textCaptcha), 0, 12);

 $captchaDir = '../captchabestanden/';

 if ( !is_dir( $captchaDir ) ) {
  echo '<html><head><title>Error</title></head><body>Access Code Validatie Error: directory &quot;../captchabestanden&quot; niet gevonden. Script zal nu stoppen.</body></html>';
  exit;
 }


 if ( !is_writable( $captchaDir ) ) {
  echo '<html><head><title>Error</title></head><body>Access Code Validatie Error: directory &quot;../captchabestanden&quot; is niet beschrijfbaar. Script zal nu stoppen.</body></html>';
  exit;
 }


 $handle = opendir( $captchaDir );

 while ( $captchaFile = readdir($handle) ) {
  if ( ( substr($captchaFile, 0, 1) != '.' ) && ( substr($captchaFile, 0, 1) != '_' ) && ( !is_dir( '../captchabestanden/' . '/' . $captchaFile ) ) ) {
   if ( ( filemtime( '../captchabestanden/' . '/' . $captchaFile ) + 300 ) < time() ) {
    unlink( '../captchabestanden/' . '/' . $captchaFile );
   }
  }
 }


 closedir( $handle );

 $handle = @fopen( '../captchabestanden/' . '/' . $fileName, 'w' );

 if ( !$handle ) {
  echo '<html><head><title>Error</title></head><body>Access Code Validatie Error: het is onmogelijk gebleken om een captcha controle bestand te maken. Script zal nu stoppen.</body></html>';
  exit;
 }

 
 fclose($handle);

 if (imagetypes() & IMG_JPG) {
  header('Content-type: image/jpeg');
  imagejpeg($im);
 }
elseif (imagetypes() & IMG_PNG) {
  header('Content-type: image/png');
  imagepng($im);
 }

 exit;

}

function
DoStripSlashes($fieldValue)  {
 if ( get_magic_quotes_gpc() ) {
  if (is_array($fieldValue) ) {
   return array_map('DoStripSlashes', $fieldValue);
  }
else {
   return stripslashes($fieldValue);
  }
 }
else {
  return $fieldValue;
 }
}

function
FilterCChars($theString) {
 return preg_replace('/[\x00-\x1F]/', '', $theString);
}

function
CheckFTGCaptcha($accessCode) {

 $captchaDir = '../captchabestanden/';

 if ( !is_dir( $captchaDir ) ) {
  echo '<html><head><title>Error</title></head><body>Access Code Validatie Error: directory &quot;../captchabestanden&quot; niet gevonden. Script zal nu stoppen.</body></html>';
  exit;
 }


 $handle = opendir( $captchaDir );

 $fileAccessCode = substr( md5( $accessCode ), 0, 12 );

 while ( $captchaFile = readdir( $handle ) ) {
  if ( substr( $captchaFile, 0, 1 ) != '.' ) {
   if ( $fileAccessCode == $captchaFile ) {
    return true;
   }
  }
 }

 return false;
}

function
DeleteCaptcha($accessCode) {

 $captchaDir = '../captchabestanden/';

 if ( !is_dir( $captchaDir ) ) {
  echo '<html><head><title>Error</title></head><body>Access Code Validatie Error: directory &quot;../captchabestanden&quot; niet gevonden. Script zal nu stoppen.</body></html>';
  exit;
 }


 $handle = opendir( $captchaDir );

 $fileAccessCode = substr( md5( $accessCode ), 0, 12 );

 while ( $captchaFile = readdir( $handle ) ) {
  if ( ( substr( $captchaFile, 0, 1 ) != '.' ) && ( substr( $captchaFile, 0, 1 ) != '_' ) && ( !is_dir( '../captchabestanden/' . '/' . $captchaFile ) ) ) {
   if ( $fileAccessCode == $captchaFile ) {
    unlink( '../captchabestanden/' . '/' . $captchaFile );
    return;
   }
  }
 }

}


if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
 $clientIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else {
 $clientIP = $_SERVER['REMOTE_ADDR'];
}


if ( isset($_REQUEST['captchaimage']) ) {
 CaptchaGenerator();
 exit;
}


$FTGvoornaam = DoStripSlashes( $_POST['voornaam'] );
$FTGachternaam = DoStripSlashes( $_POST['achternaam'] );
$FTGadres = DoStripSlashes( $_POST['adres'] );
$FTGpostcodewoonplaats = DoStripSlashes( $_POST['postcodewoonplaats'] );
$FTGtelefoonnummer = DoStripSlashes( $_POST['telefoonnummer'] );
$FTGemailadres = DoStripSlashes( $_POST['emailadres'] );
$FTGopmerkingen = DoStripSlashes( $_POST['opmerkingen'] );
$FTGbeveiliging = DoStripSlashes( $_POST['beveiliging'] );
$FTGverzenden = DoStripSlashes( $_POST['verzenden'] );

$validationFailed = false;

if (!CheckFTGCaptcha($FTGbeveiliging)) {
 $FTGErrorMessage['beveiliging'] = '';
 $validationFailed = true;
}


if ($validationFailed === true) {

 $errorPage = '<html><head><title>Error</title></head><body>Het formulier is niet verstuurd. probeer het nogmaals.</body></html>';

 $errorPage = str_replace('<!--FIELDVALUE:voornaam-->', $FTGvoornaam, $errorPage);
 $errorPage = str_replace('<!--FIELDVALUE:achternaam-->', $FTGachternaam, $errorPage);
 $errorPage = str_replace('<!--FIELDVALUE:adres-->', $FTGadres, $errorPage);
 $errorPage = str_replace('<!--FIELDVALUE:postcodewoonplaats-->', $FTGpostcodewoonplaats, $errorPage);
 $errorPage = str_replace('<!--FIELDVALUE:telefoonnummer-->', $FTGtelefoonnummer, $errorPage);
 $errorPage = str_replace('<!--FIELDVALUE:emailadres-->', $FTGemailadres, $errorPage);
 $errorPage = str_replace('<!--FIELDVALUE:opmerkingen-->', $FTGopmerkingen, $errorPage);
 $errorPage = str_replace('<!--FIELDVALUE:beveiliging-->', $FTGbeveiliging, $errorPage);
 $errorPage = str_replace('<!--FIELDVALUE:verzenden-->', $FTGverzenden, $errorPage);

 $errorList = @implode("<br />\n", $FTGErrorMessage);
 $errorPage = str_replace('<!--VALIDATIONERROR-->', $errorList, $errorPage);

 echo $errorPage;

}


if ( $validationFailed === false ) {

 $emailSubject = FilterCChars("Hier komt de titel van de e-mail die je zelf krijgt.");
  
 $emailBody = "Voornaam : $FTGvoornaam\n"
  . "Achternaam : $FTGachternaam\n"
  . "Adres : $FTGadres\n"
  . "Postcode + woonplaats : $FTGpostcodewoonplaats\n"
  . "Telefoonnummer : $FTGtelefoonnummer\n"
  . "E-mailadres : $FTGemailadres\n"
  . "Opmerkingen : $FTGopmerkingen";
  $emailTo = 'jouw naam <[email protected]>';
  
  $emailFrom = FilterCChars("[email protected]");
  
  $emailHeader = "From: $emailFrom\n"
   . "MIME-Version: 1.0\n"
   . "Content-type: text/plain; charset=\"ISO-8859-1\"\n"
   . "Content-transfer-encoding: 7bit\n";
  
  mail($emailTo, $emailSubject, $emailBody, $emailHeader);
  
  DeleteCaptcha($FTGbeveiliging);

$successPage = '<html><head><title>Success</title></head><body>Het formulier is succesvol verstuurd.</body></html>';

$successPage = str_replace('<!--FIELDVALUE:voornaam-->', $FTGvoornaam, $successPage);
$successPage = str_replace('<!--FIELDVALUE:achternaam-->', $FTGachternaam, $successPage);
$successPage = str_replace('<!--FIELDVALUE:adres-->', $FTGadres, $successPage);
$successPage = str_replace('<!--FIELDVALUE:postcodewoonplaats-->', $FTGpostcodewoonplaats, $successPage);
$successPage = str_replace('<!--FIELDVALUE:telefoonnummer-->', $FTGtelefoonnummer, $successPage);
$successPage = str_replace('<!--FIELDVALUE:emailadres-->', $FTGemailadres, $successPage);
$successPage = str_replace('<!--FIELDVALUE:opmerkingen-->', $FTGopmerkingen, $successPage);
$successPage = str_replace('<!--FIELDVALUE:beveiliging-->', $FTGbeveiliging, $successPage);
$successPage = str_replace('<!--FIELDVALUE:verzenden-->', $FTGverzenden, $successPage);

echo $successPage;

}


?>



METSPAMBEVEILIGING.HTML


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>contactformulier HD-Assendelft</title>
<style type="text/css">
<!--
-->
</style>
</head>

<body>
<form id="contactformulier" name="contactformulier" method="post" action="formulier/contactformulier.php">
<table width="614" border="0" align="center">
<tr>
<td colspan="2"><h4><span class="style1">Contactformulier HD-Assendelft</span></h4></td>
</tr>
<tr>
<td>Voornaam:</td>
<td><label>
<input type="text" name="voornaam" id="voornaam" />
</label></td>
</tr>
<tr>
<td>Achternaam:</td>
<td><label>
<input type="text" name="achternaam" id="achternaam" />
</label></td>
</tr>
<tr>
<td>Adres:</td>
<td><label>
<input type="text" name="adres" id="adres" />
</label></td>
</tr>
<tr>
<td>Postcode + woonplaats:</td>
<td><label>
<input type="text" name="postcodewoonplaats" id="postcodewoonplaats" />
</label></td>
</tr>
<tr>
<td>Telefoonnummer:</td>
<td><label>
<input type="text" name="telefoonnummer" id="telefoonnummer" />
</label></td>
</tr>
<tr>
<td>E-mailadres:</td>
<td><label>
<input type="text" name="emailadres" id="emailadres" />
</label></td>
</tr>
<tr>
<td>Opmerkingen</td>
<td><label>
<textarea name="opmerkingen" id="opmerkingen" cols="45" rows="5"></textarea>
</label></td>
</tr>
<tr>
<td>Captcha - <img src="http://www.hd-assendelft.nl/formulier/contactformulier.php?captchaimage=yes" /></td>
<td><label>
<input type="text" name="beveiliging" id="beveiliging" />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="verzenden" id="verzenden" value="verzenden" /></td>
</tr>
</table>
</form>
</body>
</html>
Gewijzigd op 16/02/2011 21:25:53 door Rens Degenhart
 
- SanThe -

- SanThe -

16/02/2011 21:17:46
Quote Anchor link
Rens Degenhart op 01/02/2011 18:08:53:
Graag in het vervolg bij code, [code] [/code] tags gebruiken. [/modedit]
 



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.