Archief - Heeft er iemand enig idee waarom dit simpel contact formulier niet werkt?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Dubbelpunt

Legacy Member
PHP:
<? 
if(!empty($_POST['Submit']))
{
if(strlen($_POST['name']) == 0)
	{ $error_msg ="- Voer astublieft uw naam in.<br>"; } 
if(!ereg("^[_a-zA-Z0-9-]+(\.[*@([a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $_POST['uwemail']))
	{ $error_msg .="- Voer astublieft een geldig email adres in.<br>"; } 
if(strlen($_POST['field']) ==0)
	{ $error_msg .="- Laat aub weten wat je aan ons wilt vragen.<br>"; } 
	
if(!empty($error_msg))
	{ 
    //Een van de velden werd niet goed ingevuld 
    echo "<b>Contact webmaster kon niet worden uitgevoerd door volgende redenen:</b><br><br>"; 
    echo $error_msg; 
    echo "<br>Klik alstublieft op <a href=javascript:history.back(1)>Ga terug</a> en vul alle velden in.<br><br>"; 
	}
else 
	{ 
    $recipient = "[email protected]"; //Het email adres van de persoon die vragen moet ontvangen. 
    $subject = $sub; //Subject van de mail. 
    $header = "From: " . $uwemail . "\n"; 
    $mail_body = "Contact script werd op " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.\n"; 
    $mail_body .= "De volgende persoon vulde het contact formulier in:\n\n"; 
    $mail_body .= "Naam: " . $_POST['name'] . "\n"; 
    $mail_body .= "E-mailadres: " . $_POST['uwemail'] . "\n\n"; 
    $mail_body .= "Bericht:\n"; 
    $mail_body .= $_POST['field']; 
    $mail_body .= "\n\n -- Einde van het contact bericht --"; 
    mail($recipient, $subject, $mail_body, $header); 
    echo "<b>Uw bericht is succesvol verzonden</b><br>Er zal zo spoedig mogelijk contact met u opgenomen worden.</b><br>"; 
    echo "<a href='javascript:history.back(1)'>Ga terug</a>"; 
	}
} 
else 
{ 
?> 

<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="POST" name="contact"> 
  <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
      <td><br> 
        <table width="80%" height="155" border="0" align="center" cellpadding="0" cellspacing="0"> 
          <tr> 
            <td width="150" height="2">Naam:</td> 
            <td height="2" colspan="2"><input type="text" name="name" size="20">*</td> 
          </tr> 
          <tr> 
            <td height="2">Email adres:</td> 
            <td height="2" colspan="2"><input type="text" name="uwemail" size="20">*</td> 
          </tr> 
          <tr> 
            <td>Subject:</td> 
            <td colspan="2"><input type="text" name="sub" size="20">*</td> 
          </tr> 
          <tr> 
            <td>Vraag:</td> 
            <td width="216" colspan= "2"><textarea name="field" cols="20" rows="5"></textarea>*</td> 
          </tr> 
          <tr> 
            <td>&nbsp;</td> 
            <td colspan="2"><input type="Submit" name="Submit" value="Verzenden"></td> 
          </tr> 
        </table> 
      </td> 
    </tr> 
  </table> 
</form> 

<?php 
} 
?>

Bram

Legacy Member
$sub en $uwemail bestaan niet op het eerste zicht. ($header = From... en daarboven)

Kan het zijn dat deze $_POST['sub'] en $_POST['uwemail'] moeten zijn?

Dubbelpunt

Legacy Member
ik zal het wijzigen in $_POST['uwemail'] vanwege <input type="text" name="uwemail" size="20">

*edit: werkt nog steeds niet


PHP:
<? 
if(!empty($_POST['Submit']))
{
if(strlen($_POST['name']) == 0)
	{ $error_msg ="- Voer astublieft uw naam in.<br>"; } 
if(!ereg("^[_a-zA-Z0-9-]+(\.[*@([a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $_POST['uwemail']))
	{ $error_msg .="- Voer astublieft een geldig email adres in.<br>"; } 
if(strlen($_POST['field']) ==0)
	{ $error_msg .="- Laat aub weten wat je aan ons wilt vragen.<br>"; } 
	
if(!empty($error_msg))
	{ 
    //Een van de velden werd niet goed ingevuld 
    echo "<b>Contact webmaster kon niet worden uitgevoerd door volgende redenen:</b><br><br>"; 
    echo $error_msg; 
    echo "<br>Klik alstublieft op <a href=javascript:history.back(1)>Ga terug</a> en vul alle velden in.<br><br>"; 
	}
else 
	{ 
    $recipient = "[email protected]"; //Het email adres van de persoon die vragen moet ontvangen. 
    $subject = "From: " . $_POST['sub'] . "\n"; //Subject van de mail. 
    $header = "From: " . $_POST['uwemail'] . "\n"; 
    $mail_body = "Contact script werd op " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.\n"; 
    $mail_body .= "De volgende persoon vulde het contact formulier in:\n\n"; 
    $mail_body .= "Naam: " . $_POST['name'] . "\n"; 
    $mail_body .= "E-mailadres: " . $_POST['uwemail'] . "\n\n"; 
    $mail_body .= "Bericht:\n"; 
    $mail_body .= $_POST['field']; 
    $mail_body .= "\n\n -- Einde van het contact bericht --"; 
    mail($recipient, $subject, $mail_body, $header); 
    echo "<b>Uw bericht is succesvol verzonden</b><br>Er zal zo spoedig mogelijk contact met u opgenomen worden.</b><br>"; 
    echo "<a href='javascript:history.back(1)'>Ga terug</a>"; 
	}
} 
else 
{ 
?> 

<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="POST" name="contact"> 
  <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
      <td><br> 
        <table width="80%" height="155" border="0" align="center" cellpadding="0" cellspacing="0"> 
          <tr> 
            <td width="150" height="2">Naam:</td> 
            <td height="2" colspan="2"><input type="text" name="name" size="20">*</td> 
          </tr> 
          <tr> 
            <td height="2">Email adres:</td> 
            <td height="2" colspan="2"><input type="text" name="uwemail" size="20">*</td> 
          </tr> 
          <tr> 
            <td>Subject:</td> 
            <td colspan="2"><input type="text" name="sub" size="20">*</td> 
          </tr> 
          <tr> 
            <td>Vraag:</td> 
            <td width="216" colspan= "2"><textarea name="field" cols="20" rows="5"></textarea>*</td> 
          </tr> 
          <tr> 
            <td>&nbsp;</td> 
            <td colspan="2"><input type="Submit" name="Submit" value="Verzenden"></td> 
          </tr> 
        </table> 
      </td> 
    </tr> 
  </table> 
</form> 

<?php 
} 
?>

Kemblin

Legacy Member
"Het werkt niet"

Misschien kan je iets specifieker zeggen of je het form al te zien krijgt, is het de mail functie die niet werkt? heb je zelf al dingen getest? ...

*edit alvast één tip

$_SERVER['PHP_SELF'] and $_SERVER['SCRIPT_NAME'] may not always be set correctly.

Dubbelpunt

Legacy Member
ik krijg idd geen enkele foutmelding te zien, alles lijkt te werken...
alleen komt de mail niet toe

Dubbelpunt

Legacy Member
neen, ik heb dit gewijzigd omdat ik hier mijn email adres niet wil plaatsen

Kemblin

Legacy Member
zet dit eens naa uw <?php openingstag

PHP:
ini_set("display_errors", "1");
error_reporting(E_ALL);

Error messages?

Kemblin

Legacy Member
Net het scriptje eens hier gerunt en het werkt perfect, misschien iets aan de instellingen van uw server of uw mail account.

Curahee Q

Legacy Member
ipv if(isset($_POST['Submit'])) kan je beter kijken

if($_SERVER['REQUEST_METHOD'] == 'POST')

Dubbelpunt

Legacy Member
wat moet ik dan vragen aan de sys admins?
Yves Van der Coilden. Verkoop van profielplaten voor dak en wand. werkt dus niet

zoals je kan zien krijg ik het volgende niet te zien

PHP:
echo "<b>Uw bericht is succesvol verzonden</b><br>Er zal zo spoedig mogelijk contact met u opgenomen worden.</b><br>";  
echo "<a href='javascript:history.back(1)'>Ga terug</a>";


zo werken de checks op de input velden ook niet

Kemblin

Legacy Member
Webber zei:
wat moet ik dan vragen aan de sys admins?
Yves Van der Coilden. Verkoop van profielplaten voor dak en wand. werkt dus niet

zoals je kan zien krijg ik het volgende niet te zien

PHP:
echo "<b>Uw bericht is succesvol verzonden</b><br>Er zal zo spoedig mogelijk contact met u opgenomen worden.</b><br>";  
echo "<a href='javascript:history.back(1)'>Ga terug</a>";


zo werken de checks op de input velden ook niet

probeer al eerst eens naar een andere mail account te sturen, op gmail werkt het in ieder geval. Indien dat niet werkt zult ge idd uw host moeten contacteren.

Dubbelpunt

Legacy Member
het probleem lag aan de naamgeving van de file: contact.php
dat lukt uiteraard niet met <form action="<? echo $_SERVER['PHP_SELF']; ?>"

ik heb het veranderd naar <form action="contact.php">

adrianhates

Legacy Member
uw action moogt ge leeg laten ze, standaard gebruikt dat de pagina in kwestie
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan