Archief - [PROG] HTML formulier laten verzenden via php script?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Sk8erMatty

Legacy Member
Ik ben bezig met een formulier te maken. Nu heb ik dit altijd laten werken door gewoon te werken met de mailto. 'k Heb dus de action nooit niet gebruikt. daarvoor moesten de mensen dus hun outlook geconfigureerd hebben anders konden ze de mail gewoonweg niet versturen.

nu had ik graag gewild dat outlook achterwege wordt gelaten en dat er dus gebruik gemaakt zou worden van een CGI of PHP script ? ik ben hier niet zo goed van op de hoogte hoe dit allemaal in zijn werk gaat.

alvast bedankt

killgore

Legacy Member
Is idd via een server-side taal zoals perl, php of asp.
Aangezien je zelf niet op de hoogte bent raad ik je aan een vriend of zo te zoeken die dat wel kan, het is immers niet al te moeilijk zo een klen scriptje te maken ;).

Sk8erMatty

Legacy Member
maar is er soms geen voorbeeld van zo'n script ? (ale ja, kem al wa zitten kijken op google en zo, maar er bestaan er zoveel dat ik niet weet welke gewoon het basisscriptje is). ik begrijp wel redelijk wat programmeer taal dus zal ik wel vlug begrijpen hoe het in elkaar zit, alvast merci vo je reply ;)

killgore

Legacy Member
je maakt je form, bv.:

<form action="verwerkmail.php" method="post">
<input type="text" name="name" value="Uw naam aub" />
<input type="submit" name="Send" value="Verzend Mail"/>
</form>

en dan in verwerkmail.php iets als:
PHP:
if(isset($_POST["Send"]))
{
    $name = isset($_POST["name"])?$_POST["name"]:"NoName";
    mail("[email protected]","Een naam van iemand!",$name);
}

Dit is basis en natuurlijk met maar 1 veld.
Uitleg: in de if kijken we of een POST-variabele Send is geset, dit is in principe enkel zo als ze dit formulier verzonden hebben (je kan dit faken, maar doet er niet veel toe).
Daarna halen we de variabele name op. Merk op dat we een isset doen, het kan immers zijn dat dit veld niet wordt ingevuld en de browser dan ook geen post-variabele meegeeft.
Daarna doen we mail, de info hierover vindt je hier: http://be2.php.net/manual/en/function.mail.php

ca va?

Sk8erMatty

Legacy Member
Dit heb ik nu :

Code:
<form action="mail.php" enctype="text/plain" method="post" name="contactformulier">
<table cellpadding="0" cellspacing="0" border="0">
	<tr>
		<td valign="top"><font class="algtekst">Naam:</font></td>
		<td width="10"></td>
		<td><input type="text" name="naam" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Voornaam:</font></td>
		<td width="10"></td>
		<td><input type="text" name="voornaam" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Straat + huisnr:</font></td>
		<td width="10"></td>
		<td><input type="text" name="straat" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Postcode:</font></td>
		<td width="10"></td>
		<td><input type="text" name="postcode" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Gemeente:</font></td>
		<td width="10"></td>
		<td><input type="text" name="gemeente" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">E-mail adres:</font></td>
		<td width="10"></td>
		<td><input type="text" name="email" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Telefoonnummer:</font></td>
		<td width="10"></td>
		<td><input type="text" name="telefoon" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik zoek tussen:</font></td>
		<td width="10"></td>
		<td><select class="forminput">
				<option>69.000 & 90.000</option>
				<option>90.000 & 110.000</option>
				<option>110.000 & 180.000</option>
				<option>180.000+</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik voorzie mijn aankoop:</font></td>
		<td width="10"></td>
		<td><select class="forminput">
				<option>Direct</option>
				<option>Binnen de maand</option>
				<option>Later</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik zoek als:</font></td>
		<td width="10"></td>
		<td><select class="forminput">
				<option>Investeerder</option>
				<option>Bewoner</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Opmerkingen en/of vragen:</font></td>
		<td width="10"></td>
		<td><textarea class="forminput"></textarea></td>
	</tr>
	<tr>
		<td height="10"></td>
	</tr>
	<tr>
		<td align="center" colspan="3"><input type="submit" value="Valideer"> <input type="reset" value="Wis"></td>
	</tr>		
</table>
</form>

Code:
<?
if(isset($_POST["Send"]))
{
    $naam = isset($_POST["naam"])?$_POST["naam"]:"NoName";
    mail("[email protected]", "Prijsaanvraag Residentie Da vinci", $naam);
} 
?>

maar dit werkt nog niet ? moet ik hier nog iets aan toevoegen ?

fretn

Legacy Member
killgore: die verkorte ifs is pure horror voor je code-nakomelingen
sk8termatty: voor ieder veld in je formulier moet je in php dat opvangen en alles samen in een variabele steken, en deze variabele versturen via de mail functie, maar aan uw vorige vraag te zien neem ik aan dat dit allemaal chinees is voor jou (als het niet zo is, sorry, het is niet kwaad bedoeld)

killgore

Legacy Member
fretn zei:
killgore: die verkorte ifs is pure horror voor je code-nakomelingen
Dat die dan leren coden, die dingen zijn ffs gemaakt voor dergelijke situaties.

Sk8erMatty

Legacy Member
fretn, kan je dit niet snel maken anders voor in mijn geval? ik zou u super dankbaar zijn :p

fretn

Legacy Member
ik kan coden en ik haat zo'n stukken, ik kijk daar gewoon over als ik in de code vlug iets zoek, maja wie ben ik ? :)

killgore

Legacy Member
fretn zei:
ik kan coden en ik haat zo'n stukken, ik kijk daar gewoon over als ik in de code vlug iets zoek, maja wie ben ik ? :)

tja, ik gebruik zulke voorwaardelijke declaraties constant.

Voor andere zaken gebruik ze zelden, in expressies zijn ze meestal te lang en voor de rest ben je dan beter af met een gewone if, hiervoor vind ik ze echter perfect geslaagd :p.

Ieder zen stijl zeker :)? Als ik in een team kom waar ze me zeggen dat niet te doen zal ik me ook wel aanpassen hoor.

edit: @sk8ermatty: ken je echt niemand binne je vriendenkring of zo die je kan vertrouwen om aan je space te laten prutsen?

Sk8erMatty

Legacy Member
Kijk dit heb ik :

PHP - code

Code:
<?
if(isset($_POST["Send"]))
{
    $famnaam = isset($_POST["naam"])?$_POST["naam"]:"NoName";
	$vrnaam = isset($_POST["voornaam"])?$_POST["voornaam"]:"NoName";
	$adres = isset($_POST["straat"])?$_POST["straat"]:"NoName";
	$postc = isset($_POST["postcode"])?$_POST["postcode"]:"NoName";
	$gem = isset($_POST["gemeente"])?$_POST["gemeente"]:"NoName";
	$mailadres = isset($_POST["email"])?$_POST["email"]:"NoName";
	$tel = isset($_POST["telefoon"])?$_POST["telefoon"]:"NoName";
	$zoektss = isset($_POST["zoeken"])?$_POST["zoeken"]:"NoName";
	$aankoopwnnr = isset($_POST["aankoop"])?$_POST["aankoop"]:"NoName";
	$voorwie = isset($_POST["wie"])?$_POST["wie"]:"NoName";
	$opmerkingenvragen = isset($_POST["opmerkingen"])?$_POST["opmerkingen"]:"NoName";
	$bericht = $famnaam + $vrnaam + $adres + $postc + $gem + $mailadres + $tel + $zoektss + $aankoopwnnr + $voorwie + $opmerkingenvragen;
    mail("[email protected]", "Prijsaanvraag Residentie Da vinci", $bericht);
} 
?>

HTML formulier

Code:
<html>
<head>
<title>Untitled Document</title>
<link rel="stylesheet" href="stylesheet.css" type="text/css" />
</head>

<body class="inhoudkader">
<form action="mail.php" enctype="text/plain" method="post" name="contactformulier">
<table cellpadding="0" cellspacing="0" border="0">
	<tr>
		<td valign="top"><font class="algtekst">Naam:</font></td>
		<td width="10"></td>
		<td><input type="text" name="naam" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Voornaam:</font></td>
		<td width="10"></td>
		<td><input type="text" name="voornaam" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Straat + huisnr:</font></td>
		<td width="10"></td>
		<td><input type="text" name="straat" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Postcode:</font></td>
		<td width="10"></td>
		<td><input type="text" name="postcode" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Gemeente:</font></td>
		<td width="10"></td>
		<td><input type="text" name="gemeente" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">E-mail adres:</font></td>
		<td width="10"></td>
		<td><input type="text" name="email" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Telefoonnummer:</font></td>
		<td width="10"></td>
		<td><input type="text" name="telefoon" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik zoek tussen:</font></td>
		<td width="10"></td>
		<td><select class="forminput" name="zoeken">
				<option>69.000 & 90.000</option>
				<option>90.000 & 110.000</option>
				<option>110.000 & 180.000</option>
				<option>180.000+</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik voorzie mijn aankoop:</font></td>
		<td width="10"></td>
		<td><select class="forminput" name="aankoop">
				<option>Direct</option>
				<option>Binnen de maand</option>
				<option>Later</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik zoek als:</font></td>
		<td width="10"></td>
		<td><select class="forminput" name="wie">
				<option>Investeerder</option>
				<option>Bewoner</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Opmerkingen en/of vragen:</font></td>
		<td width="10"></td>
		<td><textarea class="forminput" name="opmerkinen"></textarea></td>
	</tr>
	<tr>
		<td height="10"></td>
	</tr>
	<tr>
		<td align="center" colspan="3"><input type="submit" value="Valideer"> <input type="reset" value="Wis"></td>
	</tr>		
</table>
</form>
</body>
</html>

keb dus alles overgenomen in de php code vanuit de html .. maar het werkt nog niet ?
kan er mij iemand misschien in de juiste richting duwen ? :)

Psychokillah

Legacy Member
Om te beginnen heb je je Submit button geen naam gegeven, waardoor hij dus doodeenvoudig de if niet als true kan evalueren en al uw moeite dus nog voor niks is geweest.

Second, wanneer men hier stukjes code als voorbeeld plaatst, moet je die natuurlijk niet klakkeloos gaan overnemen voor elk veldje he ;)
Want elke keer er iets niet is ingevuld, ga je telkens de string NoName krijgen, waardoor je op den duur het bos door de bomen niet meer ziet.

Third, je $bericht variable gaat lelijke dingen geven, door al je variablen op te tellen. Je kan beter concateneren en extra info bijvoegen, bvb.:

PHP:
$bericht = "Naam :" . $vrnaam . " " . $famnaam . "\nAdres: " . $adres; // en ga zo maar door

Het karakter . zorgt ervoor dat strings aan elkaar geplakt worden, \n staat voor een nieuwe regel. Alles tussen quotes zijn expliciet opgestelde strings.

Sk8erMatty

Legacy Member
hm..heb'k geprobeerd nu, maar er zal nog iets verkeerd zijn ?

html - code

Code:
<html>
<head>
<title>Untitled Document</title>
<link rel="stylesheet" href="stylesheet.css" type="text/css" />
</head>

<body class="inhoudkader">
<form action="mail.php" enctype="text/plain" method="post" name="contactformulier">
<table cellpadding="0" cellspacing="0" border="0">
	<tr>
		<td valign="top"><font class="algtekst">Naam:</font></td>
		<td width="10"></td>
		<td><input type="text" name="naam" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Voornaam:</font></td>
		<td width="10"></td>
		<td><input type="text" name="voornaam" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Straat + huisnr:</font></td>
		<td width="10"></td>
		<td><input type="text" name="straat" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Postcode:</font></td>
		<td width="10"></td>
		<td><input type="text" name="postcode" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Gemeente:</font></td>
		<td width="10"></td>
		<td><input type="text" name="gemeente" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">E-mail adres:</font></td>
		<td width="10"></td>
		<td><input type="text" name="email" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Telefoonnummer:</font></td>
		<td width="10"></td>
		<td><input type="text" name="telefoon" class="forminput"></td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik zoek tussen:</font></td>
		<td width="10"></td>
		<td><select class="forminput" name="zoeken">
				<option>69.000 & 90.000</option>
				<option>90.000 & 110.000</option>
				<option>110.000 & 180.000</option>
				<option>180.000+</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik voorzie mijn aankoop:</font></td>
		<td width="10"></td>
		<td><select class="forminput" name="aankoop">
				<option>Direct</option>
				<option>Binnen de maand</option>
				<option>Later</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Ik zoek als:</font></td>
		<td width="10"></td>
		<td><select class="forminput" name="wie">
				<option>Investeerder</option>
				<option>Bewoner</option>
			</select>
		</td>
	</tr>
	<tr>
		<td valign="top"><font class="algtekst">Opmerkingen en/of vragen:</font></td>
		<td width="10"></td>
		<td><textarea class="forminput" name="opmerkinen"></textarea></td>
	</tr>
	<tr>
		<td height="10"></td>
	</tr>
	<tr>
		<td align="center" colspan="3"><input type="submit" value="Valideer" name="Send"> <input type="reset" value="Wis"></td>
	</tr>		
</table>
</form>
</body>
</html>

php-code

Code:
<?
if(isset($_POST["Send"]))
{
    $famnaam = isset($_POST["naam"])?$_POST["naam"]:"NoSirName";
	$vrnaam = isset($_POST["voornaam"])?$_POST["voornaam"]:"NoFirstName";
	$adres = isset($_POST["straat"])?$_POST["straat"]:"NoAddress";
	$postc = isset($_POST["postcode"])?$_POST["postcode"]:"NoPostcode";
	$gem = isset($_POST["gemeente"])?$_POST["gemeente"]:"NoCity";
	$mailadres = isset($_POST["email"])?$_POST["email"]:"NoMailAddress";
	$tel = isset($_POST["telefoon"])?$_POST["telefoon"]:"NoTelephone";
	$zoektss = isset($_POST["zoeken"])?$_POST["zoeken"]:"NoPrice";
	$aankoopwnnr = isset($_POST["aankoop"])?$_POST["aankoop"]:"NoDate";
	$voorwie = isset($_POST["wie"])?$_POST["wie"]:"NoFunction";
	$opmerkingenvragen = isset($_POST["opmerkingen"])?$_POST["opmerkingen"]:"NoQuestions";
	$bericht = "Naam: " . $vrnaam . " " . $famnaam . "\nAdres: " . $adres . " " . $postc . " " . $gem . "\nEmail-adres: " . $mailadres . "\nTelefoonnummer: " . $tel . "\nIk zoek tussen: " . $zoektss . "\nIk voorzie mijn aankoop: " . $aankoopwnnr . "\nIk zoek als: " . $voorwie . "\nOpmerkingen/vragen: " . $opmerkingenvragen;
    mail("[email protected]", "Prijsaanvraag Residentie Da vinci", $bericht);
} 
?>

jodeman

Legacy Member
Moet ik u eens een groot geheim vertellen?
www.google.com

Als programmeur zult ge veel grotere zaken dan dit zelf moeten uitvissen, je bent namelijk veroordeeld tot constant leren. Iedereen heeft u goed op weg gezet maar je kunt toch niet verwachten dat ze alles voor u gaan doen?
Zoek zelf ook eens een beetje uit.

Sk8erMatty

Legacy Member
mjah .. da emmek al gedaan ze Jodeman .. echt waar .. das 't eerste da'k doe, maar er staan er zoveel op 't internet van die mailformulieren, ma bijna geen van die basic toestanden. altijd zo kweenie hoe uitgebreid me al die onnodige toestanden derbij da'k dan totaal nie snap .. ale ja .. tis nie da'k lui ben om verder te zoeken .. ma kweet dat 't echt nie moeilijk is om dit te laten werken .. dermee da'k hier nu gewoon wa hulp vroeg

Psychokillah

Legacy Member
De server, waar ge uw website host, ondersteunt toch mailing?
Want mailing via php moet geconfigureerd worden in apache he.

Sk8erMatty

Legacy Member
njah, da weetek niet juist .. ik weet dajje da kan zien in je php info .. maar er staat daar zoveel dat ik niet goed snap waar te kijken .. keb zo gekeken met ctrl + f op "mail" maar zo vind'k niet veel...ma 'k ben bijna 100% zeker dat ie 't ondersteund want tis me vroeger al gelukt met de site die eerder op die webruimte gehost was ..

Sk8erMatty

Legacy Member
tis mij gewoon gelukt! veel te zalig :)
merci vo al de reply's eh manne, 'k waardeer da enorm, echt waar. maar het probleem lag em dus bij het enctype dat nog op "text/plain" stond omdat ik gewoon was om te werken met de mailto-url, ik heb dit naar de standaardwaarde "application/x-www-form-urlencoded" gezet en tis mij gelukt, yippieh !
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan