Vraag & Antwoord

Webdesign (HTML, CSS, Flash)

waarom wordt formuliertekst niet meer meegezonden

15 antwoorden
  • Ik heb een heel aantal formulieren van het web geplukt en getest. Dit omdat mijn website een formulier had waar je wat dingen kon invullen en vervolgens via mailto: konden bezoekers een mail sturen met daarin door hun ingevulde gegevens. Wat blijkt? Het lukt niet meer. Ook niet met de andere geteste sites. Ligt dit aan Windows Live mail misschien? Hoe kan ik er voor zorgen dat mensen toch weer via 'submit' op de website, gegevens aan mij kunnen toesturen. Voorbeeld code: (mail wordt wel verzonden maar zonder de inhoud van de velden). <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Mijn Form</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> </head> <body> <h1>Mijn Form</h1> <form name="mailform" action="mailto:info@yuyuy.nl" method="post" enctype="multipart/form-data"> <table width="400"> <tr><td colspan="2"><b>Vul hier uw gegevens in, en dat van uw auto</b></td></tr> <tr><td>Je naam:</td><td> <input type="text" name="naam"></td></tr> <tr><td>Telefoonnummer:</td><td> <input type="text" name="telnr"></td></tr> <tr><td>Je emailadres:</td><td> <input type="text" name="email"></td></tr> <tr><td>Merk auto(bv BMW):</td><td> <input type="text" name="merk" value=""></td></tr> <tr><td>Type(bv: 318i):</td><td> <input type="text" name="type" value=""></td></tr> <tr><td>Bouwjaar:</td><td> <input type="text" name="bouwjaar" value=""></td></tr> <tr><td>Kleur:</td><td> <input type="text" name="kleur" value=""></td></tr> <tr><td>Kilometerstand:</td><td> <input type="text" name="kmstand" value=""></td></tr> <tr><td>APK loopt tot: (bv: 22-10-2006):</td><td> <input type="text" name="apk" value=""></td></tr> <tr><td>Vermeld hier van uw auto de eventuele gebreken/schades:</td><td> <textarea name="bericht" cols="30" rows="6"></textarea></td></tr> <tr><td>Upload bestand:</td><td><input type="file" name="bestand" id="bestand"></td></tr> <tr><td colspan="2"><br><a href="http://www.mijnmailform.nl" target="_blank"></a></td></tr><input type="submit" name="verzenden" value="verzenden"> </table> </form> </body> </html>
  • Als je de enctype veranderd in "text/plain" werkt het wel. Ik zie dat je dan geen bestand kunt uploaden, maar ik vraag me af of dat uberhaupt mogelijk is met een mailto action. Ik heb daar verder geen ervaring mee, ik schrijf er altijd een mailscript bij.
  • Veranderd: helpt helaas niets, er wordt geen tekst verzonden met de e-mail. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Mijn Form</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> </head> <body> <h1>Mijn Form</h1> <form action="mailto:vanuden.w@home.nl" method="post" enctype="text/plain" name="mailform" target="_blank"> <table width="400"> <tr><td colspan="2"><b>Vul hier uw gegevens in, en dat van uw auto</b></td></tr> <tr><td>Je naam:</td><td> <input type="text" name="naam"></td></tr> <tr><td>Telefoonnummer:</td><td> <input type="text" name="telnr"></td></tr> <tr><td>Je emailadres:</td><td> <input type="text" name="email"></td></tr> <tr><td>Merk auto(bv BMW):</td><td> <input type="text" name="merk" value=""></td></tr> <tr><td>Type(bv: 318i):</td><td> <input type="text" name="type" value=""></td></tr> <tr><td>Bouwjaar:</td><td> <input type="text" name="bouwjaar" value=""></td></tr> <tr><td>Kleur:</td><td> <input type="text" name="kleur" value=""></td></tr> <tr><td>Kilometerstand:</td><td> <input type="text" name="kmstand" value=""></td></tr> <tr><td>APK loopt tot: (bv: 22-10-2006):</td><td> <input type="text" name="apk" value=""></td></tr> <tr><td>Vermeld hier van uw auto de eventuele gebreken/schades:</td><td> <textarea name="bericht" cols="30" rows="6"></textarea></td></tr> <tr><td>Upload bestand:</td><td><input type="file" name="bestand" id="bestand"></td></tr> <tr><td colspan="2"><br><a href="http://www.mijnmailform.nl" target="_blank"></a></td></tr><input type="submit" name="verzenden" value="verzenden"> </table> </form> </body> </html>
  • Er kloppen een paar dingen niet. 1. [code:1:f7b2ff724d] <tr><td colspan="2"><br><a href="http://www.mijnmailform.nl" target="_blank"></a></td></tr><input type="submit" name="verzenden" value="verzenden">[/code:1:f7b2ff724d] Je werkt met een tabel, prima maar dan hoeft die <br> er niet in. 2. De link naar mijnmailform is leeg en wordt dus niet getoond op het scherm. Er staat niks tussen <a> en </a>. 3. De submit knop staat niet op de goede plek. Die hoort in een cel te staan, dus tussen een <td> en </td> 4. Bij de velden naam, telnr en email ben je value="" vergeten. 5. Als ik in dreamweaver een nieuw html-bestand open, krijg ik dit als eerste paar regels: [code:1:f7b2ff724d] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Naamloos document</title> </head> [/code:1:f7b2ff724d] waarvan de eerste 2 bij mij wel op één regel staan. dus misschien is de doctype niet goed bij jou. Ik weet niet zeker of een van deze punten de oorzaak is van het probleem, maar het zijn in ieder geval dingen die nu nog niet kloppen.
  • [code:1:39178d16a6] <form name="mailform" action="mailto:info@yuyuy.nl" method="post" enctype="text/plain"> [/code:1:39178d16a6] Werkt hier als een trein. Maar PepijnG heeft gelijk, de code is rommelig en kan daardoor erg onvoorspelbaar gaan reageren.
  • Een bijlage (plaatje) toevoegen werkt hier niet in Thunderbird. Waarschijnlijk maar goed ook want dat lijkt me ook niet echt veilig op deze manier. Denk dat je toch een php scriptje moet zoeken om een attachment te versturen. Misschien is [url=http://www.phpform.org/]dit[/url] trouwens iets voor de opmaak.
  • Ik denk dat het probleem zit in de mailto: actie. Die is zo onvoorspelbaar als wat. Hoe er gereageerd wordt aan de gebruikerskant is geheel afhankelijk van de mailclient die geïnstalleerd is, óf die geïnstalleerd is en hoe die dan geconfigureerd is. Als de mailclient denk dat de boel niet veilig is, dan kan het goed gebeuren dat-ie dienst weigert. Dan kun je zoveel gaan debuggen aan de rest van het formulier, maar ik denk dat je gewoon van heel die mailto: actie af moet. Zoals Gooly reeds in zijn eerste bericht voorstelde zou ik een simpel eigen mailscriptje gebruiken. Dan heb je het versturen zelf in de hand.
  • De foutjes in de code ok. Ik heb gewoon wat internet geplukt. Misschien een verkeerd voorbeeld gepresenteerd. Hopelijk is de vraag op zich begrepen. Hoe kant het dat al de voorbeelden niet werken. Ook het voorbeeld van mijn eigen site die het eerst wél deed. Een eenvoudig mailscript? Misschien een voorbeeld: Ik heb geen idee wat het is of hoe ik het maak. Hoeft maar een tekstvakje te bevatten wat meegestuurd kan worden, gewoon een werkend voorbeeld.
  • Stel, je maakt van de eerste regel in je form dit: [code:1:07e244a896]<form name="mailform" action="send_mail.php" method="post" enctype="text/plain"> [/code:1:07e244a896] Vervolgens maak je een bestand aan "send_mail.php". Daarin begin je met de input van het formulier op te halen: [code:1:07e244a896]<?php // Mailscript voor het formulier // Ophalen input $naam = $_POST['naam']; $telnr = $_POST['telnr']; [/code:1:07e244a896] En dat doe je dan voor alle inputvelden. Dat verwerk je dan tot 1 totale string, wat het bericht wordt dat naar jou gestuurd moet worden: [code:1:07e244a896]$message = "Er is een formulier ingevuld op de website. De ingevulde gegevens: Naam: $naam Telefoon: $telnr etc. "; [/code:1:07e244a896] En dat verstuur je dan per mail. Voor het gemak leggen we eerst nog even wat algemene gegevens vast: [code:1:07e244a896]// basisgegevens $to = "jouw@mailadres.nl"; // adres waar het naartoe moet $subject = "Formulier ingevuld"; // onderwerp van de email $headers = "From: verzendadres@mailadres.nl"; // verzendadres // verzenden maar mail($to, $subject, $message, $headers); [/code:1:07e244a896] Als laatste nog even zorgen dat de gebruiker weer naar een goede pagina wordt teruggestuurd, bijvoorbeeld een bedankpagina ofzo: [code:1:07e244a896]header("Location: bedankt.html"); ?>[/code:1:07e244a896] Tellen we alles bij elkaar op, dan wordt je script zoiets: [code:1:07e244a896]<?php // Mailscript voor het formulier // Ophalen input $naam = $_POST['naam']; $telnr = $_POST['telnr']; // hier doorgaan met alle inputvelden // Giet het in een mooi verhaaltje $message = "Er is een formulier ingevuld op de website. De ingevulde gegevens: Naam: $naam Telefoon: $telnr etc. "; // basisgegevens $to = "jouw@mailadres.nl"; // adres waar het naartoe moet $subject = "Formulier ingevuld"; // onderwerp van de email $headers = "From: verzendadres@mailadres.nl"; // verzendadres // verzenden maar mail($to, $subject, $message, $headers); // Bezoeker naar een pagina toesturen header("Location: bedankt.html"); ?>[/code:1:07e244a896] Dit is een heel basic scriptje. Je kunt er nog van alles bij verzinnen, zoals controle op de invoer, controle of de mail goed verzonden is, en zo nog veel meer. Bovenstaande heb ik ook maar even vlotjes bij elkaar getypt en zal vast wel kloppen, maar de garantie houdt op zodra ik hieronder op "bevestig" klik en dit bericht geplaatst is. ;)
  • Ik zal het eens proberen, bedankt voor de moeite alvast
  • Aanvullend op de reactie van Ger, (eigenlijk alleen omdat ik daar zelf tegenaan liep toen ik voor de eerste keer met een mailscriptje aan de gang ging): Het stukje waar je input op haalt: [code:1:e55f9ed16e] // Ophalen input $naam = $_POST['naam']; $telnr = $_POST['telnr']; [/code:1:e55f9ed16e] Daar komen de termen tussen de haakjes dus overeen met de namen van de inputvelden van je html formulier. dus $naam = $_POST['naam']; verwerkt de input van <input type="text" name="naam" /> Dus als je in je HTML formulier meer velden gaat toevoegen, bijvoorbeeld <input type="text" name="fax" /> <input type="text" name="land" /> dan haal je die in je mail script op met $fax = $_POST['fax']; $land = $_POST['land']; Zo kun je dus zoveel input velden toevoegen als je zelf wilt. Het werkt ook met select en met radio buttons etc. Kortom alles waar je in je HTML formulier een name attribuut aan hangt kun je op die manier ophalen. Uiteraard niet vergeten om die gegevens, als je ze eenmaal hebt opgehaald, te verwerken in de uiteindelijke mail. In Ger's voorbeeld: [code:1:e55f9ed16e] $message = "Er is een formulier ingevuld op de website. De ingevulde gegevens: Naam: $naam Telefoon: $telnr Fax: $fax Land: $land etc. "; [/code:1:e55f9ed16e] Zoals Ger al aangeeft wordt hier alles achter elkaar geplakt in een lange regel. Als je het op verschillende regels wilt dan kun je er met \n een linebreak achter plakken: [code:1:e55f9ed16e] $message = "Er is een formulier ingevuld op de website. De ingevulde gegevens:\n Naam: $naam\n Telefoon: $telnr\n Fax: $fax\n Land: $land\n etc. "; [/code:1:e55f9ed16e]
  • Ik vind het geweldig dat jullie me helpen. Heb geen idee hoe ik dit script plaats in mij html tekst. Hoe, waar, etc. Html met dreamwaever is hetgene ik een beetje begrijp. Php heb ik nog nooit mee gewerkt. Tja
  • Het script wat Gooly en ik beschrijven, plaats je in een apart bestand. Dat bestand sla je op als "send_mail.php". PHP dus, en geen HTML. Je je HTML bestand hoe je alleen maar die ene regel aan te passen met de de form-tag. Geen idee overigens hoe dit er in Dreamweaver uit ziet, want dat heb ik nog nooit gebruikt (mij veel te duur en niet kosteneffectief).
  • Om te beginnen is het handig om te checken of je server PHP ondersteunt (meestal wel) Dat kan simpel op de volgende manier: Open een text editor (voor mijn part notepad/kladblok) Plak de onderstaande code er letterlijk zo in: [code:1:7ff1468837] <?php phpinfo(); ?> [/code:1:7ff1468837] Sla dat bestandje op als: info.php FTP het naar je server Open je browser en ga naar www.jedomeinnaam.com/info.php Komt er nu een enorme bak PHP informatie voorbij geschoven, dan ondersteunt je server PHP. Krijg je je eigen scriptje weer te zien, dan ondersteunt je server geen PHP. ALs er geen PHP wordt ondersteunt dan houdt het op. Als er wel PHP wordt ondersteunt, dan: - Maak je het scriptje zoals Ger aangeeft. (ook in zo'n zelfde text editor als b.v. notepad/kladblok. Maar iets als notepad++ of ConText is veel fijner) - Je slaat dat scriptje op als: send_mail.php - FTP het naar je server. - Pas de action van je form aan zodat het naar je send_mail.php scriptje wijst (eigenlijk in dezelfde zin zoals je een link naar een andere HTML pagina maakt) And that should do the trick Als je er met header("Location: bedankt.html"); nog een bedankpagina aan wilt plakken, dan dien je die natuurlijk ook nog te maken :-)
  • Hartelijk dank!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.