Контакт форма + validation code
Автор: akolevutd
Здравейте. Това е контакт форма, която се състои от:
- Причина за съобщението
- Вашето име
- Вашият е-мейл
- Вашият телефон
- Вашето съобщение
- Потвърдителен код
На полетата има проверка дали са празни.
Първо създаваме формата:
<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

