Ik heb een website waar men via een invulformulier een aanvraag kan indienen om een ideeënboek (bouwen) te downloaden.
Vroeger werkte zij zo dat het formulier ingevuld werd, dat kwam in de mailbox terecht en dan verstuurden ze het ideeënboek per mail. Maar om het iets gemakkelijker te maken vroeger ze om ervoor te zorgen dat ze na het invullen van het formulier het ideeënboek konden downloaden.
Dat gebeurt nu ook, plus de mail komt nog altijd aan omdat ze de gegevens van de aanvragen uiteraard willen hebben.
Hoe het nu gebeurt, bestaat de aanvraag uit 2 pagina's, nl. brochure.php en brochure_form.tpl.html.
brochure.php ziet er als volgt uit:
Code:
<?php</p><p>require_once("classes/phpmailer/class.phpmailer.php");</p><p>$smarty_mail = new Smarty;
$smarty_mail->template_dir = 'templates/mail';
$smarty_mail->compile_dir = 'pages/templates_c';</p><p>if ( isset($_POST['submit']) )
{
$error = '';
print_r($error);
if (!trim($_POST['name'])) $error['name']=true;
if (!check_email($_POST['email'])) $error['email']=true;
if (!trim($_POST['phone'])) $error['phone']=true;
if (!trim($_POST['adres'])) $error['adres']=true;
if (!trim($_POST['postcode'])) $error['postcode']=true;
if (!trim($_POST['gemeente'])) $error['gemeente']=true;
$_POST['name'] = stripslashes($_POST['name']);
$_POST['message'] = stripslashes($_POST['message']);</p><p> if (!$error)
{
$contact = $_POST;
$contact['ip'] = $_SERVER['REMOTE_ADDR'];
$contact['host'] = gethostbyaddr( $contact['ip']);</p><p> $smarty_mail->assign("contact", $contact);
$message = $smarty_mail->fetch("mail_brochure.tpl.html");</p><p> $subject = "brochure aanvraag";
if( sendemail(MAIL_FROM_NAME, MAIL_FROM, $_POST['name'], $_POST['email'], $subject, $message, "HTML", "", ""))
{
$smarty->assign("send", true);
}</p><p> }
$smarty->assign("error",$error);
$smarty->assign("set", $_POST);
}
$_SESSION['scode'] = get_code();
$main_content_template = "brochure.tpl.html";
$breadcrumbs->add('gratis ideeënboek', '');
$smarty->assign("googlemaps", true);
?>
en brochure_form.tpl.html ziet er als volgt uit:
Code:
{if $send}</p><p> <script type="text/javascript">
<!--
window.location = "http://www.immobiliaregroup.be/ideeenboek.pdf"
//-->
</script></p><p> <h2>Bedankt voor uw aanvraag!</h2>
<p>Wordt u niet doorverwezen, dan kan u via onderstaande link het ideeënboek downloaden.</p>
<p><input tupe="button" class="btn" value="download het gratis ideeënboek" onclick="goto('http://www.immobiliaregroup.be/ideeenboek.pdf" /></p>
{else}</p><p> Vul onderstaand formulier in en download het gratis ideeënboek. Nadat u de gegevens heeft ingegeven wordt u automatisch doorverwezen naar het ideeënboek.
<i><font size="1">Velden aangeduid met een * zijn verplicht in te vullen.</i></p><p> {assign var=err_img value="<img src=img/error.gif /> "}
{assign var=required value="<span class=\"required\">*</span>"} </p><p> <form action="" method="POST"></p><p> {if $error}
<b>{#err#}</b>
{if $error.name}<img src="{$smarty.const.FOLDER}img/error.gif" /> Gelieve uw naam en voornaam in te vullen.
{/if}
{if $error.phone}<img src="{$smarty.const.FOLDER}img/error.gif" /> Gelieve uw telefoonnummer in te vullen.
{/if}
{if $error.email}<img src="{$smarty.const.FOLDER}img/error.gif" /> Gelieve uw email in te vullen.
{/if}
{if $error.adres}<img src="{$smarty.const.FOLDER}img/error.gif" /> Gelieve uw adres in te vullen.
{/if}
{if $error.postcode}<img src="{$smarty.const.FOLDER}img/error.gif" /> Gelieve uw postcode in te vullen.
{/if}
{if $error.gemeente}<img src="{$smarty.const.FOLDER}img/error.gif" /> Gelieve uw woonplaats in te vullen.
{/if}
{/if}</p><p> <p>
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td colspan="2">{if $error.name}{$err_img}{/if}
<b>Uw naam en voornaam: <sup>*</sup></b>
<input type="text" name="name" value="" style="width:630px;" onFocus="this.value=''" /></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td colspan="2">{if $error.phone}{$err_img}{/if}
<b>Telefoonnummer: <sup>*</sup></b>
<input type="text" name="phone" value="" style="width:630px;" onFocus="this.value=''" /></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td colspan="2">{if $error.email}{$err_img}{/if}
<b>E-mail adres: <sup>*</sup></b>
<input type="text" name="email" value="" style="width:630px;" onFocus="this.value=''" /></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td colspan="2">{if $error.adres}{$err_img}{/if}
<b>Adres en huisnummer: <sup>*</sup></b>
<input type="text" name="adres" value="" style="width:630px;" onFocus="this.value=''" /></td>
</tr>
<tr><td height="5"></td></tr>
<tr>
<td colspan="2">{if $error.postcode}{$err_img}{/if}{if $error.gemeente}{$err_img}{/if}
<b>Postcode en gemeente: <sup>*</sup></b>
<input type="text" name="postcode" value="" style="width:70px;" onFocus="this.value=''" /> <input type="text" name="gemeente" value="" style="width:533px;" onFocus="this.value=''" /></td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td valign="top" colspan="2"><b>In welke regio wenst u te bouwen?</b>
<select name="waar">
<option value="Leeg">Maak uw keuze</option>
<option value="Antwerpen">Antwerpen</option>
<option value="Henegouwen">Henegouwen</option>
<option value="Limburg">Limburg</option>
<option value="Luik">Luik</option>
<option value="Luxemburg">Luxemburg</option>
<option value="Oost-Vlaanderen">Oost-Vlaanderen</option>
<option value="Namen">Namen</option>
<option value="Vlaams-Brabant">Vlaams-Brabant</option>
<option value="Waals-Brabant">Waals-Brabant</option>
<option value="West-Vlaanderen">West-Vlaanderen</option>
</select>
</td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td valign="top" colspan="2"><b>Wanneer denkt u te gaan bouwen?</b>
<input type="radio" value="2012" name="wanneer"> 2012
<input type="radio" value="2013" name="wanneer"> 2013
<input type="radio" value="na_2013" name="wanneer"> Na 2013</td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td valign="top" colspan="2"><b>Heeft u reeds bouwgrond?</b>
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="middle"><input type="radio" name="bouwgrond" value="ja" /> ja, in</td>
<td valign="middle"><input type="text" name="bgwaar" value="Gemeente" style="width:300px;" onFocus="this.value=''" /></td>
</tr>
<tr>
<td><input type="radio" name="bouwgrond" value="nee" /> nee</td>
</tr>
</table>
</td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td valign="top" colspan="2"><b>Extra informatie:</b>
<textarea name="message" style="width:630px;" rows="5">{$set.message}</textarea></td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td valign="top" colspan="2"><b>Waar kent u ons van?</b>
<select name="via">
<option value="google">Google</option>
<option value="gratishuis">Actie "Gratis Huis"</option>
<option value="bouwenwonen">Bouw & Wonen</option>
<option value="autosport">Autosport.be</option>
<option value="kennis">Kennis of vriend(in)</option>
<option value="diverse">Diverse</option>
</select>
</td>
</tr>
<tr><td height="20"></td></tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="submit" class="btn" value="download gratis ideeënboek" /></td>
</tr>
</table>
</form>
{/if}</p>
Zoals het nu is wordt de brochure vaak in de browser getoond (alvast in safari, firefox en de nieuwe IE).
Maar aangezien het bestand +4mb is, duurt dit soms enkele seconden eer die opent.
Nu is het de bedoeling dat wanneer de bezoeker op de button "download gratis ideeënboek" klikt dat zij gewoon automatisch het bestand gaan downloaden (in een popup, zoals je eender welk ander bestand op het internet download) en dat de gegevens van het formulier nog steeds gemaild worden.
Ik had al via een downloadFile.php scriptje getest en dan kan ik het bestand wel later downloaden (via popup), maar dan komt de mail niet meer aan.
Iemand raad wat ik hiermee moet doen om zowel de mail te laten aankomen van de gegevens als het bestand te laten downloaden (via popup) na het invullen van het formulier.