Hej
Jeg er igang med at lave et booking-system, hvor jeg skal have valideret indholdet af min formular.
- <form name="booking" action="verify.php" method="post">
- <table>
- <tr>
- <td>Arrangørens fulde navn:</td><td><input type="text" name="navn" /></td>
- </tr>
- <tr>
- <td>Evt. virksomhed:</td><td><input type="text" name="virksomhed" /></td>
- </tr>
- <tr><td><h1 style="text-transform: none;">Adresse</h1></td></tr>
- <tr>
- <td>Vejnavn:</td><td><input type="text" name="vej" /></td>
- </tr>
- <tr>
- <td>Post nr. og by:</td><td><input type="text" name="postby" /></td>
- </tr>
- <tr>
- <td><h1 style="text-transform: none;">Kontaktinformationer</h1></td>
- </tr>
- <tr>
- <td>Tlf:</td><td><input type="text" name="tlf" /><input type="checkbox" name="mobil" value="ja"/>Mobil</td>
- </tr>
- <tr>
- <td>E-mail:</td><td><input type="email" name="email" /></td>
- </tr>
- <tr>
- <td><h1 style="text-transform: none;">Spillested</h1></td>
- </tr>
- <tr>
- <td>Spillestedsinformationer udfyldes<br /> kun hvis arrangementet afholdes<br /> på anden adresse en arrangørens<br />egen.</td>
- </tr>
- <tr>
- <td>Spillestedets adresse:</td><td><input type="text" name="spillested" /></td>
- </tr>
- <tr>
- <td>Post nr. og by:</td><td><input type="text" name="spillepostby" /></td>
- </tr>
- <tr>
- <td>Dato (format yyyy-mm-dd):</td><td><input type="date" name="dato" /></td>
- </tr>
- <tr>
- <td>Tidspunkt:</td><td>
- <input name="fra" type="text"size="2" /> - <input name="til" type="text"size="2" /></td>
- </tr>
- </table>
- <table>
- <tr>
- <td><input type="checkbox" name="krav" value="accepter" />Jeg accepterer hermed at have læst mobildiskotekets <a href="betingelser.pdf" target="_blank">betingelser</a> og at jeg kan opfylde de krav der stilles til spillestedet</td>
- </tr>
- <input type="text" name="spamcheck" value="" style="visibility:hidden;">
- <tr>
- <td><input type="submit" name="submit" value="Send" /><input type="reset" name="reset" value="Ryd indhold" /></td>
- </tr>
- </table>
- </form>
Valideringen skal være kompatibel med følgende php-script, da det er der hvor alle informationer sendes og gemmes.
- <?php
- error_reporting(E_ALL);
- include '../inc/connect.php';
- //Gem indhold fra formularen
- $navn = mysql_real_escape_string($_POST['navn']);
- $virksomhed = mysql_real_escape_string($_POST['virksomhed']);
- $adresse = mysql_real_escape_string($_POST['vej']);
- $postby = mysql_real_escape_string($_POST['postby']);
- $nr = mysql_real_escape_string($_POST['tlf']);
- if (isset($_POST['mobil']) && $_POST['mobil']=='ja') {
- $tlf = $nr.' (mobil)';
- }
- else {
- $tlf = $nr;
- }
- $mail = mysql_real_escape_string($_POST['email']);
- $spillested = ($_POST['spillested']) ? mysql_real_escape_string($_POST['spillested']) : $adresse;
- $spillepostby = ($_POST['spillepostby']) ? mysql_real_escape_string($_POST['spillepostby']) : $postby;
- $dato = mysql_real_escape_string($_POST['dato']);
- $fra = mysql_real_escape_string($_POST['fra']);
- $til = mysql_real_escape_string($_POST['til']);
-
- //
- //Indsæt i database
- if (isset($_POST['submit']) && $_POST['spamcheck'] == "") {
- $tabeldata = "INSERT INTO booking(navn, virksomhed, adresse, postby, tlf, email, spillested, spillepostby, fra, til)VALUES ('$navn','$virksomhed', '$adresse', '$postby', '$tlf', '$mail', '$spillested', '$spillepostby', '$fra', '$til')";
-
- $resultat = mysql_query($tabeldata) or die (mysql_error());
- }
- function escapeAddr($addr) {
- $check = preg_match('/(.*)<(.*)>/', $addr, $a);
- if ($check) $addr = '=?UTF-8?B?'.base64_encode($a[1]).'?= <'.$a[2].'>';
- return $addr;
- }
- function mail_utf8($to, $subject='', $message='', $from='', $cc='', $bcc='') {
- $from = escapeAddr($from);
- $header = 'From: '.$from.PHP_EOL
- . 'Return-Path: '.$from.PHP_EOL
- . 'Reply-To: '.$from.PHP_EOL
- . 'MIME-Version: 1.0'.PHP_EOL
- . 'Content-type: text/plain; charset=UTF-8'.PHP_EOL
- . 'X-Mailer: PHP/'.phpversion().PHP_EOL
- . 'Content-Transfer-Encoding: 8bit'.PHP_EOL;
- if ($cc!='') $header .= 'Cc: '.escapeAddr($cc).PHP_EOL;
- if ($bcc!='') $header .= 'Bcc: '.escapeAddr($bcc).PHP_EOL;
- $header .= PHP_EOL;
- return mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
- }
- $arrReplace = array(
- '%{NAVN}%' => $navn,
- '%{VIRKSOMHED}%' => $virksomhed,
- '%{POSTBY}% ' => $postby,
- '%{PHONE}% ' => $phone,
- '%{MAIL}% ' => $mail,
- '%{SPILLESTED}% ' => $spillested,
- '%{SPILLEPOSTBY}% ' => $spillepostby,
- '%{DATO}%' => $dato,
- '%{FRA}%' => $fra,
- '%{TIL}%' => $til
- );
- $templ = file_get_contents('mail_msg.tmpl');
- $besked = strtr($templ, $arrReplace);
- $success = mail_utf8($mail, '(Automatisk bekræftelse) Booking forespørgsel sendt', $besked, 'noreply@creativespectrum.dk', '', 'booking@creativespectrum.dk');
- if ($success) {
- // Mail sendt
- header ('Location: done.php?msg=SENDT');
- $_SESSION['done'] = '<h1>Tak for din henvendelse</h1><p>Tak for din henvendelse. Vi har gemt din forespørgsel i vores system og du vil modtage en automatisk bekræftelse på at vi har modtaget dine data. Dette er dog ikke en bekræftelse på at vi er ledige til netop dit arrangement. Du vil indenfor 24 timer modtage endnu en mail fra os hvori vi bekræfter at have læst din henvendelse og har tjekket om datoen/datoerne er ledige. Samtidig vil vi oplyse dig om ankomsttidspunkt, således at du/I kan sørge for at vi har adgang til spillestedet. Du vil i mailen også finde andre for dig relevante informationer.</p>';
- } else {
- // Der er en fejl!
- $_SESSION['done'] = '<h1>Hovsa!</h1><p>Hovsa! Der gik noget galt. Hvis det er første gang du ser denne fejl prøv venligst igen og tjek at du har udfyldt alle krævede felter, samt accepteret vores betingelser.</p><p>Er det ikke første gang du ser denne fejl, kontakt os venligst på info@creativespectrum.dk. Er det en forespørgsel på en snarlig event bedes du sende alle relevante informationer direkte til os på booking@creativespectrum.dk</p><p>Vi undskylder ulejeligheden</p>';
- header ('Location: done.php?msg=FEJL');
- }
- ?>
Jeg har før forsøgt at lave noget javascript til, men det er aldrig rigtig lykkedes.
Dette vil jeg gerne have hjælp til at lave i form af et javascript:
- Kompatibelt med ovenstående php-script
- felterne navn, adresse, postby, tlf, email, dato, fra, til
- checkboxen krav, skal være accepteret
- beskyttelse med specialtegn, samt at man f.eks. har en mailadresse der hedder a@a.a. skal sørge for at jeg altid kan skrive til folk, hvis der er ukorrekte oplysninger.
Jeg kunne godt tænke mig at der kommer en form for dropdown-tekst, der siger at man mangler at udfylde nogle bestemte felter, eller ikke har accepteret betingelserne.
Indlæg senest redigeret d. 16.04.2012 09:06 af Bruger #17072