formulier

Status
Niet open voor verdere reacties.

Beasty

Gebruiker
Lid geworden
25 feb 2003
Berichten
39
Ik zit nu al 2 dagen met dit formulier bezig om de fout te zoeken, maar ik vind het nergens, waarschijnlijk zie ik iets over het hoofd ofzo maar kan het toch zo nergens vinden. Ik hoop dat jullie me kunnen helpen met dit.

Probleem:
-------------
Ik heb 2 bestanden: formulier.php en verzonden.php
Alles gaat goed tot dat hij gaat verzenden en dan krijg je te zien dat er een error is op lijn: 223.
Hieronder vindt je de 2 bestanden, met een quote van de error lijn.

formulier.php

PHP:
<html>
<head>
<title>Bestelformulier</title>
<style type="text/css"> 

label 
{ 

width:25%; text-align:left; float:left; font-weight:bold;

} 

.row 
{ 

padding:5pt; 
}

img
{

border: 0;

}

.style1 {color: #FF0000}
</style>

</head>

<body>

<form id="Bestellen" method="post" action="verzonden.php">
<div class="row">
<label for="voornaam">Voornaam: <span class="style1">*</span></label>
<input name="voornaam" type="text" id="voornaam"/>

</div>
<div class="row">
<label for="achternaam">Achternaam: <span class="style1">*</span></label>
<input name="achternaam" type="text" id="achternaam"/>
</div>

<div class="row">
<label for="email">Email: <span class="style1">*</span></label>
<input name="email" type="text" id="email"/>
</div>

<div class="row">
<label for="adres">Adres: <span class="style1">*</span></label>
<input name="adres" type="text" id="adres"/>
</div>

<div class="row">
<label for="postcode">Postcode: <span class="style1">*</span></label>
<input name="postcode" type="text" id="postcode"/>
</div>

<div class="row">
<label for="dorp/stad">Gemeente / stad: <span class="style1">*</span></label>
<input name="dorp/stad" type="text" id="dorp/stad"/>
</div>

<div class="row">
<label for="land">Land: <span class="style1">*</span></label>
<input name="land" type="text" id="land"/>
</div>

<div class="row">
<label for="telefoon nummer">Telefoon nummer:</label>
<input name="telefoon nummer" type="text" id="Telefoon nummer"/>
</div>

<div class="row">
<label for="bedrijf">Bedrijf:</label>
<input name="bedrijf" type="text" id="bedrijf"/>
</div>

<div class="row">
<label for="BTW-nummer">BTW-nummer:</label>
<input name="BTW-nummer" type="text" id="BTW-nummer"/>
</div>
<div class="row">
<label for="domeinnaam">Wenst u een domeinnaam?</label>
<select name="domeinnaam">
	<option>Ja</option>
	<option>Neen</option>
</select>
</div>

<div class="row">
<label for="domeinnaam2">Welk domeinnaam had u gewenst?</label>
<input name="domeinnaam2" type="text" id="domeinnaam2"/>
</div>

<div class="row">
<label for="pakket">Soort pakket:</label>
<select name="pakket">
	<option>Starter</option>
	<option>Basic</option>
	<option>Normal</option>
	<option>Giga</option>
	<option>Expert</option>
</select>
</div>

<div class="row"> 
<label for="bericht">Opmerking:</label>
<textarea id="bericht" name="bericht" cols="45" rows="10"></textarea>
</div>

<div class="row">
<label for="submit"></label>
<input type="submit" name="submit" id="submit" value="Verstuur het formulier" />
</div>


</form>

</body>
</html>

verzonden.php

PHP:
<html>
<head>
<title>Bestelformulier</title>

<style type="text/css"> 

.a{

text-decoration:none

}


.list 
{ 

font-weight: bold; 
width: 20%; 

} 

.inf 
{ 

font-style: italic;

}

</style>

</head>

<body>

<?php 

#form is nog niet verzonden
if( !isset($_POST['submit']) )
{

echo '<p>Het bestelformulier is niet verzonden, <a href="formulier.php" title="Ga terug naar het bestelformulier">vul het nu in</a>.</p>';

}

else
{

#jouw emailadres
$mailto = 'info@jow.be';

#het onderwerp
$subject = 'We hebben je bestelling ontvangen.';

#het bericht
$ourmsg = 'Beste ' . $_POST['naam'] . ", \r\n
We hebben je bestelling ontvangen en zullen proberen deze
zo snel mogelijk te beantwoorden. \r\n
Met vriendelijke groet, Jongeren Online Web";

#de headers
$header = 'From: ' . strip_tags($_POST['email']);

#met strlen bekijken we de lengte van een ingevuld veld 


#voornaam te kort
if( strlen($_POST['voornaam']) < 3) 
{

$aError[] = 'Voer een voornaam in van ten minste 3 tekens.'; 

}

#achternaam te kort
if( strlen($_POST['achternaam']) < 1) 
{

$aError[] = 'Voer een voornaam in van ten minste 1 teken.'; 

}

#email ongeldig (qua syntax)
if( !eregi('[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+',$_POST['email']) )
{

$aError[] = 'Voer een geldig emailadres in.'; 

}

#adres te kort
if( strlen($_POST['adres']) < 2) 
{

$aError[] = 'Voer een adres in van ten minste 2 tekens.'; 

}

#postcode te kort
if( strlen($_POST['postcode']) < 3) 
{

$aError[] = 'Voer een postcode in van ten minste 3 tekens.'; 

}

#dorp/stad te kort
if( strlen($_POST['dorp/stad']) < 2) 
{

$aError[] = 'Voer een dorp/stad in van ten minste 2 tekens.'; 

}

#land te kort
if( strlen($_POST['land']) < 4) 
{

$aError[] = 'Voer een land in van ten minste 4 tekens.'; 

}



#er is, of er zijn, één of meerdere fouten
if( isset($aError) )
{

#ff door de fouten heenlopen/echoën ;)
foreach($aError as $sError)
{

echo '<p>' . $sError . '</p>';

}

}

#geen fouten
else 
{ 

?>

<table width="100%">

<tr> 
<td>Je vulde de volgende gegevens in:</td>
</tr>

<tr>
<td class="list">Voornaam:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['voornaam']) ); ?></td>
</tr>

<tr>
<td class="list">Achternaam:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['achternaam']) ); ?></td>
</tr>

<tr>
<td class="list">Email:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['email']) ); ?></td>
</tr> 

<tr>
<td class="list">Adres:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['adres']) ); ?></td>
</tr>

<tr>
<td class="list"></td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['postcode']) ); ?></td>
</tr>

<tr>
<td class="list"></td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['dorp']) ); ?></td>
</tr>

<tr>
<td class="list"></td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['land']) ); ?></td>
</tr>

<tr>
<td class="list">Telefoon nummer:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['telefoon nummer']) ); ?></td>
</tr>

<tr>
<td class="list">Bedrijf:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['bedrijf']) ); ?></td>
</tr>

<tr>
<td class="list">BTW-nummer:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['BTWnummer']) ); ?></td>
</tr>

<tr>
<td class="list">Domeinnaam:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['domeinnaam']) ); ?></td>
</tr>

<tr>
<td class="list">Gewenste domeinnaam:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['domeinnaam2']) ); ?></td>
</tr>

<tr>
<td class="list">Soort pakket:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['pakket']) ); ?></td>
</tr>

<tr>
<td class="list">Opmerking:</td>
<td class="inf"><?php echo nl2br( strip_tags($_POST['bericht']) ); ?></td>
</tr>

</table> 

<?php
mail($mailto,$onderwerp,$bericht,$header,$pakket,$domeinnaam2,$domeinnaam,$BTWnummer,$bedrijf,$telefoon nummer,$land,$dorp,$postcode,$adres,$email,$achternaam,$voornaam);
mail($email,$subject,$ourmsg,$header);
}#else, geen fouten 

}#else, form is gesubmit

?>
</body>
</html>

De error lijn met nog een paar regels daarachter:

PHP:
<?php
mail($mailto,$onderwerp,$bericht,$header,$pakket,$domeinnaam2,$domeinnaam,$BTWnummer,$bedrijf,$telefoon nummer,$land,$dorp,$postcode,$adres,$email,$achternaam,$voornaam);
mail($email,$subject,$ourmsg,$header);
}#else, geen fouten 

}#else, form is gesubmit

?>
 
Maar dat help ook nog niet zoveel, want ik krijg hier nu de fout:

Warning: mail() expects at most 5 parameters, 17 given in /Test/8/verzonden.php on line 223


// p.s.
wellicht heb je nog wat aan onderstaande link:
http://phpformgen.sourceforge.net/
 
Laatst bewerkt:
hallo allemaal
het is niet zoon moelijk probleem
schipt ziet er goet uit
PHP:
 mail($mailto,$onderwerp,$bericht,$header,$pakket,$domeinnaam2,$domeinnaam,$BTWnummer,$bedrijf,$telef oon nummer,$land,$dorp,$postcode,$adres,$email,$achternaam,$voornaam);

dit is een klijn betje te veel :S

PHP:
mail($to, $subject, $message, $headers);

zo moet hij worden

dus bij jouw zouw ik er dit van maken

dus regel 233 vervanne door dit
PHP:
	$tmp .= $pakket. "\n<br>";
	$tmp .= $domeinnaam2. "\n<br>";
	$tmp .= $domeinnaam. "\n<br>";
	$tmp .= $BTWnummer. "\n<br>";
	$tmp .= $telefoon nummer. "\n<br>";
	$tmp .= $land. "\n<br>";
	$tmp .= $dorp. "\n<br>";
	$tmp .= $postcode . "\n<br>";
	$tmp .= $adres. "\n<br>";
	$tmp .= $email. "\n<br>";
	$tmp .= $achternaam. "\n<br>";
	$tmp .= $voornaam. "\n<br>";

mail($mailto, $onderwerp, $bericht."\n<br>".$tmp, $header);

veel suses groeten aart
 
En het werkt perfect, heel erg bedankt aartvg!

Groetjes, Beasty
 
het werkt als het goet is niet met het tel nummer maar daar heb ik nog niks aan gedaan

ik hoor wel al lukt dat wel

trouwens geen dank

groeten aart
 
Zie de mail() functie op php.net hier ook voor. Het is mooi dat aartvg je de code geeft maar snap je ook wat je fout hebt gedaan? :)
 
De mail functie had ik gisteren al doorgelezen en weet waar mijn fout zat :)
Nu werkt alles perfect. :)
 
Trouwens, als je in de mail() functie, <br> meezend, zie je daadwerkelijk <br>. Een nieuwe regel start je met \n.

:thumb:
 
Geplaatst door masterprut
Trouwens, als je in de mail() functie, <br> meezend, zie je daadwerkelijk <br>. Een nieuwe regel start je met \n.
Niet altijd :)
 
Geplaatst door masterprut
Trouwens, als je in de mail() functie, <br> meezend, zie je daadwerkelijk <br>. Een nieuwe regel start je met \n.

:thumb:

Als je in de headers content-type HTML meegeeft kun je met html-tags werken. :thumb:
 
*Uit het blote hoofd* :D

PHP:
<?php

mail($to, $subject, $message, "Content-type: text/html; charset=iso-8859\r\n");

?>
 
Ik zal het ff uitleggen

PHP:
<?

$naam = "Masterprut";

echo"Hallo, mijn naam is $naam.";

?>

Dat is niet de bedoeling, met error_reporting(E_ALL); zul je hier foutmeldingen mee krijgen, en met php5 ook, daarom moet je het zo doen:

PHP:
<?

$naam = "Masterprut";

echo"Hallo, mijn naam is " . $naam . ".";

?>
Dat heet vars buiten qoutes ;)

Stef
 
Laatst bewerkt:
Geplaatst door Webstudios
Btw, variabelen buiten qoutes he ;)
Goed dat je dat al geleerd heb Stef, maar waarom maak je die opmerking ? aartvg postte een kort script waarbij de vars al buiten de quotes staan ...
PHP:
<?

$naam = "Masterprut";

echo"Hallo, mijn naam is $naam.";

?>
Dat is niet de bedoeling, met error_reporting(E_ALL); zul je hier foutmeldingen mee krijgen, en met php5 ook, daarom moet je het zo doen:
Oh ? Is dat zo ? Ik dacht 't niet.
Ik heb zelf nog nooit PHP5 gebruikt, maar ik kan je garanderen dat je geen melding krijgt bij de normale PHP versie zoals 3.8.
Voor de parser is dit acceptabel scriptgedrag, voor de scripter echter niet. Voor de scripter is 't fijner om overzichtelijk te scripten, wat dus inhoud om variabelen van strings te scheiden.
Leuk om te weten: Het is wel 1 milliseconde langzamer ;)
Dat heet vars buiten qoutes ;)
Quotes.
 
Geplaatst door JPeetje
Goed dat je dat al geleerd heb Stef, maar waarom maak je die opmerking ? aartvg postte een kort script waarbij de vars al buiten de quotes staan ...Oh ? Is dat zo ? Ik dacht 't niet.
Ik heb zelf nog nooit PHP5 gebruikt, maar ik kan je garanderen dat je geen melding krijgt bij de normale PHP versie zoals 3.8.
Voor de parser is dit acceptabel scriptgedrag, voor de scripter echter niet. Voor de scripter is 't fijner om overzichtelijk te scripten, wat dus inhoud om variabelen van strings te scheiden.
Leuk om te weten: Het is wel 1 milliseconde langzamer ;)Quotes.

Is dit ook niet de bedoeling in de mailfunctie dan?
In php5 weet je dat zeker , dies pas uit hoor, ik meen toch dat het wel zo was, maarja, ik kan het mis hebben:eek:
Bij de normale php versies zeker niet, echter wel als je error_reporting(E_ALL); erboven zet, btw, leuk dat je dat geleerd hebt, das 1 van de eerste dingen die ik geleerd heb ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan