Heb eindelijk een script (PHP) werkend kunnen krijgen, alleen wil ik niet dat hij een error meldingstekst c.q. blok geeft, maar alleen de invulvelden een rode rand geeft die niet goed zijn ingevuld of leeg gelaten, als de bezoeker dan naar deze velden gaat, ze goed invult, totdat alle velden goed zijn en hij drukt op verzenden, dat dan pas het formulier wordt verstuurd.
Kan iemand mij helpen of script aanpassen, of aangeven waar ik moet aanpassen?
Alvast bedankt.
<?php
#**********************************************
# Contactformulier
#**********************************************
$errors = array();
if ( 'POST' == $_SERVER['REQUEST_METHOD'] )
{
/**
* Pas deze twee regels aan.
*/
$emailTo = 'info@probleemcoach.nl';
$emailSubject = 'Bericht van een bezoeker';
$confirmationPage = '/test/bedankt.html';
/** Validate first name */
$firstNamePattern = '~^[a-z .'-]+$~Di';
if ( !isset( $_POST['firstName'] ) or !preg_match( $firstNamePattern, $_POST['firstName'] ) )
{
$errors['firstName'] = 'De voornaam is niet geldig';
}
/** Validate last name */
$lastNamePattern = '~^[a-z .'-]+$~Di';
if( !isset( $_POST['lastName'] ) or !preg_match( $lastNamePattern, $_POST['lastName'] ) )
{
$errors['lastName'] = 'De achternaam is niet geldig';
}
/** Validate e-mail address */
$emailPattern = '~^[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}$~Di';
if ( !isset( $_POST['emailAddress'] ) or !preg_match( $emailPattern, $_POST['emailAddress'] ) )
{
$errors['emailAddress'] = 'Het e-mailadres is niet geldig';
}
/** Validate comments */
if ( !isset( $_POST['message'] ) or strlen( trim( $_POST['message'] ) ) < 2 )
{
$errors['message'] = 'Het bericht moet minimaal 2 tekens lang zijn';
}
if ( count( $errors ) == 0 )
{
$message = 'Gegevens formulier.' . PHP_EOL . PHP_EOL .
'Voornaam: ' . $_POST['firstName'] . PHP_EOL .
'Achternaam: ' . $_POST['lastName']. PHP_EOL .
'Email: ' . $_POST['emailAddress'] . PHP_EOL .
( isset( $_POST['phoneNumber'] ) ? 'Telefoonnummer: ' . $_POST['phoneNumber'] . PHP_EOL : '' ) .
'Bericht: ' . $_POST['message'];
/** Create e-mail headers */
$headers = 'From: ' . $_POST['emailAddress'] . "rn" .
'Reply-To: ' . $_POST['emailAddress'] . "rn" .
'X-Mailer: PHP/' . phpversion();
if ( mail( $emailTo, $emailSubject, $message, $headers ) )
{
header( 'Location: '. $confirmationPage );
exit;
}
else
{
$errors['general'] = 'Vanwege een storing kan het bericht niet worden verzonden. Probeer het over enkele ogenblikken nog eens.';
}
}
}
?>
<!doctype html>
<html lang="nl">
<head>
<meta charset="UTF-8" />
<title>Contact</title>
<style>
*
{
font-family: Cambia;
font-size: 1em;
margin: 0;
padding: 0;
}
html
{
font-size: 62.5%;
}
body
{
font-size: 1.4em;
}
p.error,
span.error
{
background: #EF7661; /* Achtergrondkleur van de foutmeldingen */
border: 1px solid #999; /* Rand van de foutmeldingen */
border-radius: .1em;
color: #090; /* Tekstkleur van de foutmeldingen */
padding: .1em;
}
p.error
{
margin: 1em 0;
}
span.error
{
display: inline-block;
margin-left: 5px;
vertical-align: top;
width: 30%; /* Breedte van de foutmelding naast het formulierveld */
}
form fieldset
{
border: none;
padding: 1em 0 0;
}
form ol
{
list-style: none;
margin: 0;
padding: 0;
}
form li
{
margin-top: 0em;
}
form li:first-child
{
margin-top: 0;
}
form label
{
display: block;
font-weight: bold;
margin-bottom: .1em;
}
form input[type="email"],
form input[type="text"],
form textarea
{
border: 0.7px solid #999999;
border-radius: .10em;
box-shadow: 1px 1px 1px #CCC inset;
padding: .1em;
width: 55%; /* Breedte van de formuliervelden */
}
form textarea
{
overflow: auto; /* Hide scrollbars in IE */
}
form input[type="submit"]
{
cursor: pointer;
padding: .2em 2em;
}
</style>
</head>
<body>
<?php if ( isset( $errors['general'] ) ) : ?>
<p class="error"><?php echo htmlspecialchars( $errors['general'] ) ?></p>
<?php endif; ?>
<form action="<?php echo basename( __FILE__ ) ?>" method="post">
<fieldset>
<li>
<label for="firstName">Voornaam:</label>
<input type="text" id="firstName" name="firstName" value="<?php echo isset( $_POST['firstName'] ) ? htmlspecialchars( $_POST['firstName'] ) : '' ?>" />
<?php echo isset( $errors['firstName'] ) ? '<span class="error">' . htmlspecialchars( $errors['firstName'] ) . '</span>' : '' ?>
</li>
<li>
<label for="lastName">Achternaam:</label>
<input type="text" id="lastName" name="lastName" value="<?php echo isset( $_POST['lastName'] ) ? htmlspecialchars( $_POST['lastName'] ) : '' ?>" />
<?php echo isset( $errors['lastName'] ) ? '<span class="error">' . htmlspecialchars( $errors['lastName'] ) . '</span>' : '' ?>
</li>
<li>
<label for="emailAddress">E-mailadres:</label>
<input type="email" id="emailAddress" name="emailAddress" required="required" value="<?php echo isset( $_POST['emailAddress'] ) ? htmlspecialchars( $_POST['emailAddress'] ) : '' ?>" />
<?php echo isset( $errors['emailAddress'] ) ? '<span class="error">' . htmlspecialchars( $errors['emailAddress'] ) . '</span>' : '' ?>
</li>
<li>
<label for="phoneNumber">Telefoonnummer:</label>
<input type="text" id="phoneNumber" name="phoneNumber" value="<?php echo isset( $_POST['phoneNumber'] ) ? htmlspecialchars( $_POST['phoneNumber'] ) : '' ?>" />
<?php echo isset( $errors['phoneNumber'] ) ? '<span class="error">' . htmlspecialchars( $errors['phoneNumber'] ) . '</span>' : '' ?>
</li>
<li>
<label for="message">Bericht:</label>
<textarea cols="100" id="message" name="message" rows="10"><?php echo isset( $_POST['message'] ) ? htmlspecialchars( $_POST['message'] ) : '' ?></textarea>
<?php echo isset( $errors['message'] ) ? '<span class="error">' . htmlspecialchars( $errors['message'] ) . '</span>' : '' ?>
</li>
</ol>
</fieldset>
<fieldset class="controls">
<input type="submit" value="Bericht versturen" />
</fieldset>
</form>
</body>
</html>