<?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>'; } }
?>
|