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?
oke heel veel dank! Is mijn code wel goed en moet ik gewoon lang wachten tot de berichten aankomen?
Meeste mailservers leveren binnen een minuut de mails af.
PhpMailer kent ook een debug-functie. Zet die eens aan. Misschien loopt er wel iets spaak?
Fout:
<?php
$mail->addCC('$mail');
?>


Goed:
<?php
$mail->addCC($mail);
?>


Door de enkele haakjes stuur je het naar adres $mail en niet naar wat in $mail staat...
Nieuwe code:

$mail->addAddress ('[email protected]', 'Ruben van Heteren'); // Name is optional
$mail->addReplyTo($email, $name);
$mail->addCC($email);

Volgens mij goed probleem het werkt niet. ook niet in ongewenst
Geen meldingen van PHPMailer zelf? Debug al aangezet?

$email en $name wel goed?
Onderste is weer $mail (zonder e)... klopt dat?
Die was ik vergeten super dom natuurlijk daarom ben ik ook eerst maar even gaan slapen!

alleen levert ook dit niet het gewenste resultaat waar kan je de meldingen van PHP mailer zien of de Debug aanzetten? Kan daar niets over vinden waar dient deze voor? En hoe zet ik deze aan?
Nu werkt hij alleen nog in de ongewenst maar dit komt omdat ik het SPF record nog niet heb aangepast! Dus dat gaat lukken.

Nu heb ik een vak telefoon toegevoegd met controle dat werkt allemaal allen wordt nu de inhoud van dit vak niet meegezonden met de mail wat doe ik mis gezien mijn PHP code?


<?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);

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

	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 ==  '')
		$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 ($phone == '')
		$error = 'U hebt geen telefoonnummer ingevoerd';
	
		if ($message ==  '')
		$error = 'U hebt geen bericht ingevoerd opgegeven';
	
	
	return $error;
}

$name = '';
$email = '';
$subject = '';
$phone = '';
$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');
	
}

?>
$phone->phone

Huh? Begrijp je wel wat je hier doet?

En op lijn 22 'message'?

Alle gegevens die ingevoerd worden moet wel in de $mail->Body worden gezet.
dat heb ik geprobeerd alleen toen kreeg ik een fout ik had het zo:


$name->name    = $name;
	$mail->Subject = $subject;
	$mail->Body   = $message, $phone;



Nu heb ik het zo:


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


Alleen nog zonder resultaat

Reageren