Hoe maak ik een formulier?

Deze sectie is bedoeld voor discussies en vragen over hardware en software die niet direct met fotograferen te maken heeft.
jpras
Forumlid
Forumlid
Berichten: 2
Lid geworden op: za apr 18 2009 6:19 pm

Re: Hoe maak ik een formulier?

Bericht door jpras » do mei 28 2009 12:16 pm

Heb je de beschikking over php? De meeste webhosters hebben dat wel: dan is het vrij makkelijk om te regelen.

Je maar een html pagina met een paar invul velden, bv: emailadres verstuurder, naam verstuurder, onderwerp, bericht.
deze laat je posten naar een php script. Het PHP script verstuurd dan de email voor je.

Verstandig is om er een CAPTCHA code in te zetten omdat anders enkele bot's op internet dit formulier zullen misbruiken en jou overspoelen met aanbiedingen voor blauwe pillen etc.

Als je hier hulp bij nodig heb PM me even.

J-P
Nikon D80, 18-70mm f/3.5-4.5, 70-300mm f/4-5.6 AF-S VR, SB600
Sigma 10-20mm f/3.5-4.5

Gebruikersavatar
sumar
Forumlid
Forumlid
Berichten: 83
Lid geworden op: do okt 30 2008 3:54 pm
Locatie: Amsterdam
Ervaringsniveau: *

Re: Hoe maak ik een formulier?

Bericht door sumar » do mei 28 2009 1:52 pm

Kijk hier eens naar: http://phpformgen.sourceforge.net/. Je kan daar online een formulier aanmaken met alle toeters en bellen (incl beveiliging) en later de code in je pagina toevoegen.

JJ92

Re: Hoe maak ik een formulier?

Bericht door JJ92 » za mei 30 2009 8:11 pm

Als je onderstaande methode gebruikt, is het mailadres niet te zien. Wat is het? Contactformulier (met bevestigingsoptie), zie http://www.fotojj.nl/contact

Plaats dit op de pagina waar het contactformulier moet komen:
(1)

Code: Selecteer alles

<?php require("<!--pad naar contactformulier.php -->"); ?>
Plaats deze code ergens op de website (in een bestand contactformulier.php o.i.d. als er maar goed naar wordt verwezen in (1) ;-)):
[vul even de goede waarden in, zie commentaar achter de //]

(2)

Code: Selecteer alles

<?php
ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
$cNaam = 'Justin Jacobse'; // Je naam...
$cEmail = 'jj@fotojj.nl'; // email waar het heen moet
$cOndPre = 'Bericht: -'; // prefix voor onderwerp
$cOndSuf = '- (fotojj.nl)'; // suffix achter onderwerp
$cSpam = 10; // Anti Spam, X aantal minuten

if(!empty($_POST['verstuur']))
	{ // Er is op de knop 'verstuur e-mail' gedrukt...
	$pError = ''; // Een begin met de errors als die er zijn
	$pI = 0; // Deze telt het aantal erros.
	if(strlen($_POST['naam']) < 2)
		{ $pError .= '- U heeft uw naam niet ingevuld.<br>'; $pI++; }
	if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
		{ $pError .= '- U heeft geen geldig email-adres ingevuld.<br>'; $pI++; }
	if(strlen($_POST['onderwerp']) < 3)
		{ $pError .= '- U heeft geen geldig onderwerp ingevuld.<br>'; $pI++; } 
	if(strlen($_POST['bericht']) < 10)
		{ $pError .= '- U heeft geen geldig bericht ingevuld.<br>'; $pI++; }
		
	if(!empty($pError))
		{ // Als er dan toch errors zijn..
		echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is.
		echo $pError; // echoën van de error(s)
		}
	else
		{
		// uiteindelijk toch mailen :)
		$pHeader  = "MIME-Version: 1.0\r\n";
		$pHeader .= "Content-type: text/html; charset=iso-8859-1\r\n";
		$pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
		$pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
		$website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
		$pBericht = 'Het volgende bericht is gestuurd via het contactformulier:<br><hr><br>'.$_POST['bericht'].$website;
		mail($cEmail,$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBericht,$pHeader);
		
		if(isset($_POST['usermail']))
			{ // Als de persoon het vakje 'Ook naar mezelf mailen' heeft aangevinkt...
			$pBerichtUser = 'U heeft via het contactformulier op www.fotojj.nl het volgende bericht verzonden:<br><hr><br>'.$_POST['bericht'];
			mail($_POST['email'],$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBerichtUser,$pHeader);
			}
			
		echo 'Uw e-mail is succesvol verzonden.';
		setcookie('mailform',1,time()+($cSpam*60)); // cookie zetten tegen spam
		
		$pShow = true; // formulier wordt niet weer getoond
		}
	}
	// Kijken of er een waarde moet worden gegeven aan velden...
	$pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
	$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
	$pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
	$pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
	$pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';
	
	// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
	if(isset($_COOKIE['mailform']))
		{ $pShow = true; echo '<br><br> U kunt maar eens in de '.$cSpam.' minuten een e-mail versturen via dit contactformulier.'; }
		
	if(!isset($pShow))
		{ // het formulier als $pShow niet bestaat.
		?>
		<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
		Vul voor vragen/opmerkingen/suggesties het contactformulier in.        
        <dl>
			<dt class="bold">Naam </dt>
				<dd><input type="text" name="naam" size="35" value="<?= $pNaam; ?>"></dd>
			<dt class="bold">Email </dt>
				<dd><input type="text" name="email" size="35" value="<?= $pEmail; ?>"></dd>
			<dt class="bold">Onderwerp </dt>
				<dd><input type="text" name="onderwerp" size="35" value="<?= $pOnderwerp; ?>"></dd>
			<dt class="bold">Bericht </dt>
				<dd><textarea name="bericht" cols="40" rows="5"><?= $pBericht; ?></textarea></dd>
			<dt class="bold">Bevestiging</dt>
				<dd><input type="checkbox" name="usermail"></dd>
			<dt class="bold"> </dt>
				<dd>
				<input type="submit" value="Verstuur" name="verstuur"> <input type="reset" value="Wis">
				</dd>
		</dl>
		</form>

		<?php
		}
		?>
Ow ja, mocht er een error te zien zijn na het invullen van het formulier, zet dan helemaal bovenaan de pagina waar het contactformulier staat:
(3)

Code: Selecteer alles

<?php
ob_start();
?>
En helemaal onderaan:
(4)

Code: Selecteer alles

<?php
ob_end_flush();
?>
Alles werkt eenvoudig, simpel en snel.

MarcoJ

Re: Hoe maak ik een formulier?

Bericht door MarcoJ » di jun 02 2009 3:46 pm

Je kunt ook gewoon je adres als afbeelding neerzetten. men dient dan handmatig het adres in te vullen in het mail-programma.

Zo heb ik het gedaan in ieder geval... geen spannende scripts of codes...

(en ja, indien men mij wil bereiken neemt men die moeite maar... :twisted: )

hoefnix

Re: Hoe maak ik een formulier?

Bericht door hoefnix » zo jun 14 2009 9:47 am

Als je gewoon een Email adres in een pagina wilt zetten zodat mensen makkelijk vanuit hun browser met hun normale Email programma een mailtje kunnen sturen, kan je naast de hierboven genoemde truuks (die redelijk werken tegen de email-adres-zoekende spambots), ook ipv het @ teken %40 zetten.

Waar de TS en kennelijk ondertussen ook anderen naar op zoek zijn, is een PHP scriptje wat een bericht accepteert, en daar dan een EMail van maakt. Een voorbeeld is: http://www.knvvl.nl/afdelingen/schermvliegen/contact

Uitleg en voorbeelden zijn ook te vinden:
http://www.ibdhost.com/contact/
http://www.kirupa.com/web/php_contact_form.htm

Ciska

Re: Hoe maak ik een formulier?

Bericht door Ciska » zo jun 14 2009 11:38 am

%40 doet niets

Gebruikersavatar
remoss
Forumlid
Forumlid
Berichten: 3747
Lid geworden op: wo sep 13 2006 8:52 pm
Contacteer:

Re: Hoe maak ik een formulier?

Bericht door remoss » ma jul 06 2009 12:12 am

Als php een mogelijkheid is.............ik heb een heel simpele gemaakt welke ik gebruik op meerdere sites en heb daar nooit spam op (zie hier). Alleen de captcha heb ik niet zelf verzonnen.

Plaats reactie

Terug naar “Computer hardware en software algemeen”