PAD - PHP Application Driver


home | manual | reference | regression | sequence | develop | apps


Contact

PHP
contact.php
HTML
contact.pad
Result
<?php

$title
= 'Contact Form';
$dataFile = DAT . 'demo/messages.json';
$successMsg = '';
$error = '';
$errors = [];

if ( !
is_dir ( DAT . 'demo' ) )
@
mkdir ( DAT . 'demo', 0755, TRUE );

$formName = $name ?? '';
$formEmail = $email ?? '';
$formSubject = $subject ?? '';
$formMessage = $message ?? '';

if (
$_SERVER['REQUEST_METHOD'] == 'POST' && $action == 'send' ) {

$formName = trim ( $formName );
$formEmail = trim ( $formEmail );
$formSubject = trim ( $formSubject );
$formMessage = trim ( $formMessage );

if ( !
$formName )
$errors [] = [ 'field' => 'Name is required' ];

if ( !
$formEmail )
$errors [] = [ 'field' => 'Email is required' ];
elseif ( !
filter_var ( $formEmail, FILTER_VALIDATE_EMAIL ) )
$errors [] = [ 'field' => 'Please enter a valid email address' ];

if ( !
$formSubject )
$errors [] = [ 'field' => 'Subject is required' ];

if ( !
$formMessage )
$errors [] = [ 'field' => 'Message is required' ];

if ( empty (
$errors ) ) {

$messages = [];
if (
file_exists ( $dataFile ) ) {
$json = file_get_contents ( $dataFile );
$messages = json_decode ( $json, TRUE ) ?: [];
}

$messages [] = [
'name' => htmlspecialchars ( $formName ),
'email' => htmlspecialchars ( $formEmail ),
'subject' => htmlspecialchars ( $formSubject ),
'message' => htmlspecialchars ( $formMessage ),
'date' => date ( 'Y-m-d H:i:s' )
];

file_put_contents ( $dataFile, json_encode ( $messages, JSON_PRETTY_PRINT ) );

$successMsg = 'Thank you for your message! We will get back to you soon.';

$formName = $formEmail = $formSubject = $formMessage = '';
}
else
$error = 'Please correct the errors below.';
}

$hasErrors = count ( $errors ) > 0;

?>
<p>Have a question or feedback? Send us a message!</p>

{if $successMsg}
<div class="message">{$successMsg}</div>
{/if}

{if $error}
<div class="message error">{$error}</div>
<ul style="color: #c00;">
{errors}
<li>{$field}</li>
{/errors}
</ul>
{/if}

<form method="post">
<input type="hidden" name="action" value="send">

<p>
<label>Your Name: *</label><br>
<input type="text" name="name" value="{$formName}">
</p>

<p>
<label>Your Email: *</label><br>
<input type="email" name="email" value="{$formEmail}">
</p>

<p>
<label>Subject: *</label><br>
<input type="text" name="subject" value="{$formSubject}">
</p>

<p>
<label>Message: *</label><br>
<textarea name="message" rows="6">{$formMessage}</textarea>
</p>

<p>
<input type="submit" value="Send Message">
</p>
</form>

<p style="color: #999; font-size: 12px;">* Required fields</p>

Have a question or feedback? Send us a message!





* Required fields




home | manual | reference | regression | sequence | develop | apps

(c) 2003-2025 Herbert Groot Jebbink