Webmaster общности: Predpriemach.com | SearchEngines.bg

    Контакт форма + validation code

    Автор: akolevutd

    Здравейте. Това е контакт форма, която се състои от:

    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

    Оставете коментар