Toon posts:

[PHP] Contactformulier

Pagina: 1
Acties:
  • 58 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo allemaal,

Ik heb een vraag die ik hier niet heb kunnen vinden en ook niet bij google, dus daarom jullie raad!

Ik heb een contactformulier gemaakt dat gebruik maakt van een php bestand, ik zal de code's na mijn vraag hieronder neerzetten.

Nou doet mijn contactformulier het prima, maar als ik een verplicht veld wil toevoegen met:

if(strlen($voorletters) < 1) {
echo("U heeft uw voorletter(s) niet ingevuld<br><a href='#' onClick='history.go(-1)'>Terug</a>"); }
else {

dan geeft ie de volgende foutmelding aan:

"Parse error: parse error, unexpected $end in d:\www\voedingsadviesbur.nl\www\mailform.php on line 21"

Nou ben ik niet super bekend met PHP dus ik snap er niet heel veel van wat er precies fout gaat, ik heb al van alles geprobeerd en niks lukt! wie kan mij helpen??


Hieronder de code waarmee de foutmelding in beeld komt (als ik de variabele "voorletters" weghaal, dus regel 2 t/m 4, dan doet het formulier het wel)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
 if(strlen($voorletters) < 1) {
echo("U heeft uw voorletter(s) niet ingevuld<br><A href='#' onClick='history.go(-1)'>Terug</A>"); }
else {
 if(strlen($achternaam) < 1) {
echo("U heeft uw achternaam niet ingevuld<br><A href='#' onClick='history.go(-1)'>Terug</A>"); }
else {
 if(strlen($telefoon) < 10) {
echo("U heeft uw telefoonnummer niet of niet correct ingevuld<br><A href='#' onClick='history.go(-1)'>Terug</A>"); }
else {
 if(strlen($vraag) < 1) {
echo("U heeft geen vraag ingevuld<br><A href='#' onClick='history.go(-1)'>Terug</A>"); }
else {
$vraag =& str_replace( "\r\n.", "\r\n..", $vraag );
mail("email@domein.nl","Vraag","Voorletter(s): $voorletters \n \nTussenvoegsel: $tussenvoegsel \n \nAchternaam: $achternaam \n \nBedrijfsnaam: $bedrijfsnaam \n \nTelefoon: $telefoon \n \nEmail: $email \n \nVraag: $vraag","From: $voorletters $achternaam <$email>");
mail("$email", "Uw vraag", "Geachte heer/mevrouw $achternaam,\n \nUw mail is aangekomen, wij nemen zo spoedig mogelijk contact met u op.\n \nMet vriendelijke groet,\n \nVoedingsadviesbureau VIVA\n \nhttp://www.voedingsadviesbureau-viva.nl", "From: Voedingsadviesbureau VIVA <no-reply@voedingsadviesbureau-viva.nl>");
include("bevestiging.php");
}
}
}
?>


En nu de code van mijn formulier:

code:
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
<form method="post" action="mailform.php"> 
                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr> 
                    <td height="10" colspan="3">[img]"images/pixel.gif"[/img]</td>
                  </tr>
                  <tr> 
                    <td>Voorletter(s): *</td>
                    <td><input name="voorletters" type="text" id="voorletters" size="40"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Tussenvoegsels:</td>
                    <td><input name="tussenvoegsel" type="text" id="tussenvoegsel" size="40"></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Achternnaam: *</td>
                    <td><input name="achternaam" type="text" id="achternaam" size="40"></td>
                    <td width="10">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td width="10">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Bedrijfsnaam:</td>
                    <td><input name="bedrijfsnaam" type="text" id="bedrijfsnaam" size="40"></td>
                    <td width="10">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td width="10">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Telefoonnummer: *</td>
                    <td><input name="telefoon" type="text" id="telefoon" size="40"> 
                    </td>
                    <td width="10">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>E-mail adres: *</td>
                    <td><input name="email" type="text" id="email" size="40"> 
                    </td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td width="10">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>Vraag: *</td>
                    <td><textarea rows="7" name="vraag" cols="35"></textarea> 
                    </td>
                    <td width="10">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>* is een verplicht veld</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td width="10">&nbsp;</td>
                  </tr>
                  <tr> 
                    <td>&nbsp;</td>
                    <td><input type="submit" value="Verzenden" name="Verzenden" style="padding-top: 0"> 
                      <input type="reset" value="Wissen" name="B2"></td>
                    <td width="10">&nbsp;</td>
                  </tr>
                </table>
</form>


Alvast bedankt,

Louw

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
if(strlen($voorletters) < 1) {
   echo("U heeft uw voorletter(s) niet ingevuld<br><A href='#' onClick='history.go(-1)'>Terug</A>");
} else {
   if(strlen($achternaam) < 1) {
      echo("U heeft uw achternaam niet ingevuld<br><A href='#' onClick='history.go(-1)'>Terug</A>");
   } else {
      if(strlen($telefoon) < 10) {
         echo("U heeft uw telefoonnummer niet of niet correct ingevuld<br><A href='#' onClick='history.go(-1)'>Terug</A>");
      } else {
         if(strlen($vraag) < 1) {
            echo("U heeft geen vraag ingevuld<br><A href='#' onClick='history.go(-1)'>Terug</A>");
         } else {
            $vraag =& str_replace( "\r\n.", "\r\n..", $vraag );

            mail("email@domein.nl","Vraag","Voorletter(s): $voorletters \n \nTussenvoegsel: $tussenvoegsel \n \nAchternaam: $achternaam \n \nBedrijfsnaam: $bedrijfsnaam \n \nTelefoon: $telefoon \n \nEmail: $email \n \nVraag: $vraag","From: $voorletters $achternaam <$email>");
            mail("$email", "Uw vraag", "Geachte heer/mevrouw $achternaam,\n \nUw mail is aangekomen, wij nemen zo spoedig mogelijk contact met u op.\n \nMet vriendelijke groet,\n \nVoedingsadviesbureau VIVA\n \nhttp://www.voedingsadviesbureau-viva.nl", "From: Voedingsadviesbureau VIVA <no-reply@voedingsadviesbureau-viva.nl>");
            include("bevestiging.php");
         }
      }
   }
?>

Leer goed en duidelijk indenten, dan zie je dus wat er misgaat. Accollade te weinig. Of een stuk of 6 teveel. Maar eigenlijk is het probleem dus je codetechniek.

[ Voor 31% gewijzigd door Verwijderd op 27-01-2006 21:27 ]


  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Ik mis de superglobals en isset.

PHP:
1
2
if (isset($_POST['voorletters']) && strlen($_POST['voorletters']) < 1)  
//enzovoort

March of the Eagles


Verwijderd

Topicstarter
Bedankt voor de snelle reactie's!

@Cheatah
Meteen geprobeerd, maar krijg nog steeds de fout:

"Parse error: parse error, unexpected $end in d:\www\voedingsadviesbur.nl\www\mailform.php on line 22"

@Hacku
Hoe kan het dan dat de code zonder de eerste regel wel goed functioneerd zonder de superglobals en isset?

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op vrijdag 27 januari 2006 @ 21:25:
Leer goed en duidelijk indenten, dan zie je dus wat er misgaat. Accollade te weinig. Of een stuk of 6 teveel. Maar eigenlijk is het probleem dus je codetechniek.
Een verkeerd aantal accolades inderdaad (ook jij mist er volgens mij één). TS kan beter elseif gebruiken, dat is hiervoor bedoeld.

[ Voor 5% gewijzigd door GlowMouse op 27-01-2006 21:36 ]


Verwijderd

Verwijderd schreef op vrijdag 27 januari 2006 @ 21:35:
@Cheatah
Meteen geprobeerd, maar krijg nog steeds de fout:

"Parse error: parse error, unexpected $end in d:\www\voedingsadviesbur.nl\www\mailform.php on line 22"
Dat krijg je als je alleen copy/paste en niet leest.

Verwijderd

Topicstarter
Ik heb niet meteen copy/paste gedaan, eerst wel gekeken met die accolades maar ik dacht dat het klopte. Maar goed na het lezen van de ene laatste reactie nog een keer bekeken en toen zag ik dat onderaan idd een accolade miste!

Bedankt voor jullie hulp!

Gr. Louw

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Verwijderd schreef op vrijdag 27 januari 2006 @ 21:35:
@Hacku
Hoe kan het dan dat de code zonder de eerste regel wel goed functioneerd zonder de superglobals en isset?
Als register globals aanstaan werkt het zonder superglobals.
P&W FAQ - PHP

En met isset kijk je of bv een variabele wel geset is, dat is netter :)

March of the Eagles


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je kan je ook afvragen of velden validatie ook niet gewoon clientside geregeld kan worden met javascript. Scheelt je server weer onnodig werk. Google op dingen als 'javascript form submit check' of iets dergelijks en je vind genoeg voorbeelden. :)

Let er wel op dat je óók nog steeds @ server altijd user input controleert (want dat moet gewoon altijd :) .

[ Voor 10% gewijzigd door Voutloos op 27-01-2006 22:39 ]

{signature}


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-04 17:49

NMe

Quia Ego Sic Dico.

Parse errors zijn altijd het resultaat van slordig proberen en ook altijd op te lossen door eens goed alle haakjes, puntkomma's, accolades en quotes na te tellen. Je moet hier prima zelf toe in staat zijn, en in een forum als Programming & Webscripting komt een topic over een parse- of syntax error eigenlijk zelden tot nooit tot zijn recht. Op slot dus. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.