formulier

Status
Niet open voor verdere reacties.

jeel2008

Gebruiker
Lid geworden
30 okt 2008
Berichten
839
hallo,
ik heb een formulier gemaakt in php. althans, gekeken op internet hoe dit gaat.
ik had er eentje in html, de resultaten van dat formulier gingen via een action=mailto etc. naar een emailadres.
maar dat vond ik niet zo mooi.
ik wilde een 'bedankt' pagina in beeld na het verzenden.

nu snap ik echter iets niet. ik zie hier, bijvoorbeeld:

<form action="process.php" method="post">

<input name="achternaam" type="text" id="achternaam" value="" />
Achternaam</p>
<p>Vul hier uw bericht in:<br />
<textarea name="bericht" id="bericht" cols="45" rows="5"></textarea>
</p>
<p>
<input type="submit" value="Verzend" />
<label>
<input type="submit" name="Wissen" id="Wissen" value="Wissen" />
</label>
</p>

</form>

dit is een heel simpel formulier maar daar gaat het nu niet om. het gaat om form action="process.php". na het verzenden gaat ie dus naar process.php.

ziehier, process.php, de php code
<?php
$achternaam = $_POST['achternaam'];
$bericht = $_POST['bericht'];

echo "Bedankt voor uw bericht! U ontvangt z.s.m. bericht.";

?>

maar wat ik niet snap: WAAR komt nu de info aan? ik krijg m niet in mn emailbox (dat snap ik, want dat heb ik nergens aangegeven), ik zie geen database waar de info naartoe moet.
waar openbaart de informatie zich die de bezoeker heeft ingetypt? waar wordt dat naartoe gestuurd? waar kan ik dat teruglezen?
 
Alle info die wordt ingevuld door de gebruiker kun je met een $_POST['{naam_van_input_veld}'] opvragen.

Aangezien je wilt gaan mailen dien je dus de mail()-functie van PHP aan te roepen.

In principe is dit dus al voldoende:
process.php
PHP:
<?php
$achternaam = $_POST['achternaam'];
$bericht = $_POST['bericht'];

$mailTo = 'jouw@adres.nl'; // Vul hier je eigen adres in
$mailSubject = 'Bericht van website'; // Het onderwerp van de mail

$mailMessage = $achternaam .' heeft een bericht via de website verstuurd, dit is het bericht: '. "\r\n\r\n" . $bericht;
if(mail($mailTo, $mailSubject, $mailMessage)) {
  echo "Bedankt voor uw bericht! U ontvangt z.s.m. bericht.";
} else {
  echo 'Er is een fout opgetreden tijdens het verzenden.';
}
?>
 
php mail

hallo Tha Devil,
bedankt. ziet er logisch uit.
ga het vandaag nog ff proberen.

----------------------------
even later;

heb het geprobeerd, via de lokale server.
krijg echter dit bericht na verzending:

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for mijn@emailadres.nl in C:\wamp\www\htdocs\process.php on line 18



line 18 ziet er zo uit:
if(mail($mailTo, $mailSubject, $mailMessage)) {
Er is een fout opgetreden tijdens het verzenden.
 
Laatst bewerkt:
Het ziet er uit alsof je mail instellingen niet goed zijn... kijk daar eens naar, die staan volgensmij in php.ini
 
form php

hallo frats, het lag aan de lokale server.
het form werkt, alleen...
het komt nogal lelijk binnen in de mail.
alles achter elkaar.
ik zou liever hebben dat er zou staan:

emailadres: ......
met de naam: ....
heeft u een bericht gestuurd. het bericht luidt: etc etc
PHP:
nu heb ik dit:
  <?php
$achternaam = $_POST['achternaam'];
$voornaam = $_POST['voornaam'];
$email = $_POST['email'];
$bericht = $_POST['bericht'];

$mailTo = 'mijn@domein.nl'; // Vul hier je eigen adres in
$mailSubject = 'Bericht van website'; // Het onderwerp van de mail

$mailMessage = $email. $voornaam. $achternaam .' heeft een bericht via de website verstuurd, dit is het bericht: '. "\r\n\r\n" . $bericht;
if(mail($mailTo, $mailSubject, $mailMessage)) {
  echo "Bedankt voor uw bericht! U ontvangt z.s.m. bericht.";
} else {
  echo 'Er is een fout opgetreden tijdens het verzenden.';
}
?>

maar dat komt dan zo binnen:
iemand@iemand.nl iemandiemand heeft een bericht via de website verstuurd, dit is het bericht:
blabla

telkens echter als ik iets verander achter
$mailMessage = $email. $voornaam. $achternaam
krijg ik geen bedanktpagina te zien en volgens mij komt de mail ook niet aan.

hoe pak ik dat aan?
 
Laatst bewerkt door een moderator:
PHP:
$mailMessage = 
'E-mailadres: '. $email ."\r\n".
'met de naam: '. $voornaam .' '. $achternaam ."\r\n".
'heeft een bericht gestuurd, dit is het bericht: '. "\r\n\r\n" . $bericht;

Zou zo moeten lukken.
 
form

hallo Tha Devil,

werkt als een speer.
ik heb nog een klein vraagje, maar dat is joomla gerelateerd.
ga ik daar dus even stellen.

bedankt in ieder geval, Jeel2008

ps trouwens, je had in de code een n en een r.
die n, dat is een nieuwe regel, maar die r wat heeft die voor functie?
 
In Windows is een nieuwe regel \r\n, in Linux en Mac OS is dat alleen \n
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan