Jump to content

Contactformulier afzender


Recommended Posts

Geplaatst:

Hey mensen,

Ik heb op mijn site een contactformulier gemaakt. Alleen als mensen nu het invullen en op versturen drukken, opent Outlook (of misschien bij sommige Hotmail). Weet iemand hoe ik dit kan wijzigen, en dat je dus geen afzender hoeft in te voeren als klant?

Mvg,

Kloep

  • Reacties 46
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Kloep

    22

  • marcootje

    19

  • Thundercover

    4

  • K.O.

    2

Geplaatst:

ik snap je vraag niet echt helemaal (het zijn 2 dingen door elkaar...), maargoed:

contactformulier met php, dan opent outlook/hotmail niet, én je kan zelf bepalen wat je wilt verzenden ;)

zonder php? kan niet volgens mij

Geplaatst:

Nee, het zijn geen twee dingen door elkaar. Mijn contact formulier is geheel met HTML. Dus dit is dan niet mogelijk?

Geplaatst:

het maakt niet uit of je website in html is of 'in' php (websites 'in' php zijn ook in html...)

het enige wat je nodig hebt voor zoiets is php-ondersteuning

je hele website mag in .html-bestanden zijn geschreven, als je maar 1 .php-bestand kan uitvoeren is het goed

Geplaatst:

Mag ik vragen hoe jouw contactformulier er dan precies uit ziet? Het lijkt er nu namelijk meer op alsof je gewoon een mailto: link gebruikt. Dan verstuur je inderdaad niet echt een e-mail, maar opent gewoon het standaard mail programma wanneer iemand erop klikt, meestal Outlook inderdaad. Het programma wordt dan aangeroepen dat de mail opstelt en (na een druk op de knop) de mail verzendt. In een server-side scripttaal (die de server dus uitvoert, voor het bij de browser komt), zoals PHP, kun je ook een contactformulier maken dat zélf de mail maakt en verzendt. In een client-side taal (dus die door de browser pas wordt gelezen), zoals de opmaaktaal HTML, gaat dit je nooit lukken.

Geplaatst:

Ik gebruik inderdaad een mailto link. Maar is het nu gewoon een kwestie van een PHP script in een html document zetten of moet ik dan enkel .html in .php veranderen? Of moet ik dan de hele pagina in PHP zetten.

Geplaatst: (bewerkt)

je moet eerst controleren of je host php ondersteunt, want als je host geen php ondersteunt kom je niet ver.

als je host php ondersteunt, kun je denk ik het beste een nieuw php-bestand maken (mail.php of sent.php of zoiets), en daarin verwerk je onderwerp+bericht (of welke info er ook doorkomt) in het php-script, je stuurt een mailtje vanaf de server, et viola.

een probleem kan zijn dat de php-functie mail() is uitgeschakeld op je host, dan moet je een alternatief zoeken. Is de mail voor jezelf bestemd en kun je een database maken? Gooi het bericht dan in de database. Ook geen database tot je beschikking? Dan kun je het misschien in een (php-)bestand verwerken.

Maar dit is alleen mogelijk als je host php ondersteunt, controleer dat dus eerst.

Als je weet welke manier je wilt/moet/kan gebruiken, kunnen we je verder helpen.

Bewerkt: door marcootje
Geplaatst: (bewerkt)

Ik host bij PHost (zelfde als GtaForum). Deze ondersteund dan ook PHP.

Het liefst wil ik dat het ingevulde formulier wordt toegezonden naar mijn mail. Ik ga er vanuit dat dit mogelijk is op de host.

Verder kan ik ook zelf een database aanmaken. Echter heb ik hier absoluut geen verstand van. De volgende opties heb ik daar: MySQL Database, MySQL Database Wizard, phpMyAdmin en Externe Toegang. Echter heb ik dus liever dat het via de mail wordt toegezonden.

Ook heb ik dan meteen nog een vraag. Het is de bedoeling dat de klanten (ik verkoop op de site) een afbeelding mee kunnen sturen. Is dit ook mogelijk met enkel php? En kan dit dan ook in de mail worden gezet, of is hier echt een database voor nodig?

Mvg,

Kloep

PS: Voorbeeld van het formulier is te vinden in mijn signature. En nee, de site is niet mooi, maar ben een beginner. :$ :puh:

Bewerkt: door Kloep
Geplaatst:

ok

Je hebt al een formulier, dus dat zit dan goed.

Je moet in je formulier alleen het stukje action="mailto:email@adres.nl" aanpassen in action="mail.php"

Hierna maak je het bestand mail.php aan. Het mag ook een andere naam hebben, maar dat dan ook in de form action doorvoeren.

In mail.php komt zoiets te staan, ik heb er ook even commentaar bijgezet:

<?php
//informatie ophalen uit wat er verzonden is
$achternaam = $_POST['Achternaam'];
$voornaam = $_POST['Voornaam'];
$geboortedatum = $_POST['Geboortedatum'];
//etc...


//kijken of alles is ingevuld
if(empty($achternaam) || empty($voornaam) || empty($geboortedatum)/*etc...*/)
{
echo("Niet alle velden zijn ingevuld!");
die(); // de pagina niet meer door laten gaan
}

//alle velden zijn ingevuld
$body = '
Van: '.$voornaam.' '.$achternaam.'
Geboortedatum: '.$geboortedatum.'
';

//email versturen
$naar = "email@adres.nl"; //aanpassen naar je eigen email-adres
$onderwerp = "Contactformulier ***.nl"; // aanpassen naar je eigen website
$verzonden = mail($naar, $onderwerp, $body);

if($verzonden)
{
echo("Je bericht is succesvol verzonden.");
}
else
{
echo("Er is een fout opgetreden, probeer het opnieuw.");
}
?>

Er staan talloze dergelijke email-scripts op het internet, dit is het standaard idee.

Hiernaast kun je het ook nog aanpassen, met als doel:

- het veiliger maken

- spam voorkomen

- naam&email adres in From:-header zetten

- betere foutmelding-afhandeling

een bijlage.

Dit is vast wel mogelijk, alleen ik ben ook geen held met de mail()-functie

waarschijnlijk kun je best ver komen met google: "php mail attachment" of iets dergelijks.

er zijn ook volledige klassen die je kunt gebruiken om mails te versturen, die ook nog meer functies bevatten, maar die zijn daarentegen ook lastiger om te gebruiken.

Geplaatst: (bewerkt)

Is dit alles wat ik in de mail.php moet zetten? Want op het moment dat ik op versturen klik linkt hij door naar www.***.nl/mail.php. Vervolgens krijg ik hier nu een wit scherm. Hier even de code die ik nu in mail.php heb:

Veel te veel ruimte!

Hier lijkt mij niet de fout inzitten, meer in de PHP.

Bewerkt: door Kloep
Geplaatst:

if(empty($achternaam) || empty($voornaam) || empty($geboortedatum) || empty($Straat) || empty($Huisnummer) || empty($Postcode) || empty($Woonplaats) || empty($Telefoonnummer) || empty($Mailadres) || empty($betalingswijze)

Hier hoort nog een haakje sluiten achter.

Geplaatst:

if($verzonden)

Wat wil je precies? Want dit zal niet werken. Worden de mailtjes trouwens wel gewoon verstuurd?

Geplaatst: (bewerkt)

wat je nu nog moet doen:

- $body uitbreiden met alle plain text-info die je hebt

- in $naar je eigen email-adres zetten

- in $onderwerp je eigen onderwerp zetten (optioneel)

ik weet niet in hoeverre je dit al gedaan hebt in je live bestand, maar even dat je het doorhebt.

het foutje dat je maakt is deze:

$Huisnummer $_POST['Huisnummer'];

dat moet zijn:

$Huisnummer = $_POST['Huisnummer'];

van huisnummer tot betalingswijze zijn die allemaal fout, overal moet een = tussen

en zoals thundercover zei, moest er nog een ) achter die if-statement, maar die was al verholpen als ik het zo lees

@thundercover:

mail() geeft een boolean terug, 'true on success, false otherwise'. Met if($verzonden) controleer je dus of de email bij je email-server aangekomen is.

Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.

>>> Door Thundercover: Die handige functie kende ik nog niet op deze manier. Bedankt voor de uitleg! :)<<<

alstu :)

Bewerkt: door marcootje
Geplaatst:

Het foutje met het = teken is nu verholpen. Verder had ik al de mail en sitenaam vervangen, maar wegens reclame hier weggehaald. Ook had ik inderdaad al de extra ) toegevoegd.

Nu strand ik alleen bij de $Body. Op de eerste regel staan twee invoeren, en op de tweede regel staat maar één invoer. Hoe werkt dit dan?

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...