Ik heb een formulier dat moet worden ingevuld waarna er een mailtje wordt verstuurd. Ik heb al een controle op empty fields toegepast alleen zoek ik nu een manier om er voor te zorgen dat iemand niet binnen een ingestelde tijd meerdere formulieren kan versturen. Ik zat te denken richting cookies instellen voor een bepaalde tijd o.i.d.?
Het is waarschijnlijk al veel vaker gevraagd maar doordat ik het niet echt goed weet te omschrijven in korte pakkende woorden heb ik het niet kunnen vinden op deze site.
Alvast bedankt =)
EDIT:
<?php
if ( $_POST['voornaam'] || $_POST['achternaam'] || $_POST['email'] || $_POST['bericht'] == "" )
{
echo ("U moet alle gegevens correct invullen. Probeer het nog eens. <a href=\"javascript:history.back(-1)\">Terug</a>");
exit();
}
ob_start();
$Anti_Spam=="10";
$to = "[email protected]";
$subject = "Een bericht via de site van de bezoeker: ".$_POST['voornaam']. " " .$_POST['achternaam'];
$body = "Dit is zijn email adres: ".$_POST['email']. "\nEn dit was zijn bericht:\n" .$_POST['bericht'];
if (mail($to, $subject, $body)) {
echo("<p>Uw bericht is verzonden. Wij zullen zo snel mogelijk reageren.</p>");
} else {
echo("<p>Er is iets fout gegaan met het verzenden van uw bericht. Probeer het later nog eens</p>");
exit();
}
Het mailen werkt wel gewoon hoor, het is welliswaar geen mooi opgemaakt mailtje, maar dat wat ik wil van het mailtje is aanwezig. Alleen kan iemand me uitleggen hoe ik het kan aanpakken met die timer?
Deze error krijg ik trouwens:
Parse error: syntax error, unexpected ';' in test/verzenden.php on line 24
Mailen gaat niet werken, ik zie nergens headers, zie mail() op PHP.net voor meer info.
headers meegeven is optioneel..
En het ligt eraan hoe graag je wilt dat ze niet binnen die bepaalde tijd nog een keer mailen. Coockies zijn simpel te verwijderen, als je een ip in db zet met wanneer hij/zij gemaild heeft en controleert of dat niet minder lang geleden is dan jij wilt dat dat is, word het al een stuk moeilijker..
[quote='Jurgen schreef op 27.01.2008 22:15']Mailen gaat niet werken, ik zie nergens headers, zie mail() op PHP.net voor meer info.
headers meegeven is optioneel..
En het ligt eraan hoe graag je wilt dat ze niet binnen die bepaalde tijd nog een keer mailen. Coockies zijn simpel te verwijderen, als je een ip in db zet met wanneer hij/zij gemaild heeft en controleert of dat niet minder lang geleden is dan jij wilt dat dat is, word het al een stuk moeilijker..[/quote]
Optioneel? Hoe moet jou mailserver nu weten waarmee hij te maken heeft als hij alleen maar een lap text krijgt. Die gaat wss regelrecht de prullenbak in of nog erger op een blacklist.
Je zou het IP adres van de verzender op kunnen slaan in een database samen met een DATETIME veld met daarin datum/tijdstip van verzenden. Waterdicht is het niet, maar het is een begin ;-)
Ja idd Jan. Dat zal ik doen. Maar dan alleen wanneer ik inderdaad last heb van spam, anders is het de moeite niet echt waard.
Ik zit nu echter met een nieuw probleem. De code die ik heb blijft de hele tijd zeggen dat ik de gegevens niet volledig heb ingevuld, ook al heb je alle velden netjes ingevuld. Ziet iemand de fout?
Ik heb een code die gegevens uit een formulier verzend naar een email adres. Heel simpel allemaal. Nu heb ik een controle code geschreven, die eveneens super simpel is. Net deed hij het nog alleen blijft hij nu zeggen dat ik mijn gegevens moet invullen, ook al heb ik ze allemaal ingevuld. Hier is mijn code:
<?php
if ( $_POST['voornaam'] || $_POST['achternaam'] || $_POST['email'] || $_POST['bericht'] == "" )
{
echo ("U moet alle gegevens correct invullen. Probeer het nog eens. <a href=\"javascript:history.back(-1)\">Terug</a>");
exit();
}
$to = "[email protected]";
$subject = "Een bericht via de site van de bezoeker: ".$_POST['voornaam']. " " .$_POST['achternaam'];
$body = "Dit is zijn email adres: ".$_POST['email']. "\nEn dit was zijn bericht:\n" .$_POST['bericht'];
if (mail($to, $subject, $body)) {
echo("<p>Uw bericht is verzonden. Wij zullen zo snel mogelijk reageren.</p>");
} else {
echo("<p>Er is iets fout gegaan met het verzenden van uw bericht. Probeer het later nog eens</p>");
}