Volledige versie bekijken : php.mailform heeft kuren?



sane
12 January 2009, 01:52
hallo,

ik probeer een mailform op mijn site te krijgen met volgende vereiste;
*controle voor versturen(alle velden invullen verplicht)
*mail ook naar afzender versturen

heb onderstaand php form gevonden maar er schort wat aan?
*verzender en ontvanger krijgen beiden 2x de verzonden mail?

ik vind niet waar dit aan ligt?ben php.newb



<?
ob_start();
$cNaam = 'mijn site';
$cEmail = 'mijnemail@telenet.be';
$cOndPre = 'Vraag -';
$cOndSuf = '- voor mij';
$cSpam = 10;
?>
<?
if(!empty($_POST['verstuur']))
{
$pError = '';
$pI = 0;
if(strlen($_POST['naam']) < 2)
{ $pError .= '- Je hebt je naam niet ingevuld!<br>'; $pI++; }
if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
{ $pError .= '- Je hebt geen geldig email-adres ingevuld!<br>'; $pI++; }
if(strlen($_POST['onderwerp']) < 3)
{ $pError .= '- Je hebt geen geldig onderwerp ingevuld!<br>'; $pI++; }
if(strlen($_POST['bericht']) < 10)
{ $pError .= '- Je hebt geen geldig bericht ingevuld!<br>'; $pI++; }

if(!empty($pError))
{
echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>';
echo $pError;
}
else
{

$pHeader = "MIME-Version: 1.0\r\n";
$pHeader .= "To: ".$cNaam." <".$cEmail.">\r\n";
$pHeader .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$website = (!empty($_POST['website'])) ? '<br><br>Website: '.$_POST['website'] : '';
$pBericht = 'Vraag voor mij:'.$_POST['bericht'].$website;
mail($cEmail,$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBericht,$pHeader);

if(isset($_POST['usermail']))
{
$pBerichtUser = 'U heeft volgend bericht verstuurd naar mij:'.$_POST['bericht'];
mail($_POST['email'],$cOndPre.' '.$_POST['onderwerp'].' '.$cOndSuf,$pBerichtUser,$pHeader);
}

echo 'De e-mail is succesvol verzonden!';
setcookie('mailform',1,time()+($cSpam*60));

$pShow = true;
}
}

$pNaam = (isset($_POST['naam'])) ? $_POST['naam'] : '';
$pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
$pWebsite = (isset($_POST['website'])) ? $_POST['website'] : '';
$pOnderwerp = (isset($_POST['onderwerp'])) ? $_POST['onderwerp'] : '';
$pBericht = (isset($_POST['bericht'])) ? $_POST['bericht'] : '';


if(isset($_COOKIE['mailform']))
{ $pShow = true; echo 'Je kunt maar eens in de '.$cSpam.' minuten een e-mail versturen!'; }

if(!isset($pShow))
{
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
<dl>
<dt><b>Naam:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
<dd><input type="text" name="naam" size="15" value="<?= $pNaam; ?>"></dd>
<dt><b>Email:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
<dd><input type="text" name="email" size="15" value="<?= $pEmail; ?>"></dd>
<dt><b>Website:</b></dt>

<dd><input type="text" name="website" size="15" value="<?= $pWebsite; ?>"></dd>
<dt><b>Onderwerp:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
<dd><input type="text" name="onderwerp" size="15" value="<?= $pOnderwerp; ?>"></dd>
<dt><b>Bericht:</b> <font color="#999999"><i>(verplicht)</i></font></dt>
<dd><textarea name="bericht" cols="40" rows="10"><?= $pBericht; ?></textarea></dd>
<dt><b>Ook naar mezelf mailen:</b></dt>
<dd><input type="checkbox" name="usermail"></dd>
<dt><b>Formulier opties:</b></dt>
<dd>
<input type="submit" value="Verstuur e-mail" name="verstuur"> <input type="reset" value="Wis velden"></dd>
</dl>
</form>
<?
}
?>


*en dan wou ik graag weten hoe ik dit kan intigreren in mijn html pag?
zodat het in te vullen veld enkel zichtbaar is in de "content" van mijn pag en ook de pagina met"uw mail is verzonden"
ik weet dat ik dan ergens moet linken naar een lege pagina die ik zelf opbouw volgens style van mijn site,maar heb geen flauw idee waar ik die"link" moet gaan plaatsen in het php.form?

voor de rest werkt het form wel zoals ik het graag zag.

alvast bedankt voor de hulp.
Gr.Sane

bubsy119
12 January 2009, 11:14
Net even getest en geen problemen bij mij.
-2x de verzonden mail = Ben je zeker dat je in het invoerveld niet nog eens je eigen email hebt ingevuld (Had ik ook eerst voor :)) of dat je de pagina misschien gerefreshed hebt ?
- Integratie = Je dit script gewoon in je pagina in het gedeelte content opnemen maar sla het dan op als een php pagina.

sane
13 January 2009, 23:20
2x de verzonden mail = Ben je zeker dat je in het invoerveld niet nog eens je eigen email hebt ingevuld .
hier ben ik zeker van,maar krijg nogsteeds als "ontvanger"2X en zelfs 3X dezelfde mail gestuurd??



of dat je de pagina misschien gerefreshed hebt ?
euh....waar vind ik dit?k zou dus niet weten of die gerefreshed word?:confused:



Integratie = Je dit script gewoon in je pagina in het gedeelte content opnemen maar sla het dan op als een php pagina
dit is me gedeeltelijk gelukt?...
mijn formulier staat nu mooi midden in content :good:
maar telkens als er een fout gebeurt(email of dergelijk vergeten)dan komt die melding linksboven op mijn pag te staan?
en wanneer er geen fout is,dus het bericht"mail wordt verzonden"
deze melding gaat volledig naar een nieuwe pagina?

dus,ik zit nog met een paar probleempjes:frown:

kan iemand nogeens verder helpen?
alvast bedankt SaNe

sane
15 January 2009, 20:55
ik heb nogeens een ander emailadres ingegeven...
de ontvanger(ik dus lol)krijgt de mail verzonden door het form 3x??
en de verzender/invuller van form krijgt de mail 1x gestuurd als er aangevinkt word.

ksnap er niets van?

dat probleem met het juist uitlijnen op de site....vind ik niet om op te lossen??

ben echtwel een phpnoob:damn:

kan er iemand helpen?

Butterflyice
16 January 2009, 16:28
Controleer de mail functie die in het formulier zit deze wordt namelijk 2x aangeroepen.

sane
16 January 2009, 17:25
Controleer de mail functie die in het formulier zit deze wordt namelijk 2x aangeroepen.

hoi buterflyice,

kan je me mms vertellen waar ik dat vind?:damn::shy:
heb dat form op inet gevonden,niet zelf gemaakt....ben dus niet zo op de hoogte van php en vind nomaar juist mijne weg erin terug

alvast bedankt SaNe