hoe mailform pagina doorverwijzen ?

Status
Niet open voor verdere reacties.

dutchboy15

Gebruiker
Lid geworden
27 feb 2007
Berichten
26
goedenavond ik ben bezig met een mailform alleen
als ik dan op verzenden druk dan komt er te staan van die en die velden zijn niet ingevuld alleen ik wil dat ik adn word doorverwezen naar bijv. mailformcheck.php ofzo en niet in me huidige php word geopent hoe kan ik dat aanpassen hierbij stuur ik ook gelijk de mailform

Bekijk bijlage mailform.zip
 
verander op lijn 185:

PHP:
 print("<form action=\"".$_SERVER['REQUEST_URI']."\" METHOD=\"POST\">\n"); ?>

in

PHP:
 print("<form action=\"mailformcheck.php\" METHOD=\"POST\">\n"); ?>

succes :thumb:
 
ja oke bedankt maar ik heb het mailformcheck.php nog niet die moet ik uit mailform.php splitsen en hoe doe ik dat

EDIT:

dus dan moet de velden check uit mailform.php weg en die check moet plaats vinden in mailformcheck.php snap je
 
Laatst bewerkt:
Hoe bedoel je eruit splitsen? Bedoel je dat je in mailformcheck.php de gegevens moet krijgen die je in het form hebt ingevoerd?
 
kijk want als je nu op verzenden drukt op me website dan komt er te staan van deze velden zijn verplicht en ze moeten worden ingevult dus checkt hij of de velden ingevuld zijn maar die controle moet hij is mailformcheck.php doen en die mailformcheck.php heb ik niet en die moet ik maken van uit contactformulier.php

EDIT

dus als ik op verzenden klik en ik heb niks ingevuld dat ie dan pas doorschakelt naar mailformcheck.php snap je het ongeveer
 
Laatst bewerkt:
Ik zit met het probleem dat als ik jouw code laat uitvoeren, dat ik dan de volgende fout krijg:

Parse error: parse error, unexpected $end in ...\php\handboek\contactformulier.php on line 290

Gaat het bij jouw wel goed?
 
dat kan kloppen hij kan alleen online worden getest
 
Laatst bewerkt:
heb je er nog andere bestanden zoals headers en footers die erbij horen?

en wat bedoel je met 'dat had iemand een x ingestelt'? :(
 
Laatst bewerkt:
Ik weet al wat het probleem was. Bijna helmaal onderaan had je <? in plaats van <?php. Daardoor las die het laatste haakje waaschijnlijk niet. Het werkt nu wel.

Ik moet nu helaas weg, dus ik zal er morgen of vanavond nog even naar kijen.
 
Ik heb nu deze twee codes voor contactforumulier.php en contactforumuliercheck.php. Het enigste dat is gebeurd is dat het script nu over twee pagina's is verdeeld. Als je meer wilt moet je het maar zeggen :p .

contactforumulier.php
PHP:
<?php
//start output buffering
ob_start();
?> 
<html>
<head>
<title>Bedrijfsnaam | contactformulier</title>

<STYLE TYPE="text/css">
<!--
A:link      { text-decoration: none; color: #0000FF }
A:visited   { text-decoration: none; color: #0000FF }
A:hover     { text-decoration: underline; color: #0000FF }
A:active    { text-decoration: none; color: #0000FF }
-->
</STYLE>

</head>
<body style="margin:0;padding:5px; font-family:"Times New Roman";
font-size:12px;">
 
 
<?php

  print("<form action=\"contactforumuliercheck.php\" METHOD=\"POST\">\n"); ?> 
<!-- Zet hieronder je formulier neer --> 

<body>

<table border="0" width="447" height="433">
	<tr>
		<td height="21" width="152"><br>
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		</td>
		<td height="21" width="285"> ( * is verplicht in te vullen )<br>
		<br>
		<select size="1" name="1Aanhef">
	<option value="Dhr.">Dhr.</option>
	<option value="mevr.">Mevr</option>
	<option value="Fam.">Fam.</option>
	</select></td>
	</tr>
	<tr>
		<td height="20" width="152">&nbsp;</td>
		<td height="20" width="285">&nbsp;</td>
	</tr>
	<tr>
		<td height="21" width="152">*&nbsp; Naam </td>
		<td height="21" width="285">
		<input type="text" name="1Naam / Achternaam" size="31"></td>
	</tr>
	<tr>
		<td height="21" width="152">*&nbsp; Onderwerp:</td>
		<td height="21" width="285">
		<input type="text" name="1Onderwerp" size="31"></td>
	</tr>
	<tr>
		<td height="21" width="152">&nbsp;&nbsp;&nbsp; Postcode / Plaats:</td>
		<td height="21" width="285">
		<input type="text" name="Postcode" size="6">
		<input type="text" name="Plaats" size="20"></td>
	</tr>
	<tr>
		<td height="21" width="152">&nbsp; &nbsp; Tel. Nummer:</td>
		<td height="21" width="285">
		<!--webbot bot="Validation" s-data-type="Number" s-number-separators=" ." --><input type="text" name="Tel. Nummer" size="31"></td>
	</tr>
	<tr>
		<td height="21" width="152">&nbsp;&nbsp;&nbsp; Mobiel:</td>
		<td height="21" width="285">
		<!--webbot bot="Validation" s-data-type="Number" s-number-separators=" ," --><input type="text" name="Mobiel" size="31" value="06"></td>
	</tr>
	<tr>
		<td height="21" width="152">&nbsp;&nbsp;&nbsp; Website:</td>
		<td height="21" width="285">
		<input type="text" name="Website" size="31" value="http://"></td>
	</tr>
	<tr>
		<td height="-2" width="152">*&nbsp; Emailadress:</td>
		<td height="-2" width="285">
		<input type="text" name="1Emailadress" size="31"></td>
	</tr>
	<tr>
		<td height="21" width="152">&nbsp;</td>
		<td height="21" width="285">&nbsp;</td>
	</tr>
	<tr>
		<td height="20" width="152">&nbsp;</td>
		<td height="20" width="285">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<input type="checkbox" name="A.U.B. Bel me." value="Ja graag.">&nbsp; 
		A.U.B. Bel me.</td>
	</tr>
	<tr>
		<td height="25" width="152">&nbsp;</td>
		<td height="25" width="285">&nbsp;</td>
	</tr>
	<tr>
		<td height="189" width="152" rowspan="2">*&nbsp; Bericht:<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
		<br>
&nbsp;</td>
		<td height="211" width="285">
		<textarea rows="12" name="1Bericht" cols="33"></textarea><br>
&nbsp;</td>
	</tr>
	<tr>
		<td height="13" width="285">
		<p align="center">
		<input type="submit" value="Verzenden">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
		<input type="reset" value="Invoer wissen"></td>
	</tr>
</table>

<!-- Einde formulier --> 
<!-- Peter Vazed - Kruiningen Strikje erom em klaar om te versturen -->
<?php  ?>
</body>
</html>
<?php
//send the contents of the buffer to the browser
ob_end_flush();
?>

contactformuliercheck.php
PHP:
<?php
/*
©copyright bedrijfsnaam 2006 -2007 
*/
######################### 
#  Start Configuration  #
#########################

$sWebsitenaam = "automatisch gegenereerd e-mailbericht "; //vul hier de naam van jouw website in 

$sMail = "info@bedrijfsnaam.nl"; //Het e-mailadres waarnaar de mail word gestuurd. Voor meerdere adressen, scheid de emailadressen met een comma. 
$bHTML = TRUE; //Bij TRUE word er een HTML-mail gestuurd. Bij FALSE een plain-text-mail 
$sOnderwerp = "Mailformulier Website"; //Vul hier een onderwerp in. Dit word het onderwerp wanneer er geen ondewerp is opgegeven of als $bOnderwerp op TRUE staat 
$bOnderwerp = TRUE; //TRUE als bovenstaand onderwerp altijd gebruikt zal worden. FALSE wordt er eerst gekeken of er een onderwerp in het formulier voor komt

$bBedanktmail = TRUE; //Moet er een bedankt mailtje gestuurd worden aan die gene die verstuurde? (e-mail invoerveld is dan dus verplicht) 
$sBedanktmail = "Bedankt voor je e-mailbericht. Wij geven, indien nodig, zo spoedig mogelijk een reactie."; //de tekst van het bedank mailtje 
$sBedanktfrom = "info@bedrijfsnaam.nl"; //vanaf welk adres moet dit bedankmailtje vestuurd worden?
$sBedanktsubj = "Bedankt!"; //dit is het ondewerp van het bedanktmailtje 

$bBedanktTxt = FALSE; //TRUE als onderstaande tekst als bedankje moet worden weergegeven, FALSE als er moet worden doorgestuurd naar de pagina welke hieronder is aangegeven 
$sBedanktTxt = "De e-mail is verzonden."; //bedankt text 
$sBedanktURL = "http://www.bedrijfsnaam/bedankt.htm"; //bedankt url 

######################### 
#   End Configuration   # 
#########################
 

if (count($_POST) > 0) 
{ 
  //controleer of de $bHTML wel fatsoenlijk is ingesteld 
  if(!is_bool($bHTML)) 
  { 
    print("De configuratie is onjuist. Zorg dat je bij <font color=blue><i>$bHTML</i></font> een booleaanse waarde (TRUE of FALSE) hebt ingevuld. Letop: Hier moeten geen quotes ( \" of ') omheen!"); 
    exit; 
  } 
  $errors = array();//definieer arrray voor de errormeldingen 
  $aKeys = array_keys($_POST); //pak alle arraykeys in een arraytje
  foreach($_POST as $key=>$value) 
  {
    $_POST[$key] = trim($value); //maak alle waarden netjes
  } 
  foreach($aKeys as $key=>$value) 
  {
    $aKeys[$key]=strtolower($value);//maak alle waarden in kleine letters 
  } 
   
  $aMail = explode(",",$sMail); 
  $aDomein = explode("@",$sMail[0]);  
  $sDomein = $aMail[1];  
   
  //mail detectie
      if (in_array("mail",$aKeys)) { $sFrom = $_POST['mail']; } 
  elseif (in_array("email",$aKeys)) { $sFrom = $_POST['email']; } 
  elseif (in_array("e-mail",$aKeys)) { $sFrom = $_POST['e-mail']; } 
  elseif (in_array("1mail",$aKeys)) { $sFrom = $_POST['1mail']; } 
  elseif (in_array("1email",$aKeys)) { $sFrom = $_POST['1email']; } 
  elseif (in_array("1Emailadress",$aKeys)) { $sFrom = $_POST['1Emailadress']; }
  else    
  {  
    $sFrom = "postmaster@".$sDomein;
    $bBedanktmail = FALSE; 
  } 
   
  if ($bOnderwerp) 
  { 
    $sSubject = $sOnderwerp; 
  } 
  else 
  { 
        if (in_array("onderwerp",$aKeys)) { $sSubject = $_POST['onderwerp']; } 
    elseif (in_array("subject",$aKeys)) { $sSubject = $_POST['subject']; } 
    elseif (in_array("1onderwerp",$aKeys)) { $sSubject = $_POST['1onderwerp']; }
    elseif (in_array("1subject",$aKeys)) { $sSubject = $_POST['1subject']; } 
    else { $sSubject = $sOnderwerp; }
  }
   
   

  //check alle verplichte velden 
  foreach($_POST AS $key => $value)
  { 
    if(substr($key,0,1) == 1) 
    {
      if (empty($_POST[$key])) 
      { 
        $name = substr($key,1);
        //poep alle errors uit, dus de namen van de velden
        $error[] = "<div style=\"position:relative;top:
        5px;left:-41px;height:10px;width:450px;padding:5px;margin:1px;color:black;\">
        Het veld <i>'".$name."'</i> is verlicht en moet worden ingevuld.</div>";
      } 
    } 
  } 
   
  //als er een error was email Peter Vazed

  if (isset($error) && count($error) > 0) 
  {
    //poep ingeval foute invoer dit als bovenste tekst
     echo "<div style=\"position:relative;top:
        0;left:0;height:44px;width:450px;padding:5px;color:black;\">
        Invoer is <b>verplicht</b> voor de hieronder genoemde velden.<br>
        Klik <a href=\"javascript:history.back();\"> <b><i>hier</i></b></a> of op de
        <b><i>\"vorige button\"</i></b> in uw browser<br> om de velden in te vullen.
        </div>";
    print("<ul style=\"list-style: none; color: black;\">\n");
    foreach($error as $value) 
    {
      print("\t<li>".$value."</li>\n"); 
    }
    print("</ul>"); 
  }
  else 
  {
    $headers  = "MIME-Version: 1.0\n";   
    $headers .= "From: ".$_POST['1Emailadress'].">\n";  
    $headers .= "Reply-to: ".$_POST['1Emailadress'].">\n"; 
    $headers .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n";  

     
    $sContent = "Dit is een automatisch gegenereerd e-mailbericht die vanaf je site is verstuurd.\n\n"; 
    foreach($_POST as $key => $value) 
    {
      if (substr($key,0,1) == 1) { $key = substr($key,1); } 
      $sContent .= ucfirst(strtolower($key)).": ".$value."\n\n"; 
    } 
    $sContent .= "IP: ".$_SERVER['REMOTE_ADDR']."\n\n"; 
    $sContent .= "Tijdstip: ".date("D j M, Y G:i")."\n\n"; 
     
    $enter = " ";
    $sContent = ($bHTML) ? nl2br(htmlspecialchars($sContent)) : str_replace("\n",$enter,$sContent) ; 
     
    foreach ($aMail as $sMailAdress) 
    { 
      mail(trim($sMailAdress),$sSubject,$sContent,$headers);   
    }  
     
    if ($bBedanktmail) 
    { 
      $sBedanktmail = ($bHTML) ? nl2br(htmlspecialchars($sBedanktmail)) : str_replace("\n",$enter,$sBedanktmail) ; 
       mail($sFrom,$sBedanktsubj,$sBedanktmail,$headers); 
    }


                
    if (isset($bBedanktTxt) && $bBedanktTxt == TRUE)
    {
      print($sBedanktTxt); 
    }
    else
    { 
      //ob_end_clean();
      //ob_start();
      header("location: $sBedanktURL");
      print('<meta http-equiv=refresh content="0; url='.$sBedanktURL.'">');
    }
  }
}
 
Laatst bewerkt:
Waarom gebruik je Output Buffering?

En weet je dat je in contactforumulier.php (forumulier?) 2x <body> aanroept?

PHP:
<body style="margin:0;padding:5px; font-family:"Times New Roman";
font-size:12px;">
 
 
<?php

  print("<form action=\"contactforumuliercheck.php\" METHOD=\"POST\">\n"); ?> 
<!-- Zet hieronder je formulier neer --> 

<body>

Waarom je hier trouwens het form gedeelte in PHP gaat printen ontgaat mij volstrekt, je bent overal met HTML bezig en je roept geen variabelen of functies aan dus PHP is nergens voor nodig....
 
Ik heb alleen even snel de veranderingen gemaakt die dutchboy wou. Ik heb met veder niet bekommert om hoe mooi de code was. Van mijn kant was het vooral knippen en plakken van de orginele code :) .
 
Laatst bewerkt:
Tja een code die niet werkt daar heb je nogsteeds niets aan;)
 
De code werkt wel. Ik heb het nog uitgetest. Het is misschien niet helemaal mooi, maar het werkt wel.

Het enigste dat ik heb gedaan is de code die hij had, zo verandert dat die deed wat hij wou dat die zou doen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan