Contactformulier
Veel meer PHP websites bloeien op. Een uitdaging voor mij. Helaas gaat dit niet (geslaagd) lukken zonder mij.
Ik wil een contactformulier maken. Dit heb ik gemaakt tot zo ver dat ik een email krijg als ik het formulier invul. Alleen hier staat dan niet de tekst in die ik ingevuld heb in het formulier maar daar staat: Tekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekst
Hieronder zet ik het contactformulier en de mailpagina
mail.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// E-mail bericht opstellen
$message = "
Tekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekst
";
$message = stripslashes($message);
// Mail versturen
mail("[email protected]","Email verstuurd door: ".$voornaam."".$achternaam."",$message,"From: Email adres");
Header("Location: http://www.toilethumor.nl");
?>
// E-mail bericht opstellen
$message = "
Tekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekst
";
$message = stripslashes($message);
// Mail versturen
mail("[email protected]","Email verstuurd door: ".$voornaam."".$achternaam."",$message,"From: Email adres");
Header("Location: http://www.toilethumor.nl");
?>
---------------- FORMULIERPAGINA ------
Ik heb datgene geplakt waar jullie kunnen zien wat er mis mee is, anders wordt het te veel 'onzin'.
</font></span><form <form method="post" action="mail.php">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="body" width="150px"><h4>Voorletters en naam</h4></td>
<td><input name="Naam" type="text" class="form" id="Naam" maxlength="30" style="width:180" value=""></td>
</tr>
<tr>
<td class="body"><h4>Straat en huisnummer</h4></td>
<td><input name="Adres" type="text" class="form" id="Adres" maxlength="30" style="width:180" value=""></td>
</tr>
<tr>
<td class="body"><h4>Postcode</h4></td>
<td><input name="Postcode" type="text" class="form" id="Postcode" maxlength="30" style="width:180" value=""></td>
</tr>
<tr>
<td class="body"><h4>Plaats</h4></td>
<td><input name="Plaats" type="text" class="form" id="Plaats" maxlength="30" style="width:180" value=""></td>
</tr>
<tr>
<td class="body"><h4>Telefoonnummer</h4></td>
<td><input name="Telefoonnummer" type="text" class="form" id="Telefoonnummer" maxlength="30" style="width:180" value=""></td>
</tr>
<tr>
<td class="body"><h4>E-mailadres</h4></td>
<td><input name="Emailadres" type="text" class="form" id="Emailadres" maxlength="50" style="width:180" value=""></td>
</tr>
<tr>
<td class="body" valign="top"><h4>Bericht</h4></td>
<td><textarea name="Bericht" class="form" id="Bericht" style="width:180" rows="10"></textarea></td>
</tr>
<tr>
<td class="body"> </td>
<td> </td>
</tr>
<tr>
<td class="body"> </td>
<td><input name="submit" type="submit" class="form" value="Versturen"></td>
</tr>
</table>
</form>
</p>
<p> </TD></TR>
Code (php)
1
2
3
4
2
3
4
<?php
$message = "
Tekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekst
?>
$message = "
Tekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekstTekst tekst
?>
Dit staat als var in je mail.php als vaste waarde en dus veranderen in gezien dit invoerveld:
<tr>
<td class="body" valign="top"><h4>Bericht</h4></td>
<td><textarea name="Bericht" class="form" id="Bericht" style="width:180" rows="10"></textarea></td>
</tr>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
//maak ipv $message dit
$Bericht
//of maak de var $Bericht en voor dit overal door waar $message staat
?>
//maak ipv $message dit
$Bericht
//of maak de var $Bericht en voor dit overal door waar $message staat
?>
Suc6 gewenst!
$message = "Het bericht dat ingetypt werd:". $_POST['Bericht'].". Vond je het een leuk bericht?";
Ouch, Je gebruikt hier $Bericht als een register global. Sinds PHP 4.2 wordt dat afgeraden en op de meeste servers staat dat tegenwoordig uit. Het is aan te raden om hier $message = $POST['Bericht'] te gebruiken.
@ Lissy & Willem vp: ik geef toe, het is vroeg, maar hier moet nog een _ tussen: $_POST['Bericht']
Jan:
Ouch, ik was geloof ik nog niet helemaal wakker ;-)@ Lissy & Willem vp: ik geef toe, het is vroeg, maar hier moet nog een _ tussen: $_POST['Bericht']
klik. Wellicht haal je er bruikbare informatie uit.
Even snel wat in elkaar gezet, Zoals ik begrijp uit je eerste reactie is dat ik niets moet veranderen aan me formulier maar aan me mail.php Daar moet ik $message veranderen door $Bericht.
Ik heb dit geprobeerd maar nu werkt hij nog niet. Wat zou ik nog moeten veranderen? Want ik krijg nogsteeds een email met vele male TEKST zonder datgene wat ik daadwerkelijk heb in getypt.
Alvast bedankt!
Groetjes
Joris ([email protected])
$_POST['Bericht'] ipv $POST['Bericht']
Heb je die typo er al in verwerkt..
$_POST['Bericht'] ipv $POST['Bericht']
Ik kan dit namelij kniet vinden
Ik krijg nu namelijk alleen Tekst en niet datgene wat ik ingevuld heb.
etc
dan pakt hij altijd de laatste
Ergo: Wis de regel $message = "texttexttexttext";
Hij doet het. Alleen nu met weer een beperking. Hij stuurt nu alleen datgene wat er bij 'bericht' ingetypt staat. De naam bijvoorbeeld niet.
Hoe krijg ik het zo ver dat hij alles opstuurt wat je ingevuld hebt?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$message = $_POST['bericht'];
$naam = $_POST['naam'];
$onderwerp = $_POST['onderwerp'];
$koffiemeteenkoekje = $_POST['koffiemeteenkoekje'];
?>
$message = $_POST['bericht'];
$naam = $_POST['naam'];
$onderwerp = $_POST['onderwerp'];
$koffiemeteenkoekje = $_POST['koffiemeteenkoekje'];
?>
etcetera etcetera etcetera
Super bedankt! Het werkt!