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?
Het werkt niet omdat je niet doet wat er gezegd wordt. Waar je moet zijn is regel 21/22.
- Ariën - op 28/11/2015 13:27:34

Gewoon een <br /> erin zetten als het ee HTML-mail is, of anders een PHP_EOL toevoegen na je string.


- Ariën - op 28/11/2015 22:19:11

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.


Ik krijg dat dus niet goed voor elkaar! Op welke regel van mijn code ga ik nu wat toevoegen om mijn mail netjes te splitsen dat is de vraag
In plaats van:

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


Bijvoorbeeld:

$mail->Body = "<p><strong>Bericht van mijn te gekke website</strong></p>
Telefoonnummer: $phone <br/><br/>
Bericht: $message
";
Dat kan natuurlijk niet dan gaat hij de velden vanuit mijn formulier niet mee verzenden. We gebruiken de $mail om de body om de velden te kunnen versturen.
Heb je het uitgeprobeerd? Waarom zou het niet kunnen?
Inderdaad werkt het :) alleen had ik even het gevoel dat je aan de structuur aan het sleutelen bent maar dit werkt prima! Thanks
Nieuwe vraag: Als ik nu een veld heb wat niet verplicht is (ga even uit van huisnummer toevoeging) dan ziet dit er in mijn mail zo uit:

Telefoonnummer: 0612345678
Adres: Keteldorp
huisnummer: 20000
Huisnummer toevoeging:
Bericht: test

Kan je er dan simpel voor zorgen dat hij huisnummer toevoeging alleen verstuurt op het moment dat deze is ingevuld? (dan gaat het om de tekst die er nu staat.

<?php
$mail->Body = "<p><strong>Bericht van mijn te gekke website</strong></p>
Telefoonnummer: ".$phone." <br />
Straatnaam: ".$phone." <br />
Huisnummer: ".$phone." <br />
".((isset($_POST['toevoeging'])) ? 'Toevoeging:' .$_POST['toevoeging'].'<br />' : NULL)."
Bericht: $message
";
?>

Dit is de Ternary-operator. Hiermee kan je in-line binnen string if-else statements gebruiken.
Omdat het er best complex uitziet, loont het zeker om dit eens te lezen, en vooral om er eens mee te experimenteren:

http://www.sitepoint.com/using-the-ternary-operator/

De syntax is als volgt:

$x = $voorwaarde ? 'True' : 'False';

Waarbij de $x toekennis in dit voorbeeld niet verplicht is. Alleen als je het resultaat op wilt slana in een andere variabele. In-line in een string zie ik daarvoor weinig noodzaak.

Reageren