Jump to content
Geplaatst:
comment_1302138

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
  • Bezichtigingen 3.5k
  • Created
  • Laatste reactie

Top Posters In This Topic

Featured Replies

Geplaatst:
comment_1302319

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:
comment_1302893

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:
comment_1302929

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:
  • Auteur
comment_1302954

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:
comment_1303111

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:
  • Auteur
comment_1303479

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:
comment_1303652

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:
  • Auteur
comment_1303695

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:
comment_1303895

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:
  • Auteur
comment_1304134

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?

Geplaatst:
comment_1304230

je zet de inhoud in de string $body, wat je over het algemeen zo doet:

$body = 'inhoud';

zo zet je daar een variabele in:

$body = 'inhoud, dit is mijn naam: '.$naam.', leuk he?';

je kunt er ook newlines/enters in gebruiken, waarmee we uitkomen op mijn gegeven stukje:

$body = '
Van: '.$voornaam.' '.$achternaam.'
Geboortedatum: '.$geboortedatum.'
';

over het algemeen kun je dus steeds op een nieuwe regel dit principe gebruiken:

Geboortedatum: '.$geboortedatum.'

Als je het helemaal volgens dit principe wilt doen is dit ook mogelijk:

$body = '
Voornaam: '.$voornaam.'
Achternaam: '.$achternaam.'
Geboortedatum: '.$geboortedatum.'
';

ik hoop dat het zo duidelijk is ^_^

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...

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.