contactformulier PHP

Status
Niet open voor verdere reacties.

leutjebreedbek

Gebruiker
Lid geworden
18 mei 2009
Berichten
650
Hallo allemaal.

ik heb een contactformulier in PHP gemaakt alleen hij heeft nog wat kinderziektes.
zou iemand er naar kunnen kijken en de foutjes verbeteren?

Dit heb ik, en dan precies ditzelfde in een mailform.php op mijn site staan:

PHP:
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
  {
  //send email
  $email = $_REQUEST['email'] ;
  $onderwerp = $_REQUEST['subject'] ;
  $bericht = $_REQUEST['message'] ;
  mail("mijnadres@hotmail.com", $onderwerp,
  $bericht, "From:" . $email);
  header("Refresh: 0;url=index.html");
  }
else
//if "email" is not filled out, display the form
  {
  echo "<form method='post' action='mailform.php'>
  Email: <input name='email' type='text' /><br />
  onderwerp: <input name='onderwerp' type='text' /><br />
  bericht:<br />
  <textarea name='message' rows='15' cols='40'>
  </textarea><br />
  <input type='submit' VALUE=Verstuur ;>
  </form>

graag wou ik hier ook nog een optie bij willen dat mensen het onderwerp kunnen kiezen, zou dit kunnen?

alvast bedankt
 
Hoe bedoel je het onderwerp kiezen?
uit een lijst/radio buttons?
 
contact script

simpel als dit kan echt niet

noem deze pagina contact.html
PHP:
<h2 align="center"><font size="6">Contact</font></h2>
<p align="center"><body><!------Created by www.moffia.nl------->
<form method="post" action="process.php">
<table width="455" bgcolor="#EEEEEE" border="0">
<tr><td valign="top">Naam :</td>
<td valign="top"><input type="text" name="t1"></td></tr>
<tr><td valign="top">Email :</td>
<td valign="top"><input type="email" name="t2"></td></tr>
<tr><td valign="top">Onderwerp :</td>
<td valign="top"><input type="text" name="t3"></td></tr>
<tr><td valign="top">opmerking</td>
<td valign="top"><textarea name="t4" cols="20" rows="10">plaats uwe bericht</textarea></td></tr>
<tr><td>gemaakt door  <a href="www.moffia.nl/">John pagina</a></td>
<td><input type="submit" value="Verzenden"></td></tr></table>
	<p align="center">&copy; copyright made bij john <BR>


noem deze pagina process.php
PHP:
<?php 
//This script is created by http://www.moffia.nl 
//You can remain use this free service as long as you retain the credit link 

$mailTo = 'vul hier je email in '; 
$mailSubject = 'vul hier je website aderss in'; 

$mailMessage = 
'Naam:: '. $_POST['t1'] ."\r\n". 
'E-mail :: '. $_POST['t2'] ."\r\n". 
'Onderwerp :: '. $_POST['t3'] ."\r\n". 
'Opmerking :: '. $_POST['t4']; 

$mailHeaders = 'From '. $_POST['t1'] .' <'. $_POST['t2'] .'>'. "/r/n"; 
$mailHeaders .= 'X-Mailer: PHP/' . phpversion(); 

if(mail($mailTo, $mailSubject, $mailMessage, $mailHeaders)) { 
  echo '<html><head>'; 
  echo '<meta http-equiv="refresh" content="0;URL=http://www.moffia.nl/">'; 
  echo '</head><body>Email send....'; 
  echo '</body></html>'; 
} 
?>

kind kan de was doen
 
ik bedoel het onderwerp kiezen als een dropdown menu. dus ik zet er bijv. 4 onderwerpen in en iemand kan daar dan uit kiezen,

ciske, ik zal even kijken maar ik weet ook dat wat ik heb moet wel werken want ik heb het werkende gehad maar zal dit er ook eens in zetten
 
ipv:

Code:
onderwerp: <input name='onderwerp' type='text' /><br />
moet je dan dit:

Code:
<select name="Onderwerp">
<option value="Onderwerp1">Onderwerp1</option>
<option value="Onderwerp2">Onderwerp2</option>
<option value="Onderwerp3">Onderwerp3</option>
</select>
 
dankuwel!

alleen miet ik niet wat instellen met value= onderwerp1/2/3 dat deze dan ook als onderwerp in mijn mail komt?
en nu heb ik dit zo. maar het werkt verder nog niet wanneer ik het upload krijg ik een .php fout.. weet jij misschien waar het zit?
Ik gok ergens dat ik de verzendbutton een value=verstuur heb gegeven omdat hij dat ook anders aangeeft qua kleuren.
 
wat betekend miet?
onderwerp1/2/3 is de naam van het onderwerp, dus als je onderwerp1 kiest is het onderwerp: onderwerp 1.

Upload je je scripts meteen of test je ze wel?
achter het script dat je hier neer hebt gezet missen de tekens: "; }?>

bij mij werkt hij wel:

PHP:
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
  {
  //send email
  $email = $_REQUEST['email'] ;
  $onderwerp = $_REQUEST['subject'] ;
  $bericht = $_REQUEST['message'] ;
  mail("mijnadres@hotmail.com", $onderwerp,
  $bericht, "From:" . $email);
  header("Refresh: 0;url=index.html");
  }
else
//if "email" is not filled out, display the form
  {
  echo "<form method='post' action='mailform.php'>
  Email: <input name='email' type='text' /><br />
  onderwerp: <input name='onderwerp' type='text' /><br />
  bericht:<br />
  <textarea name='message' rows='15' cols='40'>
  </textarea><br />
  <input type='submit' VALUE=Verstuur ;>
  </form>";
  }
  ?>
 
Laatst bewerkt:
jazeker test ik het, en wat ik steeds krijg is;


Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/a7773921/public_html/contact.html on line 155

terwijl ik in zowel de pagina als mailform.php heb staan wat ik en jij als laatste stuurde
 
Dan heb je op regel 155 een typefout. Denk dat je een , of een ; verkeerd hebt staan ergens boven regel 155 of in regel 155 zelf. Check het eens na ;-)
 
heb gekeken en waarschijnlijk was het dat ik op sommige plekken '' had ipv ' ,
alles werkt nu en allen bedankt voor jullie tijd/hulp!
 
Het is nog niet helemaal gelukt.. het versturen wil wel maar het geselecteerde onderwerp komt nu niet te staan bij onderwerp in de mail.. daar komt nu (Geen Onderwerp) te staan.. weet iemand hoe ik dit oplos??
dit heb ik nu:

PHP:
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
  {
  //send email
  $email = $_REQUEST['email'] ;
  $onderwerp = $_REQUEST['subject'] ;
  $bericht = $_REQUEST['message'] ;
  mail("mijnmail@hotmail.com", $onderwerp,
  $bericht, "From:" . $email);
  header("Refresh: 0;url=contact-send.html");
  }
else
//if "email" is not filled out, display the form
  {
  echo "<form method='post' action='mailform.php'>
  Email: <input name='email' type='text' /><br />
  onderwerp:  <select name='Onderwerp'>
<option value='Onderwerp1'>Vragen over assortiment</option>
<option value='Onderwerp2'>Vragen over speciale bestellingen/seizoens producten</option>
<option value='Onderwerp3'>Vragen over de website of inhoud hiervan</option>
<option value='Onderwerp2'>Opmerkingen/Klachten</option>
<option value='Onderwerp2'>Overige vragen</option>

</select> <br />
  bericht:<br />
  <textarea name='message' rows='15' cols='40'>
  </textarea><br />
  <input type='submit' VALUE=Verstuur ;>
  </form>";
  }
  ?>
 
in het formulier staat "Onderwerp":
Code:
 onderwerp:  <select name='Onderwerp'>
maar in het php script staat "subject":
Code:
 $onderwerp = $_REQUEST['subject'] ;

bovendien is het onderwerp wat je toegestuurd krijgt de test die in de value staat,
die zal ik dus gelijk maken aan de teksten 'Vragen over ons assortiment' etc.
 
Jammergenoeg zie ik nog vaak verkeerde formulier afhandelingen voorbij komen, zo ook hier :(

Het controleren op een verstuurd formulier doe je niet door te controleren of een formulier-veld bestaat.
Dat doe je altijd door de methode te controleren
PHP:
if("POST" == $_SERVER['REQUEST_METHOD'])
{
    // Er is een formulier verzonden
}
else
{
    // Er is nog geen formulier verzonden
}
Daarnaast wil ik je op het hart drukken nooit $_REQUEST-variabelen te gebruiken.
Deze zijn veel te algemeen.

In principe kan ik nu een e-mail zenden door deze URL aan te roepen:
Code:
http://jouwwebsite.nl/mailform.php?email=pietje@website.nl&onderwerp=Je&20formulier%20is%20kapot&message=blaat

Hoef ik geen formulier voor in te vullen.

Gebruik je een formulier? Alle variabelen uit het formulier aanroepen via $_POST['veldnaam']
 
Je moet de if wel even omdraaien:
PHP:
if($_SERVER['REQUEST_METHOD'] == "POST")

Anders krijg je een parse error.
 
Waarom zou ik daar een parse-error op krijgen? De vergelijking blijft hetzelfde
 
Je hebt gelijk, het werkt wel. Ik had het gisteren uitgeprobeerd en toen kreeg ik een parse error, maar dat had een andere reden zie ik nu.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan