Het is lang gelden maar zoals ik van jullie de tip heb gekregen ben ik begonnen aan de hand van deze video een formulier te bouwen lekker om te beginnen het gaat om deze video: https://www.youtube.com/watch?v=g_r4a-DXA7c

en dit is mijn code:


<?php

function validate ($name, $email, $subject, $message)
{
	$error = '';
	
	if($name ==  '')
		$error = 'U hebt geen naam opgegeven';
	
	if (!filter_var($email, FILTER_VALIDATE_EMAIL)) 
		$error = 'U hebt geen emailadres opgegeven opgegeven';
	
		if ($subject ==  '')
		$error = 'U hebt geen onderwerp opgegeven opgegeven';
	
		if ($message ==  '')
		$error = 'U hebt geen bericht ingevoerd opgegeven';
	
	
	return $error;
}

$name = '';
$email = '';
$subject = '';
$message = '';

if($_SERVER['REQUEST_METHOD'] == 'POST' )
{
	//FORMULIER IS VERZONDEN
	

	$name = $_POST['name'];
	$email = $_POST['email'];
	$subject = $_POST['subject'];
	$message = $_POST['message'];
	
	$error = validate($name, $email, $subject, $message);
	
	if(error != '')
		echo $error;
	
}

?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title> Contact </title>
<style>
textarea, div, label, input[type=text] {
	font-family:Arial, Helvetica, sans-sarif;
	font-size:18px;
	width:300px;
}
textarea
input[type=text] {
	font-size 14px;
}
textarea {
	height:200px;
}
</style>
</head>

<body>
<div>
<h1>Contact </h1>
<form action="" method ="post">
<label for= "name">Naam:</label><input type="text" id="name" name="name" value="<?php echo $name; ?>" />
<label for= "email">Email:</label><input type="text" id="email" name="email" value="<?php echo $email; ?>" />
<label for= "subject">Onderwerp:</label><input type="text" id="subject" name="subject" value="<?php echo $subject; ?>" />
<label for="message">Bericht:</label> <textarea id="message" name="message"><?php echo $message; ?></textarea>
<input type="submit" value ="verzenden" />
</form>
</div>
</body>
</html>


Ik krijg deze foutmelding: Notice: Use of undefined constant error - assumed 'error' in on line 40 als ik de foutmelding wil testen maar volgens mij is het goed wie is er bereid mij van een klein beetje uitleg te voorzien?
Gewoon een <br /> erin zetten als het ee HTML-mail is, of anders een PHP_EOL toevoegen na je string.
Op deze manier? Dan krijg ik een fout



if ($message ==  '' PHP_EOL "\r\n")  //bericht
		$error ='<font color="red"> U hebt geen bericht ingevoerd opgegeven </font>'  ;
	



$message =  'Bla'.PHP_EOL.'Blah';


ik zal het wel niet snappen maar die van mij ziet er zo uit:

$message ==  '' .PHP_EOL. 'blah';

Dat moet toch goed zijn
Waarom wil je dat vergelijken?
nu omdat ik natuurlijk aangeef dat als hij leeg is dat er dan een fout moet komen als ik daar iets invul werkt die validate functie niet meer. Maar op de 1 of andere manier krijg ik een fout
Je vergelijjt nu de waarde van $message met een string. Dat lijkt me niet correct.

Als je wilt controleren of een waarde is ingevuld moet je het met een lege string vergelijken icm met trim() om ook spaties voor en na te verwijderen.

Als er niet aan die voorwaarde is voldaan kan je een tekst echo'en/ opslaan in een een variabele met een eigen foutmelding.
Dat begrijp ik, wat ik wil is het volgende: je krijgt een mail van het formulier met de gegevens. Op dit moment zie je dan als je de mail opent het volgende:

bericht0612345678

Dat moet natuurlijk netjes onder elkander in de mail die je binnenkrijgt.
Daarom dus met <br /> (bij HTML) of PHP_EOL (bij plain-text mail) splitsen naar een andere regel.
Uiteraard op de plek waar je die text toont, en dus niet in je voorwaarde.


$bericht = "Naam: ".$naam.PHP_EOL.
	   "Telefoonnummer: ".$telefoonnummer.PHP_EOL.
	   "E-mailadres: ".$emailadres;


Bij HTML hoort die tag gewoon in de string.
Mensen ik begrijp het gewoon niet. Ik heb van alles geprobeerd maar in de mailbox krijg ik een mail waar alles aan elkaar zit wie helpt het uit de knoop? Hieronder vinden jullie de gehele code nogmaals misschien kan iemand aangeven waar de code te doorbreken?



<?php

require 'PHPMailerAutoload.php';

function sendemail($name, $email, $subject, $phone, $message)
{
	

	$mail = new PHPMailer;
	

	$mail->From ='mailadres';
	
	$mail->addAddress ('mailadres');               // Name is optional
	$mail->addReplyTo($email, $name);
	$mail->addCC($email);

	
	
	$mail->Subject = $subject;
	$mail->Body = $message;
	$mail->Body.= $phone;

	

	if($mail->send()) {
		return true;
		// ga dan naar thankyou.html
	}
	else
	{
		echo 'Message could not be sent.';
		echo 'Mailer Error: ' . $mail->ErrorInfo;
		return false;
	}
}

function validate ($name, $email, $subject, $phone, $message)
{
	$error = '';
	
	if($name ==  '') // Naam
		$error = 'U hebt geen naam opgegeven';
	
	if (!filter_var($email, FILTER_VALIDATE_EMAIL)) // E-mailadres 
		 $error = '<font color="red"> U hebt geen emailadres  opgegeven </font>';
	
		if ($subject ==  '')  // onderwerp
		 $error = '<font color="red"> U hebt geen onderwerp opgegeven </font>';
	
		if ($phone == '' )   // telefoonnummer 
		$error = '<font color="red"> U hebt geen telefoonnummer ingevoerd </font> <br>' ;
	
		if ($message ==  '')  //bericht
		$error ='<font color="red"> U hebt geen bericht ingevoerd opgegeven </font>'  ;
	
	
	return $error;
}

$name = ''; 
$email = '';
$subject = '';
$phone = ''; .PHP_EOL. 
$message = '';

if($_SERVER['REQUEST_METHOD'] == 'POST' )
{
	//FORMULIER IS VERZONDEN
	

	$name = $_POST['name'];
	$email = $_POST['email'];
	$subject = $_POST['subject'];
	$phone = $_POST['phone'];
	$message = $_POST['message'];
	
	$error = validate($name, $email, $subject, $phone, $message);
	
	if($error != '')
		echo $error;
	else
		if(sendemail($name, $email, $subject, $phone, $message) == true)
			header ('location: thankyou.html');
	
}

?>

<!doctype html>
<html>
<head>
<link rel="stylesheet" href="contact.css" />
<meta charset="utf-8">

</head>

<body>
<div>
<h1>Contact </h1>
<form action="" method ="post" enctype="multipart/form-data">
<label for= "name">Naam:</label><input type="text" id="name" name="name" value="<?php echo $name; ?>" />
<label for= "email">Email:</label><input type="text" id="email" name="email" value="<?php echo $email; ?>" />
<label for= "subject">Onderwerp:</label><input type="text" id="subject" name="subject" value="<?php echo $subject; ?>" />
<label for= "name">telefoonnummer:</label><input type="text" id="phone" name="phone" value="<?php echo $phone; ?>" /> <br>
<label for="message">Bericht:</label> <textarea id="message" name="message"><?php echo $message; ?></textarea> <br>
<input type="submit" value ="verzenden" /> <input type="reset" name= "reset" value="leegmaken">
</form>
</div>
</body>
</html>

Reageren