Ahoj, vypadá to, že používáte AdBlock... :-)

Usilovně jsme pracovali na zakomponování reklamy, aby nebyla pro čtenáře rušivá. Příjmy z reklam tento web živí, bez nich bychom jej nemohli provozovat. Budeme moc rádi, když to s námi zkusíte a přidáte si nás do výjimek. Děkujeme!

MENU

Kontaktní formulář s CAPTCHA v PHP

Rádi byste si dali na své webové stránky kontaktní formulář a ideálně ještě s ochranou proti spamu CAPTCHA, ale nevíte jak na to? Rozhodl jsem se jeden takový pro Vás připravit. A když už CAPTCHA, tak proč ne přímo taková, jakou má Google?

Kontaktní formulář má 4 políčka – Jméno, E-mail, Text a kontrolu proti spamu. Nijak jsem jej nestyloval, protože vzhled si asi každý upraví následně podle svého gusta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
session_start();
if (!empty($_REQUEST['captcha']))
{
    if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha'])
    {
        $oznameni= 'Opište prosím správně text z obrázku';
    }
    else
    {
    if($_SERVER["REQUEST_METHOD"] == "POST")
{
// promenne
$jmeno = $_POST["jmeno"];
$email = $_POST["email"];
$txt = $_POST["txt"];
$moje_adresa = "info@pcdays.cz"; // zmente na svoji adresu
$predmet = "Nastavte_svuj_predmet"; // zde nastavite co bude uvedeno v predmetu
$zprava = ("Jméno: " . $jmeno . "\n\n" . "Text: \n" . $txt . "\n\nOdesílatel: " . $email);
// odeslani emailu
mail($moje_adresa,$predmet,$zprava);
 
$oznameni= 'Zpráva byla odeslána';
}
    }
    unset($_SESSION['captcha']);
}
?>
 
<!DOCTYPE HTML>
<html>
<head>
<title>Formulář</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
 
<body>
<div style="margin:20px ">
<form method="post">
<fieldset>
  <legend>Kontaktní formulář</legend>
<table>
    <tr><td colspan="2"><div style="width:300px;background:#ff99ff; margin-bottom:20px"><?php echo $oznameni; ?></div></td>
    <tr><td>Jméno:</td><td><input type="text" name="jmeno" /></td></tr>
    <tr><td>E-mail:</td><td><input type="email" name="email" /></td></tr>
    <tr><td>Zpráva:</td><td><textarea name="txt" cols="50" rows="5"></textarea></td></tr>
    <tr><td colspan="2"><b>Pro zabránění spamu opište prosím text z následujícího obrázku:</b></td></tr>
    <tr><td><input type="text" name="captcha" id="captcha-form" /></td><td><img src="captcha.php" id="captcha" /></td></tr>
    <tr><td colspan="2"><a href="#" onclick="document.getElementById('captcha').src='captcha.php?'+Math.random();
        document.getElementById('captcha-form').focus();"id="change-image">Je obrázek nečitelný? Zkuste jiný!</a></td></tr>
</table>
<input type="submit" value="Odeslat"/>
</fieldset>
</form>
</div>
</body>
</html>
<?php
session_start();
if (!empty($_REQUEST['captcha']))
{
    if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha'])
	{
        $oznameni= 'Opište prosím správně text z obrázku';
    }
	else
	{
	if($_SERVER["REQUEST_METHOD"] == "POST")
{
// promenne
$jmeno = $_POST["jmeno"];
$email = $_POST["email"];
$txt = $_POST["txt"];
$moje_adresa = "info@pcdays.cz"; // zmente na svoji adresu
$predmet = "Nastavte_svuj_predmet"; // zde nastavite co bude uvedeno v predmetu
$zprava = ("Jméno: " . $jmeno . "\n\n" . "Text: \n" . $txt . "\n\nOdesílatel: " . $email);
// odeslani emailu
mail($moje_adresa,$predmet,$zprava);

$oznameni= 'Zpráva byla odeslána';
}
    }
    unset($_SESSION['captcha']);
}
?>

<!DOCTYPE HTML>
<html>
<head>
<title>Formulář</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<div style="margin:20px ">
<form method="post">
<fieldset>
  <legend>Kontaktní formulář</legend>
<table>
	<tr><td colspan="2"><div style="width:300px;background:#ff99ff; margin-bottom:20px"><?php echo $oznameni; ?></div></td>
	<tr><td>Jméno:</td><td><input type="text" name="jmeno" /></td></tr>
    <tr><td>E-mail:</td><td><input type="email" name="email" /></td></tr>
    <tr><td>Zpráva:</td><td><textarea name="txt" cols="50" rows="5"></textarea></td></tr>
    <tr><td colspan="2"><b>Pro zabránění spamu opište prosím text z následujícího obrázku:</b></td></tr>
    <tr><td><input type="text" name="captcha" id="captcha-form" /></td><td><img src="captcha.php" id="captcha" /></td></tr>
    <tr><td colspan="2"><a href="#" onclick="document.getElementById('captcha').src='captcha.php?'+Math.random();
		document.getElementById('captcha-form').focus();"id="change-image">Je obrázek nečitelný? Zkuste jiný!</a></td></tr>
</table>
<input type="submit" value="Odeslat"/>
</fieldset>
</form>
</div>
</body>
</html>

Toto samotné vám ale vlastně k ničemu nebude. K plné funkčnosti totiž budete potřebovat také soubory, které se budou využívat k vytváření CAPTCHA.

Stáhněte si tedy proto raději celou složku s tímto kontaktním formulářem.

Stáhnout

Po stažení si budete muset v souboru index.php upravit na lince 17. vaši emailovou adresu a pak na 18. lince předmět zprávy, která vám bude na email zasílána.

Formulář vypadá takto: 

Kód na ověření proti spamu byl použit z: http://code.google.com/p/cool-php-captcha/

Written by:

Published on: 6.4.2012

Filled Under: Hlavní strana, Vývoj webu