Contact formulier
Ik heb een contact formulier maar krijg de volgende foutmelding.
Parse error: syntax error, unexpected '"' in /home/voslicht/public_html/doen.php on line 18
Hier de code.
Mail.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Contactformulier</title>
</head>
<body>
<form method="post" action="doen.php">
<table>
<tr>
<td>Voornaam:</td>
<td><input type="text" name="voornaam" /></td>
</tr>
<tr>
<td>Achternaam:</td>
<td><input type="text" name="achternaam" /></td>
</tr>
<tr>
<td>Adres:</td>
<td><input type="text" name="adres" /></td>
</tr>
<tr>
<td>Woonplaats:</td>
<td><input type="text" name="woonplaats" /></td>
</tr>
<tr>
<td>Telefoon nummer:</td>
<td><input type="text" name="telefoon" /></td>
</tr>
<tr>
<td>E-Mail:</td>
<td><input type="text" name="email" /></td>
</tr>
<tr>
<td>Personen</td>
<td>
<select name="personen">
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
<option value="250">250</option>
<option value="500">500</option>
</select>
</td>
</tr>
<tr>
<td>vragen/opmerkingen</td>
<td><textarea name="vragen/opmerkingen" rows="5" cols="50"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="verzenden" /></td>
<td><input type="reset" value="reset"/></td>
</tr>
</table>
</form>
</body>
</html>
Doen.php
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$mijnemail = "[email protected]";
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
$adres = $_POST['adres'];
$woonplaats = $_POST['woonplaats'];
$telefoon = $_POST['telefoon'];
$email = $_POST['email'];
$personen = $_POST['personen'];
$textveld = $_POST['textveld'];
$onderwerp = "Een bestelling";
$bericht = 'Voornaam:'.$voornaam."\r\n". 'Achternaam:'.$achternaam."\r\n". 'Adres:'.$adres."\r\n". 'Woonplaats:'.$woonplaats."\r\n". 'telefoon:'.$telefoon."\r\n". 'E-Mail:'.$email."\r\n".'Personen:'.$personen."\r\n". 'textveld:'.$textveld."\r\n".
$van = "From: [email protected];
if ($voornaam == "" || $achternaam == "" || $adres == "" || $woonplaats == "" || $telefoon == "" || $email == ""){
echo ("Je hebt iets niet ingevuld probeer opnieuw");
}
else {
mail ("$mijnemail", "$onderwerp", $bericht, $van);
echo "mail verzonden";
}
?>
$mijnemail = "[email protected]";
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
$adres = $_POST['adres'];
$woonplaats = $_POST['woonplaats'];
$telefoon = $_POST['telefoon'];
$email = $_POST['email'];
$personen = $_POST['personen'];
$textveld = $_POST['textveld'];
$onderwerp = "Een bestelling";
$bericht = 'Voornaam:'.$voornaam."\r\n". 'Achternaam:'.$achternaam."\r\n". 'Adres:'.$adres."\r\n". 'Woonplaats:'.$woonplaats."\r\n". 'telefoon:'.$telefoon."\r\n". 'E-Mail:'.$email."\r\n".'Personen:'.$personen."\r\n". 'textveld:'.$textveld."\r\n".
$van = "From: [email protected];
if ($voornaam == "" || $achternaam == "" || $adres == "" || $woonplaats == "" || $telefoon == "" || $email == ""){
echo ("Je hebt iets niet ingevuld probeer opnieuw");
}
else {
mail ("$mijnemail", "$onderwerp", $bericht, $van);
echo "mail verzonden";
}
?>
Ik heb gekeken maar kan het zo niet vinden.
Groeten Ronnie Vos
Gewijzigd op 20/03/2012 19:03:27 door Bas IJzelendoorn
i.p.v.:
if ($voornaam == "" || $achternaam == "" || $adres == "" || $woonplaats == "" || $telefoon == "" || $email == ""){
Parse error: syntax error, unexpected T_STRING in /home/voslicht/public_html/doen.php on line 19
Wat is hier aan te doen?
Maar daarnaast heb je ook al een probleem met de POST variabelen. Ten eerste hoef je die niet over te zetten in variabelen (regels 4 t/m 11 zijn dus overbodig). Ten tweede moet je ALTIJD controleren of de POST (of GET) variabelen wel bestaan alvorens je ze gebruikt. Dit kan het beste met de functie isset(). Als er een niet bestaat dan kan je ofwel een foutmelding geven, ofwel een default waarde gebruiken. Doe je de check niet en bestaat de variabele niet, dan gaat je script onderuit op het moment dat je die variabele probeert aan te spreken.
Toevoeging op 20/03/2012 18:34:43:
PS ook op regel 14 sluit je het niet goed af
Gewijzigd op 20/03/2012 18:33:41 door Erwin H
Dit topic mag op slot.
Gewijzigd op 20/03/2012 19:03:59 door Bas IJzelendoorn
Daarnaast hoop ik dat je de tips van Erwin H ter harte neemt.
Ik zit met het probleem dat als ik mijn formulier wil verzenden de melding krijg of ik het script wil opslaan of alleen openen, niet helemaal de bedoeling dus.
Dit zijn me scripts:
Gegevens_laden.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
<HEAD>
<TITLE>Subinhoud</TITLE>
<link href="style.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>
<TABLE WIDTH=85% ALIGN=CENTER>
<TD>
<form action="Fout3.php" method="post">
<fieldset>
<legend>Foutmeldingsformulier</legend>
<label for="voornaam">Voornaam</label><input type="text" name="voornaam" id="voornaam"> <BR>
<label for="achternaam">Achternaam</label><input type="text" name="achternaam" id="achternaam"><BR>
<label for="Emailadres">E-mailadres</label><input type="text" name="Emailadres" id="Emailadres"><BR>
<label for="Foutregio">Foutlocatie</label><select name="Foutregio"> <option>Ringnummer </option> <option>Kolomnaam </option> <option>Overig namelijk </option> </select><input type="text" name="Foutlocatie" id="Foutlocatie"><P>
<label for="Probleemomschrijving">Probleemomschrijving</label><textarea rows="7" cols="25" name="Probleemomschrijving" ></textarea><p>
<input type="submit" value="Verzenden"><input type="reset" value="reset"/><p>
</fieldset>
</form>
<h1>De website maakt gebruik van uw eigen e-mailprogramma, mocht deze om toestemming vragen dan moet u deze toestemming geven.</h1>
</TD>
</TABLE>
</BODY>
</HTML>
Fout3.php;
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$mijnemail = "[email protected]";
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
$Emailadres = $_POST['Emailadres'];
$Foutregio = $_POST['Foutregio'];
$Foutlocatie = $_POST['Foutlocatie'];
$Probleemomschrijving = $_POST['Probleemomschrijving'];
$onderwerp = "Een fout in de ringlijsten";
$bericht = 'Voornaam:'.$voornaam."\r\n". 'Achternaam:'.$achternaam."\r\n". 'E-mailadres:'.$Emailadres."\r\n". 'Foutregio:'.$Foutregio."\r\n". 'Foutlocatie:'.$Foutlocatie."\r\n". 'Probleemomschrijving:'.$Probleemomschrijving."\r\n".
$van = "From: [email protected];
if ($voornaam == "" || $achternaam == "" || $Emailadres == "" || $Foutregio == "" || $Foutlocatie == "" || $Probleemomschrijving == ""){
echo ("Je hebt iets niet ingevuld probeer opnieuw");
}
else {
mail ("$mijnemail", "$onderwerp", $bericht, $van);
echo "mail verzonden";
}
?>
$mijnemail = "[email protected]";
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
$Emailadres = $_POST['Emailadres'];
$Foutregio = $_POST['Foutregio'];
$Foutlocatie = $_POST['Foutlocatie'];
$Probleemomschrijving = $_POST['Probleemomschrijving'];
$onderwerp = "Een fout in de ringlijsten";
$bericht = 'Voornaam:'.$voornaam."\r\n". 'Achternaam:'.$achternaam."\r\n". 'E-mailadres:'.$Emailadres."\r\n". 'Foutregio:'.$Foutregio."\r\n". 'Foutlocatie:'.$Foutlocatie."\r\n". 'Probleemomschrijving:'.$Probleemomschrijving."\r\n".
$van = "From: [email protected];
if ($voornaam == "" || $achternaam == "" || $Emailadres == "" || $Foutregio == "" || $Foutlocatie == "" || $Probleemomschrijving == ""){
echo ("Je hebt iets niet ingevuld probeer opnieuw");
}
else {
mail ("$mijnemail", "$onderwerp", $bericht, $van);
echo "mail verzonden";
}
?>
Weet iemand waar de fout zit, want het werkt nu dus niet.
Hoe open je je script? Wel via xamp/wamp iets?
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
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
<?php
$mijnemail = "[email protected]";
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
$Emailadres = $_POST['Emailadres'];
$Foutregio = $_POST['Foutregio'];
$Foutlocatie = $_POST['Foutlocatie'];
$Probleemomschrijving = $_POST['Probleemomschrijving'];
$onderwerp = "Een fout in de ringlijsten";
$bericht = 'Voornaam:'.$voornaam."\r\n". 'Achternaam:'.$achternaam."\r\n". 'E-mailadres:'.$Emailadres."\r\n". 'Foutregio:'.$Foutregio."\r\n". 'Foutlocatie:'.$Foutlocatie."\r\n". 'Probleemomschrijving:'.$Probleemomschrijving."\r\n".
$van = "From: [email protected]";
if ($voornaam == "" ||
$achternaam == "" ||
$Emailadres == "" ||
$Foutregio == "" ||
$Foutlocatie == "" ||
$Probleemomschrijving == "")
{
echo ("Je hebt iets niet ingevuld probeer opnieuw");
}else{
mail ($mijnemail, $onderwerp, $bericht, $van);
echo "mail verzonden";
}
?>
$mijnemail = "[email protected]";
$voornaam = $_POST['voornaam'];
$achternaam = $_POST['achternaam'];
$Emailadres = $_POST['Emailadres'];
$Foutregio = $_POST['Foutregio'];
$Foutlocatie = $_POST['Foutlocatie'];
$Probleemomschrijving = $_POST['Probleemomschrijving'];
$onderwerp = "Een fout in de ringlijsten";
$bericht = 'Voornaam:'.$voornaam."\r\n". 'Achternaam:'.$achternaam."\r\n". 'E-mailadres:'.$Emailadres."\r\n". 'Foutregio:'.$Foutregio."\r\n". 'Foutlocatie:'.$Foutlocatie."\r\n". 'Probleemomschrijving:'.$Probleemomschrijving."\r\n".
$van = "From: [email protected]";
if ($voornaam == "" ||
$achternaam == "" ||
$Emailadres == "" ||
$Foutregio == "" ||
$Foutlocatie == "" ||
$Probleemomschrijving == "")
{
echo ("Je hebt iets niet ingevuld probeer opnieuw");
}else{
mail ($mijnemail, $onderwerp, $bericht, $van);
echo "mail verzonden";
}
?>
- Ga niet onnodig op lijn 4 t/m 9 variabelen kopieeren, nergens voor nodig. Je kan je $_POST-variabelen ook prima gebruiken
- Gebruik ook eens trim in je controles, als iemand een spatie invult, is dat neit valide, maar wordt dat nu wel toegelaten
- Bouw foutafhandeling op je mail() functie in.
- Bij voorkeur, gebruik liever phpMailer of Swiftmailer. Dit werkt veel handiger....
Gewijzigd op 27/03/2012 13:25:29 door - Ariën -
Toevoeging op 27/03/2012 14:55:59:
Vergeet mijn laatste reactie, ik heb alles nu werkend gekregen door bovenstaande. Heel erg bedankt!