probleem invulformulier

Status
Niet open voor verdere reacties.

grindy

Gebruiker
Lid geworden
21 jul 2008
Berichten
6
Ik heb een invulformulier geschreven. hier word informatie gevraagt over de klant (klant-gericht:p) hierbij is vermeld
- dhr/mvr
- naam
- email adres
- telefoonnummer
- bericht (tekstvak)

naam email adres en telefoonnummer zijn verplicht om in te vullen. werkt allemaal perfect. informatie word verzonden via de header naar een bevestigingspagina waar de informatie word opgevraagt zodat mensen het kunnen nakijken of de ingevulde informatie goed is.

het probleem ligt hem bij het verzenden naar de bevestigingspagina. het word verzonden via de url. dus in het tekstvak "bericht" kan je niet meer dan 1 regel typen. terwijl dit wel nodig zal zijn. heeft iemand een idee hoe ik de informatie kan verzenden naar het bevestigingsformulier zonder de header te gebruiken. dus dat ik meerdere regels kan typen in mijn tekstvak.

dit zijn de scripts:


// formulier //
Code:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

if (isset($_POST['naam']) && $_POST['naam']=="") {
echo "<div style='color: red;'>U heeft geen naam ingevuld.<br></div>";
$ok = "0"; }



if (isset($_POST['email']) && $_POST['email']=="") {
echo "<div style='color: red;'>U heeft geen E-mail adres ingevuld.<br></div>";
$ok = "0"; }

elseif(!eregi('^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3})?)$', $_POST['email'])) {
 echo "<div style='color: red;'>Dit is geen geldig E-mail adres.<br></div>";
$error = "0";
}

else {
$error="1";
}

if (isset($_POST['telefoonnummer']) && $_POST['telefoonnummer']=="") {
echo "<div style='color: red;'>U heeft geen Telefoonnummer ingevuld.<br></div>";
$ok = "0"; }

elseif(!eregi ('^[0-9]{10}$', $_POST['telefoonnummer'])) {
echo "<div style='color: red;'>Dit is geen geldig telefoonnummer<br /></div>";
$error = "0";
}

else{
$error="1";
}

if($ok == "0" || $error == "0") {
echo "Vul de verplichte velden in. Deze zijn te herkennen aan een * .";
}

if($ok == "1" || $error == "1") {
$naam = $_POST['naam'];
$email = $_POST['email'];
$telefoonnummer = $_POST['telefoonnummer'];
$mobiel = $_POST['mobiel'];
$vragen = $_POST['vragen'];

header("Location:checkinput.php?naam=$naam&email=$email&telefoonnummer=$telefoonnummer&mobiel=$mobiel&vragen=$vragen
");
}
}
?> 

<BR />
<br />
<table width="100%" border="0"> 


<tr> 
<td width="20%">Dhr/Mvr:</td>
<td width="40%">
<SELECT NAME="geslacht">
<OPTION>Kies een optie</OPTION>
<OPTION>Dhr</OPTION>
<OPTION>Mvr</OPTION>
</SELECT>
</td>
</tr>

<tr> 
   <td width="20%">Naam:*</td> 
   <td width="80%"><input type="text" name="naam" size="30" value="<?php if (isset($_POST['naam'])) { print $_POST['naam']; } ?>"></td> 
</tr> 

<tr> 
   <td width="20%">E-mailadres:*</td> 
   <td width="80%"><input type="text" name="email" size="30" value="<?php if (isset($_POST['email'])) { print $_POST['email']; } ?>"></td> 
</tr> 

<tr> 
   <td width="20%">Telefoonnummer:*</td> 
   <td width="80%"><input type="text" name="telefoonnummer" size="30" value="<?php if (isset($_POST['telefoonnummer'])) { print $_POST['telefoonnummer']; } ?>"></td> 
</tr> 

<tr> 
   <td width="20%">Mobiel:</td> 
   <td width="80%"><input type="text" name="mobiel" size="30" value="<?php if (isset($_POST['mobiel'])) { print $_POST['mobiel']; } ?>"></td> 
</tr> 

<tr>
	<td width="20%">Uw bericht:</td> 
	<td class="form_text" style="width: 285px name="vragen" value="<?php if (isset($_POST['vragen'])) { print $_POST['vragen']; } ?> ">
	<textarea name="vragen" cols="35" rows="7" onclick=" value='';">Hier kunt u vragen stellen of in schrijven of u een website wilt aanvragen.</textarea>
			</td>
		</tr>
		<tr>


 
<tr> 
   <td width="20%"></td> 
   <td width="80%"> 
      &nbsp;<br> 
      <input type="submit" name="submit" value="Verzenden"> 


   </td> 
</tr> 

</form> 
</table>

///////////////////////////////////////////////
bevestigingsformulier

Code:
<?

$bedrijfsnaam			=	$_GET['bedrijfsnaam'];
$naam				=	$_GET['naam'];
$email_from			=	$_GET['email'];
$telefoon			=	$_GET['telefoonnummer'];
$mobiel				=	$_GET['mobiel'];
$vragen				=	$_GET['vragen'];


echo "Naam: " .$naam. "<br />";
echo "E-Mail: " .$email_from. "<br />";
echo "Telefoonnummer: " .$telefoon. "<br />";
if(isset($mobiel)){
	echo "Mobiel: " .$mobiel. "<br />";
echo "Vragen: " .$vragen. "<br />";

}
?>
<Br />
<font color="red">LET OP!</font><BR />

<form action="<? $_SERVER['PHP_SELF']; ?>" method="POST">
Mijn gegevens kloppen<input type="checkbox" name="klopt" value="1" /> <br /><br />
<input type="submit" value="Verstuur Mail" name="submit1" />
</form>

<?

if(isset($_POST['submit1'])){
	if($_POST['klopt'] == 1){
		$mail_to	= 	"stealtje90@hotmail.com";
		$subject	=	"[MAIL FORM WEBSITE]";	
		$headers        =       "From: ".$naam." <".$email_from.">\r\n";
		$message	=	"Naam: " .$naam. "\n  E-mailadres: " .$email. "\n Telefoonnummer: " .$telefoonnummer. "\n Mobiel: " .$mobiel. "\n Vragen: " .$vragen. "\n";
		$mail		=	mail($mail_to,$subject,$message,$headers);
		if($mail){
			echo "<div style='color: green;'>Uw mail is verstuurd!</div>";
			
		}else{
			echo "<div style='color: red;'>Uw mail is niet verstuurd!</div>";		
}
	}else{
		echo "<div style='color: red;'>U heeft niet aangegeven dat uw gegevens kloppen.</div>";
	}
}
?>

Ik ben al een tijdje bezig met het formulier en vind het tijd dat die afkomt. dit is het laatste dat nog aangepast moet worden alleen weet ik niet helemaal hoe.
 
Je kunt toch gewoon POST gebruiken, waarom zou je form-data met GET willen versturen?

Je maakt gewoon een

HTML:
<form name="contactOfZoiets" method="post" action="controleer.php">
Voornaam:<input type="text" name="voornaam"><br />
Achternaam:<input type="text" name="achternaam"><br />
<input type="submit" name="submit" value="Verzend">
</form>

Dan maak je een pagina 'controleer.php'

PHP:
Dit is wat u had ingevuld:
Voornaam: <?php echo $_POST['voornaam']; ?><br />
Achternaam: <?php echo $_POST['achternaam']; ?><br/>
<form name="formuliernaam" method="post" action="verwerk.php">
<input type="hidden" name="voornaam" value="<?php echo $_POST['voornaam']; ?>">
<input type="hidden" name="achternaam" value="<?php echo $_POST['achternaam']; ?>">
<input type="submit" name="submit" value="Ik ben het er mee eens">
</form>

En dan verwerk je de data op een pagina genaamd 'verwerk.php'

Je moet het natuurlijk nog wel aanpassen aan jouw wensen en je form-validatie erin gooien.
 
als ik $_POST gebruik om de informatie te verzenden naar checkinput. dan word de info weergeven.

het probleem is echter dat als mensen de checkbox op die pagina wat verplicht is voordat die kan verzenden niet aanvinken dan is de informatie verloren en dan zouden ze weer terug meoten gaan om de informatie weer opnieuw in te vullen. ik wil dat de informatie blijft staan bij error maar weet niet hoe ik deze opnieuw moet opvragen als er iets fout gaat


nog een probleem hiernaast is dat form.php (het formulier) geen validatie utivoert maar de informatie direct doorstuurt naar checkinput.php (bevestiging).
dus hij kijkt niet of email wel een email is en telefoon wel telefoon. dit slaat die direct over
 
Laatst bewerkt:
Ik was aan het denken om het te proberen met sessies. alleen het probleem hierbij is dat ik niet weet hoe ik dit in een formulier moet zetten.

als ik de sessie aanmaak ongeveer zo
Code:
<?php

session_start();

Hier moet nog keuze menu komen van kies een optie/dhr/mvr
$_SESSION['naam'] = $naam;
$_SESSION['email"] = $email;
$_SESSION['telefoonnummer'] = $telefoonnummer;
$_SESSION['mobiel'] = $mobiel;
$_SESSION['vragen'] = $vragen;

?>
Als ik dit zo opgeef zou ik hiernaast nog een formulier moeten maken.

moet dat dan gewoon zo

Code:
<form action="bevestigingspaginahier" name="form" method="POST"> 
<table width="100%" border="0"> 

<tr> 
   <td width="20%">Naam:*</td> 
   <td width="80%"><input type="text" name="naam" size="30"></td> 
</tr> 

<tr> 
   <td width="20%">E-mailadres:*</td> 
   <td width="80%"><input type="text" name="email" size="30"></td> 
</tr> 

<tr> 
   <td width="20%">Telefoonnummer:*</td> 
   <td width="80%"><input type="text" name="telefoonnummer" size="30"></td> 
</tr> 

<tr> 
   <td width="20%">Mobiel:</td> 
   <td width="80%"><input type="text" name="mobiel" size="30"></td> 
</tr> 

<tr>
	<td width="20%">Uw bericht:</td> 
	<td class="form_text" style="width: 285px name="vragen">
	<textarea name="vragen" cols="35" rows="7" onclick=" value='';">Hier kunt u vragen stellen of in schrijven of u een website wilt aanvragen.</textarea>
			</td>
		</tr>
		<tr>


 
<tr> 
   <td width="20%"></td> 
   <td width="80%"> 
      &nbsp;<br> 
      <input type="submit" name="submit" value="Verzenden"> 


   </td> 
</tr> 

</form> 
</table>

ik weet niet of je een speciale value moet opgeven om deze gegevens die je zo invuld in het formulier op te vragen op een andere pagina.

moet ik hiernaast ook de sessie opvragen door:

Code:
$naam = $_SESSION['naam'];
$email = $_SESSION['email'];
$telefoonnummer = $_SESSION['telefoonnummer'];
$mobiel = $_SESSION['mobiel'];
$vragen = $_SESSION['vragen'];

/// weergeven met echo///

echo "Naam: " .$naam. " ;
echo "email: ".email. ";
etc.
dit klopt niet helemaal maar ik moet weten of ik op de goede weg zit :)

hiernaast heb ik een validatie erin zitten zoals al eerder vermeld. hoe moet ik deze dan weergegven. op het moment staat die op $_POST.

ik ben nieuw met php dus alle hulp en eventuele links naar tutorials etc zijn welkom:):thumb:
 
kan niemand mij verder helpen?

links, tips, hulp i.v.m sessies in formulieren zijn welkom
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan