<?php
/**
* Small advertisement form example. Shows basic use of an extended class.
* Shows use of a preview function including a file upload element.
*
* @author Thiemo Mättig (http://maettig.com/)
*/
// Display some HTML headers.
echo '<style>';
echo 'body{background-color:#eeeeee;font-family:Georgia,serif;}';
echo 'input,select,textarea{font-family:monospace;}';
echo '.error{color:red;font-weight:bold;}';
echo '</style>';
echo '<h2 align="center">Enter new small Advertisement</h2>';
//----------------------------------------------------------------------------
// Include the extended class and build a form out of it.
require_once("example_advertisement.class.php");
$form = new ExtendedApeform();
$message = &$form->textarea("Advertising <u>M</u>essage", "Bidding, Application, ...", "", 7);
$message = trim(preg_replace('/\s+/', ' ', $message));
$message = preg_replace('/(.)(\1{3})\1*/', '\2', $message);
if (! $message) $form->error("Message missing");
if (strlen($message) < 10) $form->error("Message to short");
if (strlen($message) > 500) $form->error("Message to long");
$name = $form->text("Your <u>N</u>ame");
if (! $name) $form->error("Name missing");
$email = $form->text("Your <u>E</u>mail", "Optional; if somebody wants to contact you");
if ($email && ! preg_match(
'/^[^\s"\'<>()@,;:]+@[^\s"\'<>()@,;:]+\.[a-z]{2,6}$/is', $email))
{
$form->error("Email invalid");
}
$telefon = $form->text("Your <u>T</u>elephone", "Optional");
if (! $email && ! $telefon)
{
$form->error("Email (or Telephone) missing", -1);
$form->error("Telephone (or Email) missing");
}
$options = array(7 => "1 Week",
14 => "2 Weeks",
21 => "3 Weeks",
28 => "4 Weeks");
$tage = $form->select("Duration", "How long should the Advertisement be visible?", $options);
$image = $form->file("Image", "Optional; JPG/JPEG/PNG/GIF only");
if ($image && ! getimagesize($image['tmp_name']))
{
$form->error("Invalid Image File");
}
$submit = $form->submit("Preview|Submit");
//----------------------------------------------------------------------------
// Generate preview if requested.
if ($form->isValid())
{
echo '<table width="100%" border="1" cellpadding="4" cellspacing="0">';
echo '<tr><th bgcolor="#CCCCCC" colspan="3">Preview</th></tr>';
echo '<tr><td valign="top" width="200">';
if ($image)
{
$size = getimagesize($image['tmp_name']);
$width = 200;
$height = $size[1] * $width / $size[0];
echo '<img src="' . $image['tmp_name'] . '" width="' . $width . '" height="' . $height . '">';
}
else echo "No Image submitted";
echo '</td><td valign="top">';
$preview = htmlspecialchars(stripslashes($message));
$preview = preg_replace('/^.{10,}\b/U', '<big>\0</big>', $preview);
echo $preview;
echo '</td><td valign="top">';
if ($email) echo '<a href="mailto:' . $email . '">';
echo '<em>' . htmlspecialchars(stripslashes($name)) . '</em>';
if ($email) echo '</a>';
if ($telefon) echo '<br>Telephone: ' . htmlspecialchars(stripslashes($telefon));
echo '</td></tr>';
echo '</table>';
}
//----------------------------------------------------------------------------
if (! $form->isValid() || $submit == "Preview")
{
// Display the whole form.
$form->display();
}
else
{
// Make sure there is no equal entry. Reloads will be ignored this way.
$sql = "SELECT id FROM table WHERE message = '$message'";
// $result = mysql_query($sql);
$num_rows = 0;
// $num_rows = mysql_num_rows($result);
if ($num_rows < 1)
{
// Insert the new entry into the database table.
$sql = "INSERT INTO table SET message = '$message'";
// mysql_query($sql);
echo '<p class="error">Submission succesfull.</p>';
}
else
{
// Error. This entry is already in the database. Don't submit twice.
echo '<p class="error">This Advertisement was already submitted before.</p>';
}
}
?>
|