Hulp gevraagd, m'n php Contactformulier geeft error

Status
Niet open voor verdere reacties.
Hoi Erik,

hier de code van het formulier:
Code:
<form action="http://www.pcqualitybonte.nl/mail/mailer.php" method="post" name="form1" target="_blank" id="form1" onSubmit="MM_validateForm('voornaam','','R','achternaam','','R','straat','','R','postcode','','RisNum','postcode_nr','','R','plaats','','R','telefoon','','RisNum','email','','RisEmail');return document.MM_returnValue">
                    <div align="left"> 
                      <p>&nbsp;</p>
                      <table width="383" border="0" cellspacing="0" cellpadding="0">
                        <tr class="plaintekst"> 
                          <td height="24" colspan="3">&nbsp;U wilt graag:</td>
                        </tr>
                        <tr align="left" valign="top" class="plaintekst"> 
                          <td colspan="3"><table width="383" border="0" cellspacing="0" cellpadding="0">
                              <tr class="plaintekst"> 
                                <td width="37" height="16"><input name="offerte" type="checkbox" id="offerte" value="OFFERTE" /></td>
                                <td width="346">Een vrijblijvende offerte aanvragen.</td>
                              </tr>
                              <tr class="plaintekst"> 
                                <td height="15"><input name="informatie" type="checkbox" id="informatie" value="INFORMATIE" /></td>
                                <td>Meer informatie over tarieven etc.</td>
                              </tr>
                              <tr class="plaintekst"> 
                                <td height="16"><input name="afspraak" type="checkbox" id="afspraak" value="AFSPRAAK" /></td>
                                <td>Afspraak maken.</td>
                              </tr>
                              <tr class="plaintekst"> 
                                <td height="16"><input name="contact_opnemen" type="checkbox" id="contact_opnemen" value="CONTACT" /></td>
                                <td>Dat er contact met mij wordt opgenomen.</td>
                              </tr>
                            </table></td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td height="15" colspan="3" align="left" valign="middle">&nbsp;</td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td height="18">Voornaam</td>
                          <td height="18" colspan="2"><input name="voornaam" type="text" id="voornaam" size="25" /></td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td width="81" height="18">Achternaam</td>
                          <td height="18" colspan="2"> <input name="achternaam" type="text" id="achternaam" size="25" /> 
                          </td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td>Straat</td>
                          <td colspan="2"><input name="straat" type="text" id="straat" size="25" /></td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td>Postcode</td>
                          <td colspan="2"><input name="postcode" type="text" id="postcode" size="4" maxlength="4" /> 
                            <input name="postcode_nr" type="text" id="postcode_nr" size="2" maxlength="2" /> 
                          </td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td>Plaats</td>
                          <td colspan="2"><input name="plaats" type="text" id="plaats" size="25" /></td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td>Telefoonnr.</td>
                          <td colspan="2"><input name="telefoon" type="text" id="telefoon" size="25" /></td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td>Email</td>
                          <td colspan="2"><input name="email" type="text" id="email" size="25" /></td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td valign="top">opmerkingen:</td>
                          <td colspan="2"><textarea name="opmerkingen" cols="25" id="opmerkingen"></textarea></td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td>&nbsp;</td>
                          <td width="52" rowspan="2">&nbsp;</td>
                          <td width="250" rowspan="2"><input type="submit" name="Submit" value="Versturen" /> 
                            <input type="reset" name="Submit2" value="wissen" /> 
                          </td>
                        </tr>
                        <tr class="plaintekst"> 
                          <td>&nbsp;</td>
                        </tr>
                      </table>
                    </div>
                  </form>

en hier de code van het bestandje mailer.php voor de verwerking:

Code:
<?
/* Form Mailer Program */
/* Edit HTML at bottom of script for HTML output */
/* ©2000 YOA/LSYF/YoAi */

$errorpage = "error.htm";
$mailto = "info@pcqualitybonte.nl";
$required = array("subject","email","telefoon"); // what do you wish to require?

// edit below this line at your own risk

$n = 0;
do {
  $r = "\$_POST['" . $required[$n] . "']";
  if(!isset($_POST['offerte']) && !isset($_POST['afspraak']) && !isset($_POST['informatie']) && !isset($_POST['contact_opnemen'])){  
   header('Location: ' . $errorpage); // volgens mij kun je de 'print' bij een header beter weglaten. 
   exit; 

}  

  $n++;
} while ($n != count($required));

$array = array('offerte', 'informatie', 'afspraak', 'contact_opnemen');
$onderwerpen = array();

foreach($array as $id => $sub){
 if(isset($_POST[$sub])){
  $onderwerpen[] = ucwords($sub);
 }
}  


$onderwerpen = implode(', ', $onderwerpen);

$message = "Het volgende bericht is verstuurd vanaf: http://www.pcqualitybonte.nl \n\n";

$message .= "Onderwerp(en): ";
$message .= $onderwerpen;
$message .= "\n";
$message .= "Voornaam: ";
$message .= $_POST['voornaam'];
$message .= "\n";
$message .= "Achternaam: ";
$message .= $_POST['Achternaam'];
$message .= "\n";
$message .= "Straat: ";
$message .= $_POST['straat'];
$message .= "\n";
$message .= "Postcode: ";
$message .= $_POST['postcode'] . $_POST['postcode_nr'];
$message .= "\n";
$message .= "Plaats: ";
$message .= $_POST['plaats'];
$message .= "\n";
$message .= "Telefoon: ";
$message .= $_POST['telefoon'];
$message .= "\n";
$message .= "Email: ";
$message .= $_POST['email'];
$message .= "\n";
$message .= "Opmerkingen: ";
$message .= $_POST['opmerkingen'];
$message .= "\n";

mail($mailto, 'Mail vanaf http://www.pcqualitybonte.nl', $message, $mailto);
?>
<html><head><title>Mail Sent</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h2 align="center">&nbsp;</h2>
<h2 align="center"><font color="#C10061">Hartelijk dank !</font> </h2>
<p align="center">&nbsp;</p>
<h2 align="center"><font color="#000066">Uw contact formulier is met succes verzonden.</font></h2>
</body></html>

In iedergaval Hartelijk dank zover ToP:thumb:
!
Groetjes,
Antony
 
PHP:
$required = array("subject","email","telefoon");

Daar moet subject nog weg:

PHP:
$required = array("email","telefoon");

Maar de fout zie ik eigenlijk niet. Zou je eens bij

PHP:
$mailto = "info@pcqualitybonte.nl";
mijn emailadres willen invullen? booyerik@hotmail.com

Dan kan ik eens zien wat er precies voor mail verstuurd wordt. Als je dan 1 keer het formulier wilt invullen en verzenden.
 
Hoi Erik,

ik heb het nog eens een paar keer geprobeerd en ik krijg nu alleen netjes een email van WWW deamon Apache en geen 2e lege email meer, dus als dit zo blijft is het probleem denk ik opgelost maar als je wilt dat ik even jouwn email invul en een testje verstuur dan is dat ook goed hoor, anders kijk ik het even aan zo of het nog een keer voorkomt en dan laat ik het je wel even weten als je dat goed vind natuurlijk. :)

Hartelijk dank voor jouwn tijd en moeite, echt tof want ik ben met zoveel dingen bezig de laatste tijd en de letters en cijfers springen voor me ogen en ja ik heb het formulier voor morgen hart nodig dus vandaar :) en nogmaals Hartelijk dank ! en Tha Devil ook bedankt voor je Tip!

Met vriendelijke groetjes,
Antony
 
Als het niet teveel moeite is zou ik toch graag willen dat je mijn emailadres even invult. Dan kan ik misschien nog zien waardoor de email een andere afzender heeft dan opgegeven is.

En, geen dank. Ik verblijf hier ook maar voor m'n lol op 't forum. :thumb:
 
Afzender zul je in de 4e parameter van de mail()-functie moeten specificeren.

De "header" parameter zal zo wel goed werken: "From: Naam <email@adres.domein>"
 
Maar als je alleen een email-adres opgeeft als vierde parameter, dan neemt PHP die normaal gesproken toch automatisch als afzender aan?

Maar het zou zo inderdaad ook kunnen:

PHP:
mail($mailto, 'Mail vanaf http://www.pcqualitybonte.nl', $message, "From: PC Quality Bonte <info@pcqualitybonte.nl>");

Aan de mail zelf was voor mij verder niets te zien.

Ik hieronder voor iemand die er misschien meer verstand van heeft de headers nog even geplaatst, maar waarschijnlijk is het al opgelost met het aanpassen van de vierde mail() parameter.

Headers:
PHP:
X-Message-Delivery: Vj0zLjQuMDt1cz0wO2w9MDthPTA=

X-Message-Status: n:0

X-SID-PRA: WWW daemon apache <wwwrun@mika.eatserver.nl>

X-Message-Info: JGTYoYF78jGn6ynui/U5kmfTroZs+yVNEZQyLu1RH9pson7N8gt8RQok3bSDHC0zPEB0OWvX6lGVX5J8mcGNw39gq48ABR/k

Received: from mika.eatserver.nl ([195.20.9.75]) by bay0-mc7-f15.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2668);

	 Sun, 14 Sep 2008 15:44:56 -0700

Received: from mika.eatserver.nl (localhost [127.0.0.1])

	by mika.eatserver.nl (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id m8EMisFY026745

	for <booyerik@hotmail.com>; Mon, 15 Sep 2008 00:44:55 +0200

Received: (from wwwrun@localhost)

	by mika.eatserver.nl (8.13.6/8.13.6/Submit) id m8EMisTf026742;

	Mon, 15 Sep 2008 00:44:54 +0200

Date: Mon, 15 Sep 2008 00:44:54 +0200

From: WWW daemon apache <wwwrun@mika.eatserver.nl>

Message-Id: <200809142244.m8EMisTf026742@mika.eatserver.nl>

To: booyerik@hotmail.com

Subject: Mail vanaf http://www.pcqualitybonte.nl

X-Sender-Domain: pcqualitybonte.nl

X-Virus-Scanned: by amavisd-new

Return-Path: wwwrun@mika.eatserver.nl

X-OriginalArrivalTime: 14 Sep 2008 22:44:56.0420 (UTC) FILETIME=[82B27A40:01C916BB]
 
Laatst bewerkt:
Hoi Erik,

Volgensmij werkt het formulier nu aardig goed, ik heb tot nu toe geen last meer gehad van een dubbele email.
Alleen werkt het formulier nu ook als mensen geen gegevens en/of verplichte velden invullen en dan alleen 1 van checkboxen aanvinken:( dit is niet de bedoeling.

zou je deze aanpassing nog kunnen maken dat de hierbovengenoemde combinatie niet meer opgaat en dat als er 1,2 of 3 van de 3 van de checkboxen aangevinkt word(en) en er verder geen van de verplichte velden ingevuld zijn, dat het formulier dan ook doorlinkt naar error,php pagina ?

De verplichte velden mogen dus onder geen beding leeg zijn om het formulier te kunnen verzenden, ook niet als er alleen maar (een) checkbox(en) aan gevinkt word(en) zegmaar.


Met vriendelijke groetjes,
Antony.

P.s. Hoe bedoel je dat precies als ik "alleen" een email-adres opgeeft als "vierde parameter", ik heb maar 1x mijn email vermeld in de code, of welke regels zou ik evt. weg kunnen halen dan volgens jouw?
 
Laatst bewerkt:
Berichten verwijderd
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan