Ga naar inhoud


Contactformulier binnen dreamweaver


pepper

Aanbevolen berichten


Tricky stuff, maar niet onmogelijk. Je moet echter wel een PHP-enabled host hebben in dit geval.

 

Even snel wat bij elkaar gehackt, in 3 files

 

index.html

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl">	<head>		<meta http-equiv="Content-Language" content="nl" />		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />		<title>Reactieformulier</title>	</head>	<body>		<div id="formulier">			<form method="post" action="sendmail.php">				<fieldset>					<p>						<label for="inNaam">Naam:</label><br />						<input type="text" name="form[naam]" id="inNaam" />					</p>										<p>						<label for="inEmail">Email:</label><br />						<input type="text" name="form[email]" id="inEmail" />					</p>										<p>						<label for="txtReactie">Reactie:</label><br />						<textarea name="form[reactie]" id="txtReactie" rows="4" cols="50"></textarea>					</p>										<p>						<input type="submit" name="submit" value="Versturen" />					</p>				</fieldset>			</form>		</div>		</body></html> 

 

sendmail.php

Code:
<?php	$ontvanger = 'iemand@domein.invalid';	$onderwerp = 'reactie';		$headers  = 'MIME-Version: 1.0' . "\r\n";	$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";		if($_POST['submit'] && $_POST['form']) {		$form = $_POST['form'];				require_once('email.tpl.php');				echo "{$email}";				// bool mail ( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] )		mail($ontvanger, $onderwerp, $email,$headers);	}?>

 

email.tpl.php

Code:
<?php	$velden = "";		foreach($form as $veld => $waarde) {		$waarde = nl2br($waarde);		$velden .= "<p>{$veld}: {$waarde}</p>";	}		$email = <<<EOF<html>	<head>		<title>Blaat</title>	</head>	<body>		Het volgende is ingestuurd:<br />		{$velden}	</body>	</html>EOF;?>

 

Korte handleiding:

 

In index.html verander je de form elementen zoals gewenst. Zorg ervoor dat de naam van de elementen in het formaat form[elementnaam] vallen en het wordt automatisch door het emailtemplate (email.tpl.php) verwerkt.

 

In sendmail.php de waarden $ontvanger en $onderwerp aanpassen naar keus.

 

Aanpassen naar wens <img src="/forums/images/graemlins/smile.gif" alt="" />

Link naar reactie
Delen op andere sites

Citaat:
Het werkt, had er al veel over gelezen maar kon er maar niet uitkomen.
Rest aanvullen gaat lukken
Thnx <img src="/forums/images/graemlins/xyxthumbs.gif" alt="" />


Prima script, maar je bouwt best nog wat controles in voor je het formulier laat verzenden.

Ondermeer:
controle op invullen van bepaalde velden

Zoals het nu is geschreven wordt telkens een mail verstuurd als iemand op de knop versturen klikt. (ook als alle velden leeg zijn)

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Dat klopt, ben wel al blij dat het werkt.

Het rare is als ik de formulieren opmaak in de standaard css, ik bij preview een goed beeld krijg.

Uploaden en dan opvragen, krijg ik gewoon een witte pagina.

 

De gemailde uitput, kan dat ook beter leesbaar ? <img src="/forums/images/graemlins/confused.gif" alt="" />

groeten pepper

2 x VU+ duo - 1 x Dream 800 - 1 x Dream7000 - 1 x Dream 500

Wavefrontier T90

Link naar reactie
Delen op andere sites

De gemailde output kan je helemaal zelf maken.

Maak een pagina in dreamweaver zoals je zelf wil dat het eruit ziet.

Het enige waar je moet voor zorgen is als je afbeeldingen gebruikt je de volledige url opgeeft en dan ook zorgt dat die afbeelding daadwerkelijk op die plaats staat.

Dus niet <img scr="afbeelding.jpg" />, maar <img scr="http://www.domein.nl/afbeelding.jpg" />

Net hetzelfde voor links

 

Voorzie een plaats waar je de variabel $velden wil plaatsen.

 

Ga naar code view en selecteerde volledige broncode.

 

Plak de volledig broncode in de email.tpl.php file tussen <<<EOF en EOF;

 

Zet er nog de $velden variable in waar je die had voorzien en stuur de hele handel naar de server.

Let op: na <<<EOF mag op diezelfde lijn niets meer staan (ook geen spacie)

en EOF; moet tegen de kantlijn staat en niets meer op die lijn(ook geen spacie)

 

De output en de mail die je ontvangt zal er nu uitzien zoals de pagina die je maakte.

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

  • 3 weken later...

groeten pepper

2 x VU+ duo - 1 x Dream 800 - 1 x Dream7000 - 1 x Dream 500

Wavefrontier T90

Link naar reactie
Delen op andere sites

controle op invullen en zoeken naar een @ in het emailadres is simpel

 

<?php

if (isset($_POST['submit'])){

$zoeken = strpos ($_POST['email'], "@");

 

if (empty ($_POST['email'])){

$fout .= "email is verplicht";

}

elseif ($zoeken == false){

$fout .= "geen @ in het email adres";

}

else{

print "email ok";

}

}

?>

 

<html>

<head>

 

</head>

 

<body>

<form method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">

<p>

<input type="text" name="email" id="email" />

</p>

<p>

<input type="submit" name="submit" value="Submit" />

</p>

</form>

<?php

print $fout;

?>

</body>

</html>

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

De "beste" validatie is op deze pagina beschreven: http://www.php.net/manual/en/function.getmxrr.php . Echter het is niet de "snelste" aangezien de mail server wordt gecontacteerd.... Maar je weet wel zeker dat het email adres bestaat...

 

Big fellow

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Alles werkt, alleen heb ik nog een probleem met de uitvoer.

Na het verzenden krijg ik op het scherm te zien water er ingevoerd is en welke data verstuurd.

De data die ik op het scherm zie wordt vervolgens verstuurd naar het opgegeven email-adres. (De opmaak hiervan is goed)

Gaat ook goed.

Alleen de opmaak van deze data is haast niet te lezen.

Hoe kan ik regelen dat alle invoer per regel onder elkaar komt <img src="/forums/images/graemlins/confused.gif" alt="" />

groeten pepper

2 x VU+ duo - 1 x Dream 800 - 1 x Dream7000 - 1 x Dream 500

Wavefrontier T90

Link naar reactie
Delen op andere sites

EMAIL.TPL.PHP

 

<link href="standaard.css" rel="stylesheet" type="text/css">

<?php

$velden = "";

 

foreach($form as $veld => $waarde)

{

$waarde = nl2br($waarde);

$velden .= "<p>

{$veld}: {$waarde} </p>"

 

;

}

 

$email = <<<EOF

<html>

<head>

<title>Aanvraag Prijsopgave</title>

 

</head>

<body>

Hartelijk dank voor uw belangstelling,wij nemen uw aanvraag in behandeling en u ontvangt zo spoedig mogelijk de prijsopgave.

 

Wij hebben van u de volgende gegevens genoteerd:<br />

 

 

{$velden}

 

</body>

</html>

EOF;

?>

 

SENDMAIL.PHP

 

<?php

$ontvanger = 'info@############.nl';

$onderwerp = 'Aanvraag Prijsopgave';

 

$headers = 'MIME-Version: 1.0' . "\r\n";

$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

 

if($_POST['submit'] && $_POST['form']) {

$form = $_POST['form'];

 

require_once('email.tpl.php');

 

echo "{$email}";

 

// bool mail ( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] )

mail(

 

$ontvanger,

 

$onderwerp,

 

$email,

 

$headers)

 

;

}

?>

groeten pepper

2 x VU+ duo - 1 x Dream 800 - 1 x Dream7000 - 1 x Dream 500

Wavefrontier T90

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...