Beste leden,
Ik probeer mijn contactscript te beveiligen met random captcha, alleen als ik de beveiliging wil toevoegen krijg ik een foutmelding.
Het script ziet er als volgt uit:
Beveiliging Captcha
ContactscriptPHP Code:
<?php
$rand = rand(10000, 99999);
setcookie("rand", $rand, time()+3600);
$image = imagecreate(60, 30);
$bgColor = imagecolorallocate ($image, 255, 255, 255);
$textColor = imagecolorallocate ($image, 0, 0, 0);
imagestring ($image, 5, 5, 8, $rand, $textColor);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>
Het beveiligingscript is momenteel niet toegevoegd aan het contactscript.PHP Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Heeft u vragen of suggesties</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="96%" id="table1">
<tr>
<td><font face="Trebuchet MS" size="2"><b>Heeft u vragen en/of suggesties ?</b><br>
Neemt u dan
gerust contact met ons op via het onderstaande
contactformulier.</font></p>
</td>
</tr>
</table>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$headers = 'Content-type: text/html; charset=iso-8859-1\r\n';
mail('xxxxxxxxxxx', 'Contactformulier', 'Hallo ....,<br />
er is een bericht verstuurd via de site:<br /><br />
<b>ip:</b>' . $_SERVER['REMOTE_ADDR'] . '<br />
<b>Naam:</b> ' . $_POST['Naamprovider'] . '<br />
<b>Email:</b> ' . $_POST['host_email'] . '<br />
<b>Betreft:</b> ' . $_POST['betreft'] . '<br />
<b>Toelichting:</b> ' . $_POST['Tekstveld'] . '<br />
', $headers);
echo '<font face="Arial" size="2" color="red">Bedankt voor uw reactie, we zullen uw aanvraag z.s.m. beantwoorden.</font>';
}
?>
<form method="post">
<TABLE height=248 width=439 border=0" cellspacing="7">
<TBODY>
<TR>
<TD width=127 height=21><FONT face="Trebuchet MS" size="2">Naam:</FONT></TD>
<TD width=302 height=21><font size="3" face="Verdana">
<INPUT size=30 name="Naamprovider" style="border: 1px solid #C0C0C0"></font></TD></TR>
<TR>
<TD width=127 height=21><FONT face="Trebuchet MS" size="2">Emailadres:</FONT></TD>
<TD width=302 height=21 bordercolor="#000000"><font size="3" face="Verdana">
<INPUT size=30 name="host_email" style="border: 1px solid #C0C0C0"></font></TD>
<TR>
<TD width=127 height=21><font face="Trebuchet MS" size="2">Betreft:</font></TD>
<TD width=302 height=21><font face="Times New Roman" size="3">
<select name="betreft" id="betreft">
<option value="Vraag">Vraag</option>
<option value="Suggestie">Suggestie</option>
<option value="Feedback">Feedback</option>
<option value="Klacht">Klacht</option>
</select></font></TD></TR>
<TR>
<TD width=429 height=21 colspan="2"><FONT face="Trebuchet MS" size="2"><STRONG>Toelichting:</STRONG></FONT></TD>
</TR>
<TR>
<TD width=433 colSpan=2 height=21>
<font face="Trebuchet MS" size="3" color="#000000">
<TEXTAREA name="Tekstveld" rows=7 cols=39 style="border: 1px solid #C0C0C0"></TEXTAREA></font></TD></TR>
<TR>
<TD width=127 height=21> </TD>
<TD width=302 height=21><img src="random.php" /></TD></TR>
<TR>
<TD width=127 height=21><font face="Trebuchet MS" size="2">Verificatiecode:</font></TD>
<TD width=302 height=21>
<input name="number" id="number" type="text" size="9" /></TD></TR>
</TBODY></TABLE>
<P><INPUT type="submit" value="Verzenden" name=B1></form></P></div></body>
</html>
Iemand enig idee waar ik dit moet plaatsen ?
Script is online zonder beveiliging op: http://yourwebsolution.nl/contact/contact.php
B.v.d.,
Alifar
- Captcha beveiliging, contactscript
-
26-11-2007, 23:31 #1Alifar P Guest
Captcha beveiliging, contactscript
Laatst aangepast door Alifar P : 27-11-2007 om 11:29
-
-
26-11-2007, 23:34 #2
- Berichten
- 117
- Lid sinds
- 17 Jaar
Misschien handig om ook ineens te kijken of er wel iets is ingevuld in het formulier alvorens een e-mail te versturen ?
... if (!empty($_POST["Tekstveld"])){
-
26-11-2007, 23:37 #3Alifar P Guest
Origineel gepost door Bram Verdonck
Misschien handig om ook ineens te kijken of er wel iets is ingevuld in het formulier alvorens een e-mail te versturen ?
... if (!empty($_POST["Tekstveld"])){
-
26-11-2007, 23:41 #4
- Berichten
- 165
- Lid sinds
- 17 Jaar
Origineel gepost door Alifar P
Idd, en waar plaats ik dan zoiets :D
-
26-11-2007, 23:44 #5Alifar P Guest
Haha, daar heb ik veel aan Patrick :P
-
27-11-2007, 00:29 #6
- Berichten
- 165
- Lid sinds
- 17 Jaar
Origineel gepost door Alifar P
Haha, daar heb ik veel aan Patrick :P
PHP Code:if (!empty($_POST["Tekstveld"])){
mail('xxxxxxxxxxx', 'Contactformulier', 'Hallo ....,<br />
er is een bericht verstuurd via de site:<br /><br />
<b>ip:</b>' . $_SERVER['REMOTE_ADDR'] . '<br />
<b>Naam:</b> ' . $_POST['Naamprovider'] . '<br />
<b>Email:</b> ' . $_POST['host_email'] . '<br />
<b>Betreft:</b> ' . $_POST['betreft'] . '<br />
<b>Toelichting:</b> ' . $_POST['Tekstveld'] . '<br />
', $headers);
}
-
27-11-2007, 11:24 #7Alifar P Guest
Thnx, maar dan krijg ik geen melding toch ? En hoe zit het dan met captcha beveiliging ?
-
27-11-2007, 11:42 #8Alifar P Guest
Origineel gepost door Patrick Neeteson
T hangt ervan af wat je wil doen, als je alleen wil mailen indien "Tekstveld" niet leeg is doe je het zo:
-
27-11-2007, 15:14 #9Alifar P Guest
Niemand...?
-
28-11-2007, 18:04 #10
- Berichten
- 118
- Lid sinds
- 18 Jaar
Ok,
Je moet de php script opslaan als bijv: captcha.php
Dan ga je naar je contact script: contact.php
bovenaan de pagina zet je:
Code:<?php session_start(); include("captcha.php"); ?>
Code:<?php $rand = rand(10000, 99999); $_SESSION['random_number'] = $rand; $image = imagecreate(60, 30); $bgColor = imagecolorallocate ($image, 255, 255, 255); $textColor = imagecolorallocate ($image, 0, 0, 0); imagestring ($image, 5, 5, 8, $rand, $textColor); header('Content-type: image/jpeg'); imagejpeg($image); imagedestroy($image); ?>
Je gaat naar je contact formulier:
Je maakt een row aan in je tabel:
<img src="captcha.php?">
en een textveld waar je de code kan intyppen.
<input type="text" name="code" id="code">
Zodra ze op submit klikken:
<input type="submit" name="karim" value="Stuur nu!">
Dan doe jij het volgende ook in je contact script:
Code:if(isset($_POST['karim'])){ if($_POST['code'] != $_SESSION['random_number']){ echo' je hebt een foute code ingevoerd!'; exit; }else{ //verstuur je formulier } } // end post ?>
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic