Jump to content

Contactformulier afzender


Recommended Posts

Geplaatst:

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 ^_^

  • Reacties 46
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Kloep

    22

  • marcootje

    19

  • Thundercover

    4

  • K.O.

    2

Geplaatst: (bewerkt)

Het werkt nog steeds niet. :( Op het moment is dit mijn PHP file:

Veel te veel ruimte!

Bewerkt: door Kloep
Geplaatst:

ok :puh:

We komen nu wel verder. Het probleem is nu dat hij altijd aangeeft dat niet alle velden zijn ingevuld. Weet je toevallig hoe dit komt?

En mijn tweede vraag: hoe zorg ik ervoor dat hij na het verzenden doorverwijst naar een pagina?

Mvg,

Kloep

Geplaatst: (bewerkt)
Het probleem is nu dat hij altijd aangeeft dat niet alle velden zijn ingevuld. Weet je toevallig hoe dit komt?
Waarschijnlijk ergens een typfoutje in de originele contact.html. Een hoofdletter/kleine letter door elkaar gehaald ofzo. Blijkbaar krijgt het script niet alle Post data correct binnen. Je kunt dit checken door de voorwaarden één voor één te testen. Dus begin met

if(empty($achternaam))

Dan

if(empty($voornaam))

En zo verder. Je kunt ook isset() gebruiken in plaats van empty(). Er zijn een aantal verschillen tussen deze functies. Deze staan hier uitgelegd.

En mijn tweede vraag: hoe zorg ik ervoor dat hij na het verzenden doorverwijst naar een pagina?
Da's makkelijk.

if($verzonden)
{
echo("Je bericht is succesvol verzonden. Je zult zo spoedig mogelijk een bevestigingsmail ontvangen.");
sleep(3); //pauzeert 3 seconden, zodat de persoon de bevestigingsboodschap kan lezen.
header("Location: "http://www.google.nl/"); //of welke andere site dan ook.
exit();
}

Bewerkt: door K.O.
Geplaatst: (bewerkt)
En mijn tweede vraag: hoe zorg ik ervoor dat hij na het verzenden doorverwijst naar een pagina?
Da's makkelijk.

Veel te veel ruimte!

Ok, dank je wel!

Wat ik eigenlijk wil is dat de tekst: "Je bericht is succesvol verzonden. Je zult zo spoedig mogelijk een bevestigingsmail ontvangen." op de lay-out van mijn site wordt weergeven. Ik maak dus eigenlijk een nieuwe pagina aan, met daarin deze tekst. Vervolgens hoeft hij dan niet vanzelf ergens naartoe door te linken. Is dit dan een kwestie van het volgende?

Veel te veel ruimte!

Of werkt dit niet?

Bewerkt: door Kloep
Geplaatst:

je kunt ook gewoon html in het php-bestand zetten:

<html>
<head>
<title>titel..</title>
</head>
<body>
<?php
echo("<div>Ik ben geschreven door php!! :D<br>LEUK HE!! :) </div> ");
?>
</body>
</html>

Geplaatst: (bewerkt)

ehm, die snap ik niet helemaal. :$

Dit is tot nog toe mijn PHP:

Veel te veel ruimte!

En dit is mijn html formulier:

Veel te veel ruimte!

Bewerkt: door Kloep
Geplaatst:

zozo dat is lekker onoverzichtelijk...

ik bedoelde, gewoon zoals ik het zei, dat je html in een php-bestand kunt zetten

of doelde jij daar niet op?

wat snap je niet?

wat lukt niet?

Geplaatst:

Het contactformulier is inderdaad een beetje onoverzichtelijk geworden. :7

Als ik HTML in PHP zet, is het dan mogelijk om geen mail.php aan te hoeven maken?

Wat moet ik dan aan HTML in de PHP zetten?

Mvg,

Kloep

Geplaatst: (bewerkt)

php moet sowieso in een php-bestand staan.

als je php in een .html bestand zet zal de php opgestuurd worden naar de browser, welke het niet weergeeft waarschijnlijk, maar je kan het toch in de broncode zien

(de reden dat je het niet ziet op de pagina is dat de browser het ziet als een gigantisch html-element)

je wilde de output op een mooie pagina hebben, of in jouw woorden:

Wat ik eigenlijk wil is dat de tekst: "Je bericht is succesvol verzonden. Je zult zo spoedig mogelijk een bevestigingsmail ontvangen." op de lay-out van mijn site wordt weergeven.

dus: je kopieert de layout van een gewone pagina naar het php-bestand.

neem bijvoorbeeld de pagina met het <form> erin.

Je kopieert dat bestand naar mail.php, en vervangt het hele <form></form> (dus ook alles wat erin staat) door je php-code.

hierbij ga ik er trouwens van uit dat je geen includes gebruikt, omdat al je paginas de extensie .html hebben

Bewerkt: door marcootje
Geplaatst: (bewerkt)

dat bedoel ik dus, die gebruik je niet :puh:

dit is een include(-systeem):

<?php
include("includes/layout/header.php");
?>
alle inhoud, inhoud, inhoud<br> nog meer inhoud!!
<?php
include("includes/layout/footer.php");
?>

Bewerkt: door marcootje
Geplaatst: (bewerkt)

ok, het formulier werkt nog niet. Ik krijg nog steeds een wit scherm. Zelf ben ik al lang aan het kijken naar de code, maar wordt er niet wijzer van en kan al helemaal geen fouten vinden. Ik heb nu HTML in mail.php staan. De body bevat de volgende tekst:

Veel te veel ruimte!

Bewerkt: door Kloep
Geplaatst:

2 opmerkingen die het werkend kunnen maken:

1- Je moet consequent zijn in je hoofdlettergebruik

Je gebruikt <input name="Voornaam"> maar $_POST['voornaam'].

PHP is hoofdlettergevoelig (of hoe je het ook noemt), dus gebruik bij beide óf Voornaam óf voornaam.

Dit geld voor ALLE variabelen

2- je header-location geeft een fatal error, die denk ik onderdrukt wordt:

header("Location: "http://www.***.nl/index.html");

moet worden:

header("Location: http://www.***.nl/index.html");

die http://www.***.nl/ is trouwens niet per se nodig, je kunt ook een relatief pad gebruiken (index.html)

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