Mailform

Status
Niet open voor verdere reacties.

Broertjuhhh

Gebruiker
Lid geworden
6 feb 2007
Berichten
271
Hallo beste mensen, ik heb een mailform gedownload wat ter plaatse prima werkt en best aardig er uit ziet maar......... ik krijg hem niet aan de praat, wat doe ik fout of waar zit de fout.

Script bijgevoegd, alvast bedank Broertjuhhh

<?php
// Voorbeeld mailformulier
// De waarden van de volgende variabelen moeten worden aangepast in dit bestand:
// De titel van het e-mail bericht dat u ontvang ($titel)
// Het e-mailadres waarop u de e-mail ontvangen wilt ($emailadres)
// De reactie die gegeven moet worden als het formulier succesvol verzonden is ($reactie)
// De variabelen die (minimaal) moeten worden aangepast staan in het deel gemarkeerd met **********

function print_form() {
global $error, $print_again, $naam, $e_mail, $onderwerp, $tekst;
?>

<html>

<head>
<title>Radus - Mailform</title>
<style>
body { font-size:8pt;
font-family: Verdana;}
textarea,input,option { font-family: Verdana;
border:1px solid;
border-color: #616174;
font-size: 12px;
font-family: verdana;
background-color: #F4F4F6;}
td { font-size:8pt;
font-family: Verdana;}
.error { font-size:8pt;
font-family: Verdana;
color: red}
</style>
</head>

<body>

<!-- dit deel toont het html mailformulier -->

<form action="" method="POST">

<table border=0 width=500>
<tr>
<td colspan=2><b>Mailformulier:<b></td>
</tr>
<tr>
<td colspan=2 height=40>
<?php
if($print_again) {
?> Verbeter de velden in het<span class=error> rood!</span><br>
<?
} else {
?> Velden met een * zijn verplicht! <br>
<?
}
?>
</td>
</tr>
<tr>
<td><? error_flag($error, "naam"); ?>Uw naam*</span></td>
<td><input name="naam" type="text" size="40" value="<?=$naam?>"></td>
</tr>
<tr>
<td><? error_flag($error, "e_mail"); ?>Uw e-mailadres*</span></td>
<td><input name="e_mail" type="text" size="40" value="<?=$e_mail?>"></td>
</tr>
<tr>
<td><? error_flag($error, "onderwerp"); ?>Onderwerp*</td>
<td><input name="onderwerp" type="text" size="40" value="<?=$onderwerp?>">
</td>
<tr>
<td colspan=2><? error_flag($error, "tekst"); ?>Uw vraag*</span><br>
<textarea name="tekst" cols="60" rows="10"><?=$tekst?></textarea></td>

</tr>
<tr>
<td colspan=2><input type="submit" name="submit" value="Verstuur"></td>
</tr>
</form>
</table>

<!-- einde html mailformulier -->

<?php
} // einde functie print_form

function check_form() {
// controleer of de ingevulde waarden juist zijn.
global $error, $print_again, $naam, $e_mail, $onderwerp, $tekst;
$error['naam'] = false;
$error['e_mail'] = false;
$error['tekst'] = false;
$print_again = false;

if($naam == "") {
$error['naam'] = true;
$print_again = true;
}
if(!eregi("^[a-z0-9]+[a-z0-9_-]*(\.[a-z0-9_-]+)*@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.([a-z]+){2,}$", $e_mail)) {
$error['e_mail'] = true;
$print_again = true;
}
if($onderwerp == "") {
$error['onderwerp'] = true;
$print_again = true;
}
if($tekst == "") {
$error['tekst'] = true;
$print_again = true;
}
if($print_again) {
print_form();
} else {

//***************************************************************************************
// Vul de juste waarde in voor onderstaande variabelen:

// De titel van het e-mail bericht dat u ontvang
$titel .= 'Uw titel: ';

// Het e-mailadres waarop u de e-mail ontvangen wilt
$emailadres .= 'gebruiker@uwdomein.nl';

// De reactie die gegeven moet worden als het formulier succesvol verzonden is
$reactie .= 'Bedankt voor uw reactie.';


//***************************************************************************************

echo "<INPUT TYPE=\"hidden\" NAME = \"naam\" VALUE=\"$naam\"></TD>";
echo "<INPUT TYPE=\"hidden\" NAME = \"e_mail\" VALUE=\"$e_mail\"></TD>";
echo "<INPUT TYPE=\"hidden\" NAME = \"onderwerp\" VALUE=\"$onderwerp\"></TD>";
echo "<INPUT TYPE=\"hidden\" NAME = \"tekst\" VALUE=\"$tekst\"></TD>";


// de inhoud van de e-mail wordt samengesteld

$headers .= "From: <$e_mail>\n";
$headers .= "X-Sender: <$e_mail>\n";
$headers .= "X-Mailer: PHP\n"; //mailer
$headers .= "X-Priority: 3\n"; //1 Spoed bericht, 3 Normaal bericht
$headers .= "Return-Path: <$e_mail>\n"; //REPLY email
$mail .= "Van: $naam \n \n$tekst";

// dit is de titel van de e-mail. $onderwerp toont het gekozen onderwerp

$titel .= "$onderwerp";

// hier wordt de e-mail daadwerkelijk verzonden

mail("$emailadres","$titel","$mail","$headers");

// Toon de reactie na verzenden
?>
<html>
<head>
<title>Radus - Mailform</title>
<style>
body { font-size:8pt;
font-family: Verdana;}
a:link { font-family: Verdana; font-size:8pt; color:black}
a:visited { font-family: Verdana; font-size:8pt; color:black}
a:active { font-family: Verdana; font-size:8pt; color:black}
a:hover { font-family: Verdana; font-size:8pt; color:#BF3A3A;}
</style>
</head>

<body>
<b>Verzenden geslaagd</b><br>
<?
echo '<br>'. $reactie;
?>
<br><br>
<a href=mailform.php>Terug</a>
</body>
</html>
<?
} // einde else

} // einde functie check_form

function error_flag($error, $field) {
if($error[$field]) {
print("<span class=error>");
} else {
print("<span>");
}
} // einde functie error_flag

// Roep de functies aan
if(isset($submit)) {
check_form();
} else {
print_form();
}
?>

</body>
</html>
 
Wat voor error krijg je?
 
Wat heb je zelf al gedaan? Heb je hier op het forum al gezocht, er zijn genoeg andere topics over e-mail formulieren wellicht zit er een oplossing tussen...
 
Ik ben de hele middag al bezig geweest om hem aan de praat te krijgen, het is een mooi script, als je iets vergeet in te vullen komt het scherm terug met de vergeten dingen in het rood, het is strak, kort en bondig.

Waar zit de fout ?
 
Tot hoever kom je? Je zegt dat je gegevens in hebt gevuld en wat gebeurt er dan? En je zegt dat als je niets invult er foutmeldingen komen?

Dan lijkt het mij dat er iets niet goed zit in de functie check_form();

Krijg je ook iets van een lege pagina o.i.d. te zien na het versturen? Zo ja wat is de inhoud daarvan (m.a.w. wat staat er in de bron)
 
Kijk even op mijn site, klik op E-mail me en je ziet precies wat er ( niet ) gebeurt.

Wat er moet gebeuren is, als je niks invult en toch op verstuur klikt is dat de veld ( vragen ) dan in het rood verscheinen en als je wel alles invult dat hij dan de e-mail verzend en 'Verzenden geslaagd' laat zien.

Hier kan je zien hoe het wel moet, http://www.homehaircare.nl/mailform.php
 
Laatst bewerkt:
Zo te zien is het script sterk verouderd en werkt het niet meer met oudere versies PHP. Je kunt denk ik beter een ander script zoeken.

P.S. Je hebt niks verkeerd gedaan, maar je moet soms even geduld hebben. ;)
 
Zo te zien is het script sterk verouderd en werkt het niet meer met oudere versies PHP. Je kunt denk ik beter een ander script zoeken.

P.S. Je hebt niks verkeerd gedaan, maar je moet soms even geduld hebben. ;)


hoelang moet je wachten? ik gebruik ook zo'n scrit maar ik krijg naa eeen week nog niks binnen?!

mvg,

timmy92
 
Ik heb je script hersteld en aangepast en het staat bij je oorspronkelijk vraag hier over.

Succes !
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan