Contactformulier correct koppelen

Status
Niet open voor verdere reacties.

rutger27

Nieuwe gebruiker
Lid geworden
2 feb 2014
Berichten
4
Hallo,
Ik heb een vraagje of iemand mij met het volgende kan helpen. Ik ben een site aan het maken, daar moet o.a. een contactformulier functioneren. Ik heb gebruikt gemaakt van een bestaande layout waarin de basis van het contactformulier middels css style is opgemaakt. Nu heb ik geprobeerd dit html formulier te koppelen met de html en dat lukt op zich wel alleen wil ik zodra het formulier is ingevuld dat je naar de bedankt pagina gaat. In het html script kan ik een linkje zetten op de button en dan doet hij dat maar wordt er geen mail gestuurd van het ingevulde contactformulier. Als ik bij de button geen link vermeld wordt het php formulier getoond op een blanco pagina en dan krijg ik WEL formulier binnen in mijn mail? Weet iemand hoe dit kan en wat de oplossing kan zijn hiervoor?

wat belangrijk is dat me layout intact blijft van het formulier zie afbeelding:

contact-form.PNG


dit is het HTML script

HTML:
<form id="contact-form" action="contactform.php" method="post" enctype="multipart/form-data">                    
           <fieldset>
           <label><span class="text-form">Naam:</span>
           <input name="cf_name" type="text" /></label>
           <label><span class="text-form">Adres:</span>
           <input name="cf_adress" type="text" /></label>
           <label><span class="text-form">Email:</span><input name="cf_email" type="text" /></label>   
           <label><span class="text-form">Telefoon:</span>
           <input name="cf_phone" type="text" /></label>                                    
           <div class="wrapper"><div class="text-form">Bericht:</div><textarea name="cf_message"></textarea></div>
           <div class="buttons">
           <a class="button" href="/contact.html" onClick="document.getElementById('contact-form').reset()">Wis</a>
           <a class="button" href="/bedankt.html" onClick="document.getElementById('contact-form').submit()">Verstuur</a>
           </div>                             
           </fieldset>						
           </form>

en dit is het PHP script

PHP:
<?php
$field_name = $_POST['cf_name'];
$field_adress = $_POST['cf_adress'];
$field_email = $_POST['cf_email'];
$field_phone = $_POST['cf_phone'];
$field_message = $_POST['cf_message'];

$mail_to = 'rutger1986@ziggo.nl';
$subject = 'Ingevuld contactformulier'."\n".$field_name;

$body_message = 'Van: '.$field_name."\n";
$body_message .= 'Adres: '.$field_adress."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Telefoon: '.$field_phone."\n";
$body_message .= 'Bericht: '.$field_message;

$headers = 'From: '.$_POST['cf_email'];

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) 
{ 
header('location: bedankt.html');
}
else 
{ 
header('location: contact.html');
}
?>

alle hulp is welkom:-)

alvast bedankt.
Gr Rutger
 
Laatst bewerkt:
Werk je lokaal op je pc, of werk je op een server? Het is namelijk zo dat je SMTP nodig hebt om e-mail te kunnen versturen. Als je lokaal werkt (via WAMP/XAMP oid) dan moet je dat nog instellen.
 
Werk je lokaal op je pc, of werk je op een server? Het is namelijk zo dat je SMTP nodig hebt om e-mail te kunnen versturen. Als je lokaal werkt (via WAMP/XAMP oid) dan moet je dat nog instellen.

Ik maak gebruik van de eigen mailserver van de site, ik gebruik geen lokaal programma op me pc. Het gekke is alleen dat het formulier wel binnenkomt als ik in de button van verstuur de link naar de bedankt pagina weglaat

HTML:
<a class="button" href="/bedankt.html" onClick="document.getElementById('contact-form').submit()">Verstuur</a>

als ik dat vervang voor:

HTML:
<a class="button" onClick="document.getElementById('contact-form').submit()">Verstuur</a>

dan wordt het formulier wel verstuurd naar mijn mail alleen kom ik dan niet op me bedanktpagina uit met extra info maar gaat hij naar een nieuwe pagina
met in de url balk mijnsite.nl/contactform.php

en dat is juist niet wat ik wil:-)

dus in hoeverre kan het zich oplossen als ik wel de smtp gegevens in het form verwerk?
 
Laatst bewerkt:
En als je

Code:
<a class="button" href="/bedankt.html" onClick="document.getElementById('contact-form').submit()">Verstuur</a>

nu eens vervangt door:

Code:
<input type="submit" name="submit" class="button" value="Verstuur">

Dan ben je van dat linkje af in je formulier. Je hebt dan gewoon een button.

Wat ik denk dat het probleem is, is dat hij al bij de volgende pagina is, alvorens hij de onClick kan uitvoeren.
 
En als je

Code:
<a class="button" href="/bedankt.html" onClick="document.getElementById('contact-form').submit()">Verstuur</a>

nu eens vervangt door:

Code:
<input type="submit" name="submit" class="button" value="Verstuur">

Dan ben je van dat linkje af in je formulier. Je hebt dan gewoon een button.

Wat ik denk dat het probleem is, is dat hij al bij de volgende pagina is, alvorens hij de onClick kan uitvoeren.

Bedankt voor je snelle reactie, ik heb de aanpassing uitgeprobeerd maar dan verliest de button alsnog zijn css (zie afbeelding)
ook kom ik dan alsnog niet uit op de bedankt pagina maar wordt ik na de klik doorverwezen naar de contactform.php pagina
Het formulier komt wel in mijn mail binnen

afbeelding na wijziging:
voorbeeld.JPG
 
Je zult dan even de selector in je CSS moeten aanpassen. Ik vermoed dat er iets stond dat eindigde op "a.button", verander dit even naar "input.button". Dan heb je de styling weer terug.

Dat je uitkomt op de contactpagina ipv de bedank pagina, zal dan denk ik liggen aan je foutafhandeling in PHP? (ben ik niet zeker van)
 
Helaas lukt met bovenstaande hulp kom ik niet tot het gewenste resultaat.
Is er iemand die mij met het stukje PHP kan helpen die ervoor zorgt dat ik na het klikken op de button VERSTUUR doorgelinkt wordt naar de bedankt pagina
in plaats van de pagina van het contactformulier script zelf genaamd contactform.php (is een blanco pagina)
alle hulp is welkom
 
Probeer eens de regel in je php script bij header te vervangen door "" i.p.v. ''. Mocht dit niet werken probeer dan de volledige url i.p.v. alleen bedankt.html
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan