Контакт форма + validation code
Здравейте. Това е контакт форма, която се състои от:
1. Причина за съобщението
2. Вашето име
3. Вашият е-мейл
4. Вашият телефон
5. Вашето съобщение
6. Потвърдителен код
На полетата има проверка дали са празни.

Първо създаваме формата:


<form style="text-align: center;" action="линк към пращащия файл " method="post">

<p class="text">Причина за съобщението:<br />
<select name="caus" class="caus">
<option>Поръчка</option>
<option>Препоръка</option>
<option>Критика</option>
<option>Друго</option>
</select>
<br />
<br />

Вашето име:<br />
<input name="subject" type="text" class="inputs" value="<?php echo $_GET['subject'];?>" />
<br />
<br />

Вашият е-мейл:<br />
<input name="from" type="text" class="inputs" value="<?php echo $_GET['from'];?>" />
<br />
<br />

Вашият телефон:<br />
<input name="tel" type="text" class="inputs" value="<?php echo $_GET['tel'];?>" />
<br />
<br />

Вашето съобщение:<br />
<textarea name="message" class="message" rows="10" cols="25"><?php echo $_GET['message'];?></textarea>
<br />
<br />

Потвърдителен код:<br />
<input name="verif_box" type="text" class="validation" />
<img src="линк към валидиращия файл?<?php echo rand(0,9999);?>" alt="" width="50" height="24" style="text-align: absbottom;" /><br />
<br />
<br />

<?php if(isset($_GET['wrong_code'])){?>
<div class="wrong_validation">
Грешен код!</div><br />
<?php ;}?>

<input name="reset" type="reset" class="button" value="Изчисти"/>

<input name="Submit" type="submit" class="button" value="Изпрати"/></p>

</form>


После следва файла, който праща информацията:

<?php

$caus = $_REQUEST["caus"];
$subject = $_REQUEST["subject"];
$message = $_REQUEST["message"];
$from = $_REQUEST["from"];
$tel = $_REQUEST["tel"];
$verif_box = $_REQUEST["verif_box"];


$message = stripslashes($message);
$subject = stripslashes($subject);
$from = stripslashes($from);
$tel = stripslashes($tel);
$caus = stripslashes($caus);

if (!$subject)

{

echo "Моля, върнете се и въведете име . <a href=\"javascript:history.go(-1);\"><< Обратно</a>
";
exit;
}
else
{

if (!eregi("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $from))

{

print (" E-mail $from не е валиден! <a href=\"javascript:history.go(-1);\"><< Обратно </a>
");
exit;
}
else
{

if (!$tel)

{

echo "Моля, върнете се и въведете телефон . <a href=\"javascript:history.go(-1);\"><< Обратно</a>
";
exit;
}
else
{

if (!$message)

{

echo "Моля, върнете се и въведете съобщение . <a href=\"javascript:history.go(-1);\"><< Обратно</a>
";
exit;
}
else
{

if (!$verif_box)

{

echo "Моля, върнете се и въведете пътвърдителен код. <a href=\"javascript:history.go(-1);\"><< Обратно</a>
";
exit;
}

else
{


if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){

mail("profistroi@yahoo.com", 'Online Form: '.$subject, "-> От:\n".$subject."\n\n"."-> Причина за съобщението:\n".$caus."\n\n"."->Телефон:\n".$tel."\n\n"."-> Съобщение:\n".$message, "From: $from");

setcookie('tntcon','');
} else {

header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&tel=$tel&wrong_code=true");
exit; } } } } } }
?>


И накрая остава да генерираме изображението за валидиращия код:

<?php

header('Content-type: image/jpeg');

$width = 50;
$height = 24;

$my_image = imagecreatetruecolor($width, $height);

imagefill($my_image, 0, 0, 0xFFFFFF);

for ($c = 0; $c < 40; $c++){
$x = rand(0,$width-1);
$y = rand(0,$height-1);
imagesetpixel($my_image, $x, $y, 0x000000);
}

$x = rand(1,10);
$y = rand(1,10);

$rand_string = rand(1000,9999);
imagestring($my_image, 5, $x, $y, $rand_string, 0x000000);

setcookie('tntcon',(md5($rand_string).'a4xn'));

imagejpeg($my_image);
imagedestroy($my_image);
?>


Нека да приложим и малко стил:

.inputs {
padding: 2px;
border: 1px solid #ccc;
width: 300px;
height: 16px;
}

.caus {
padding: 2px;
border: 1px solid #ccc;
width: 305px;
height: 22px;
}

.validation {
padding: 2px;
border: 1px solid #ccc;
width: 250px;
height: 16px;
}

.wrong_validation {
border: 1px solid #990000;
background-color: #D70000;
color: #FFFFFF;
padding:4px;
padding-left: 6px;
width: 295px;
margin: 0 auto;
text-align: center;
}

.message {
padding: 2px;
border: 1px solid #ccc;
width: 300px;
height: 100px;
}

.button {
margin: 0 0 0 59px;
display: inline;
border: 1px solid #ccc;
width: 120px;
height: 22px;
padding: 0 2px 2px 2px;
line-height: 14px;
background-color: #EFEFEF;
float: left;
}

a:link, a:visited {
font-family: Verdana, Arial;
font-size: 11px;
color: #000;
text-decoration: underline;
}

a:hover {
text-decoration: none;
}


В емейла ви ще излезе така информацията:

-> От:
Александър Колев

-> Причина за съобщението:
Поръчка

->Телефон:
+359 976***

-> Съобщение:
Lorem ipsum
Suspendisse condimentum pede in diam. Nunc sodales tempus diam.
Phasellus tristique. Fusce cursus orci ut lacus. Nunc sit amet odio. Proin
porta convallis risus








/ Трябва да сте регистриран за да напишете коментар /
От: E398
19:14 10-10-2009
Нещо тази валидация никаква работа не върши ?
От: kompira
15:40 03-11-2009
много е добра формата и работи :)
От: SeCuRiTy
14:00 10-01-2010
При мен го направих настроих но не изпраща
От: luckyme
10:44 02-06-2010
линк към изпращащия файл кво ще рече направиго готов само да заместим датабазите и да го пробваме
От: magnuma84
23:16 12-06-2010
Към SeCuRiTy: Ами няма как да изпраща ако тестваш формата от вкъщи. По принцип за да се изпраща e-mail от такава форма трябва хостинга да има Mail Server. И аз така в началото се чудех защо не изпраща, но после го научих това. Така че се поинтересувай и ще разбереш за какво ти говоря.
От: winers
8:22 19-11-2010
Някой има ли демо ?
От: zdark
23:03 19-03-2011
http://cs-bg.eu/contact.php леко е модната
От: ivcho02
12:01 22-04-2011
демо
1