Mensen,

Ik heb begonnen met PHP ik had al een klein beetje voorkennis maar breid dit nu uit via Het Complete Boek van Arjan Burger 1 van mijn formulieren geeft een fout op line 10. Wie kan mij helpen?


<html>
<head>
<title>Mailformulier </title>
</head>
<body>
<?php
ini_set ("SMTP", "mail.live.com");
ini_set ("smtp_poort" , 25);
ini_set ("sendmail_from" , "hier vul ik een hotmail adres in ");
if ($_POST["verzendbutton"] != "verzenden") { // als het formulier leeg is 
?>
<form action ="mailform2.php" method="post">
Naam: <input type = "text" name = "naam"><br>
E-mail: <input type = "text" name = "mailadres"><br>
Uw reactie: <textarea cols = "30" rows = "4" name = "reactie"></textarea><br>
<input type = "submit" value = "verzenden" name = "verzendbutton">
</form>
<?php
} else { // in alle andere gevallen (dus formulier verzonden 
$boodschap = "Naam: ".$POST["naam"]."\nCommentaar: ".$_POST["reactie"];
mail($POST["mailadres"], "Uw reactie van de website", $boodschap);
echo "Bedankt ".$naam.", fijn dat je mee wilde doen!";
}
?>
</body>
</html>


Er staat in mijn formulier dus ergens een fout wie kan mij helpen? En zijn de SMTP gegevens juist voor een Hotmail mail adres?

Ik gebruik een Xampp server (localhost)

Ik begrijp het ik heb nu weer een formulier met een fout kan iemand helpen en simpel uitleggen wat er fout gaat?


<html>
<head>
<title>Mailformulier </title>
</head>
<body>
<?php
ini_set("SMTP", "mail.live.com");
ini_set("smtp_poort", 25);
ini_set("sendmail_from", "mailadres");
if($_POST["verzendbutton"] != "verzenden" || !$_POST["naam"] ||
!$_POST["mailadres"] ||
	!$_POST["reactie"]) { // dus als het formulier leeg is of de waarde niet zijn ingevuld
?>
<form action="mailform3.php" method = "post">
<?php
if ($_POST["verzendbutton"] && !$_POST["naam"]) {
!$_POST["mailadres"] || 
!$_POST["reactie"] { 
echo "<font color=\"red\"> Vul hier uw mailadres in</font><br>";
}
?>
naam: <input type = "text" name = "naam" value ="<?php echo $_POST =["naam"]
?>"><br>
<?php
if ($_POST["verzendbutton"] && !$_POST["mailadres"]) {
echo "<font color =\"red\"> Vul hier uw mailadres in!</font><br>";

}
?> 
E-mail: <input type = "text" name ="mailadres" value="<?php echo $_POST["mailadres"] ?>"><br>
<?php
if ($_POST["verzendbutton"] && !$_POST["reactie"]) {
	echo "<font color=\"red\">Vul hier uw reactie in!</font<br>";
}
?>
Uw reactie": <textarea cols="30"rows ="4" name="reactie"><?php echo $_POST["reactie"] ?> </textarea>
<input type = "submit" value ="verzenden" name ="verzendbutton">
</form>
<?php
} else { 
$boodschap = "Naam: ".$_POST["naam"]."\ncommentaar: ".$_POST["reacrie"];
mail($_POST["mailadres"], "Uw reactie van de website", $boodschap);
echo "Bedankt ".$_POST["naam"].", fijn dat je mee wilde doen!";
}
?>
</body>
</html>
Zou je het script tussen code-tags willen plaatsen, zie daarvoor de Veel Gestelde Vragen.

Verder is het verstandiger om eens naar mijn vorige reactie te kijken, en deze proberen te implementeren.
Ruben van Heteren op 10/07/2014 21:13:16

Ik begrijp het ik heb nu weer een formulier met een fout kan iemand helpen en simpel uitleggen wat er fout gaat?


Ik neem aan dat wij wederom zelf moeten gaan raden wat de foutmelding is ?
Helaas, dat soort grappen stop ik echt mee.

Verder zou ik je willen adviseren om je PHP en HTML zo veel mogelijk te scheiden.
Normaal begin je bovenaan met PHP en wanneer dat afgerond is plaats je daaronder de HTML

Wat je nu doet is er een zooitje van maken. HTML tags worden al dan niet geopend of afgeloten fhankelijk van ee paar regels PHP tussendoor zonder dat er ook maar enige structuur in zit.

Kijk eens of dat boek het ook heeft over inspringen van de code om één en ander een beetje duidelijker en overzichtelijker te krijgen.


Ik neem aan dat dit de laatste keer is dat je de foutmelding erbij vergeet te vermelden.

Maar als ik een gok waag, denk ik (weet ik) dat het hier in elk geval mis gaat.

<?php
if ($_POST["verzendbutton"] && !$_POST["naam"]) {
!$_POST["mailadres"] ||
!$_POST["reactie"] { 
?>

Op regel 1 van dit stukje heb je een if statement, dat je afsluit middels het sluitende haakje. Dan open je het code blok met de accolade..... en dan komen er nog wat zwevende condities achteraan. Dat kan natuurlijk niet.
Mensen ik ben verder gegaan met mijn hierboven staande formulier maar krijg als ik het wil openen krijg ik de volgende foutmelding:

Parse error: syntax error, unexpected 'echo' (T_ECHO) in C:\xampp\htdocs\webshop\formulier\mailform3.php on line 19
Ah, ik zie hem. Je hebt een accolade teveel.
Tweede lijn van je stukje relevante code, accolade teveel.
Die eerste in je if aan het einde van lijn 2... daarna ga je gewoon lekker door met je statement en dat kan natuurlijk niet.

Reageren