mailformulier werkt niet

Status
Niet open voor verdere reacties.

rob1970

Gebruiker
Lid geworden
14 jan 2012
Berichten
301
Ik heb al meerdere websites gemaakt met telkens hetzelfde mailformulier.

Alleen deze keer lukt het me niet om hem werkend te krijgen.
Het enige wat ik telkens aanpaste was het mailadres in het bestand "mailformulier.php"
Dit is meer dan 10 x prima gegaan, tot deze keer dan.
Wellicht zie ik iets over het hoofd, ben bijna 3 uur bezig nu om de fout te vinden, maar krijg het niet voor elkaar.

Nu komt er de volgende melding:

Deprecated: Function eregi() is deprecated in /home/p51868/domains/7made4u.nl/public_html/mailformulier.php on line 20

Deprecated: Function eregi() is deprecated in /home/p51868/domains/7made4u.nl/public_html/mailformulier.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at /home/p51868/domains/7made4u.nl/public_html/mailformulier.php:20) in /home/p51868/domains/7made4u.nl/public_html/mailformulier.php on line 35


Het voorbeeld staat bij contact op de domeinnaam: www.7made4uxx.nl (je moet de 2 xx-en weghalen)!!! Anders verschijnt deze domeinnaam bij de zoekresultaten.


Alvast bedankt voor de moeite.


Groeten Rob
 
Ik zoek mijn script wel ff op


daar hoef je bijna niks te doen allen bij,


formulierverzenden.php bovenaan je mail
 
Laatst bewerkt:
Ok wat je moet doen /
Dit html form is kant en klaar, hoef je nog niks te doen
<form method="post" action="formulierverzenden.php">
<ul>
<li>Je voornaam *</li>
<li><input type="text" name="voornaam" /></li>
<li>Je achternaam* </li>
<li><input type="text" name="achternaam" /></li>
<li>Je e-mail adres *</li>
<li><input type="text" name="email" /></li>
<li>Je bericht*</li>
<li><textarea cols="50" rows="12" name="bericht"></textarea></li>
<li><input type="reset" value="Reset velden" /> <input type="submit" name="versturen" value="Verstuur bericht" /></li>
</ul>
<p>Alle velden gemarkeerd met een * zijn verplicht.</p>
</form>


Nu komt het folgende,

Bij dit script moet je je email invullen , Waar nu contact@blablo.nlstaat vul jij die van jouw in,

Upload dit script in de zelfde dirictory als waar het mailform staat en noem dit: formulierverzenden.php,

<?php
$naar = 'contact@blablo.nl'; // Waar moet het naartoe?
$onderwerp = 'feedback(contactform)'; // Het onderwerp van het bericht

// Header instellen, zodat nl2br() werkt
$headers = "MIME-version: 1.0\r\n";
$headers .= "content-type: text/html;charset=utf-8\r\n";

if(isset($_POST['versturen'])) // Als het formulier verzonden is door op de verzend knop te klikken
{
$voornaam = trim($_POST['voornaam']); // Alle overbodige spaties uit het voornaam veld verwijderen
$achternaam = trim($_POST['achternaam']); // Alle overbodige spaties uit het achternaam veld verwijderen
$email = trim($_POST['email']); // Alle overbodige spaties uit het email veld verwijderen
$bericht = trim($_POST['bericht']); // Alle overbodige spaties uit het bericht veld verwijderen
$fout = false; // Om te kijken straks of er wat fout is

if(empty($voornaam)) // Als het voornaam veld niet is ingevuld
{
print '<p>Helaas, het voornaam veld is verplicht maar is nu niet ingevuld!</p>';
$fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
}
if(empty($achternaam)) // Als het achternaam veld niet is ingevuld
{
print '<p>Helaas, het achternaam veld is verplicht maar is nu niet ingevuld!</p>';
$fout = true;
}
if(empty($email)) // Als het email veld niet is ingevuld
{
print '<p>Helaas, het email veld is verplicht maar is nu niet ingevuld!</p>';
$fout = true;
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
{
print '<p>Helaas, het email adres is niet correct!</p>';
$fout = true;
}
if(empty($bericht)) // Als het bericht veld niet is ingevuld
{
print '<p>Helaas, het bericht veld is verplicht maar is nu niet ingvuld!</p>';
$fout = true;
}

if($fout == false) // Als er niks fout is (alles is dus netjes ingevuld)
{
$headers .= 'From: ' . $voornaam . ' ' . $achternaam . '<' . $email . '>'; // Een afzender instellen zodat je kan reageren.

if(mail($naar, $onderwerp, nl2br($bericht), $headers))
{
print '<p>Het bericht is verzonden, Je word doorgelinkt</p>';
}
else
{
print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
}
}
}




}
nu ben je klaar

Problemen kan je gwn zeggen aan mij
 
Laatst bewerkt:
Krijg toch weer een foutmelding:

Parse error: syntax error, unexpected '}' in /home/p51868/domains/7made4u.nl/public_html/formulierverzenden.php on line 61
 
Het formulier werkt.

Alvast bedankt.

Ik heb nog wel 3 vraagjes:

1.
Als ik nu op versturen klik, komt er een compleet witte pagina met de tekst: "Het bericht is verzonden, Je word doorgelinkt"
Vanuit hier kan men ook niet terug naar de website.
Is het ook mogelijk om op een html pagina uit te komen in de stijl van de website met bijvoorbeeld als tekst: "Uw mail is goed ontvangen"

2.
Kan ik ook 1 of 2 velden toevoegen die niet verplicht zijn om in te vullen?

3.
Ik ontvang de mail in mijn hotmail account bij de map "ongewenst"
Is hier nog iets aan te doen?


groeten rob
 
Laatst bewerkt:
M.b.t. 3: Dat kan kloppen, afhankelijk van de afzender die je gebruikt en vanaf welk ip-adres je de mail verstuurt.
Ik heb even 'oe' vervangen door 'xx' in de volgende informatie

Het mx record van vlxxrenleggers.eu is 195.47.247.192 en 195.47.247.193
Het A record van vlxxrenleggers.eu is 193.202.110.198
Het WWW A record van vlxxrenleggers.eu is 128.140.217.220
Het reverse DNS record van 128.140.217.220 is srv15320.flexwebhosting.nl
Er is géén SPF-record ingesteld voor vlxxrenleggers.eu

Dus als de mail vanaf de webserver wordt verstuurd is er voor de ontvanger geen enkele duidelijke link met vloerenleggers.eu, dus daarom komt het in ongewenst terecht, lijkt me. Je zult daar dus wat aan moeten doen (ik neem aan dat je verstuurt met afzender xxxx@vlxxrenleggers.eu)

Tijs.
 
Ok wat je moet doen /
Dit html form is kant en klaar, hoef je nog niks te doen


Nu komt het folgende,

Bij dit script moet je je email invullen , Waar nu contact@blablo.nlstaat vul jij die van jouw in,

Upload dit script in de zelfde dirictory als waar het mailform staat en noem dit: formulierverzenden.php,


nu ben je klaar

Problemen kan je gwn zeggen aan mij

Ik heb dit script met succes getest. Alleen wou ik dat voornaam en achternaam samen met het bericht in de opgestuurde email terecht kwamen.
Is dit mogelijk om met dat script de plaatsing van de gegevens te veranderen?
 
Lijkt me van wel (voornaam en achternaam komen dan achteraan het bericht te staan):
Invoegen vóór of na het volgende deel:
PHP:
$headers .= 'From: ' . $voornaam . ' ' . $achternaam . '<' . $email . '>'; // Een afzender instellen zodat je kan reageren.

$bericht .= "\r\n". $voornaam . ' ' . $achternaam;

EDIT, toevoeging:
Mocht je die voornaam + achternaam vooraan het bericht willen hebben, dan zou dat (m.i.) zo kunnen:
$bericht = $voornaam . ' ' . $achternaam . "\r\n" . $bericht;

Tijs.
 
Laatst bewerkt:
Bedankt, dit werkt prachtig.
Ik weet niet zoveel van PHP, en zou me gaarne meer verdiepen in die materie. Vooral met relatie tot html.
Nog een vraag: indien ik meer velden wil toevoegen, waar moet ik die dan plaatsen? Kunnen er ook spaties toegevoegd worden tussen de binnengekomen berichten. Een witregel dus tussen voornaam en achternaam.

Adhemar
 
Varianten (even die van vooraan het bericht):
$bericht = $voornaam . "\r\n" . $achternaam . "\r\n" . $bericht;
Dan staan voornaam en achternaam op aparte regels.

Wil je er een lege regel tussen hebben, dan doe je \r\n 2 keer, dus (bijv.) als volgt:
$bericht = $voornaam . "\r\n\r\n" . $achternaam . "\r\n" . $bericht;

Wil je een lege regel tussen voornaam en achternaam en ook nog een lege regel tussen achternaam en het (echte) bericht, dan na achternaam iets vergelijkbaars doen:
$bericht = $voornaam . "\r\n\r\n" . $achternaam . "\r\n\r\n" . $bericht;

Tijs.
 
Laatst bewerkt:
Bedankt Tijs, dit werkt naar behoren. Nu nog een tutorial vinden die niet al te moeilijk is.
Intussen zal ik een beetje experimenteren.
Nogmaals bedankt.

Adhemar
 
Welkom op Helpmij.nl.:)

Hiermee sluit ik de topic. Oude topics mogen met rust worden gelaten. Daarbij is het niet toegestaan mee te liften in iemand zijn/haar topic.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan