Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
kuhulin
0 / 0 / 0
Регистрация: 06.06.2014
Сообщений: 2
1

Электронная форма с captcha

06.06.2014, 10:32. Просмотров 514. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста! Скачал Электронную форму(обратная связь) c завязкой Jquery и Ajax, приделал к ней капчу и написал простенький php-код для отправки писем. Но теперь не получается сделать проверку капчей, все мои танцы с бубнами не увенчались успехом. Помогите пожалуйста!
PHPHTML
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
 
 
var messageDelay = 2000;  // How long to display status messages (in milliseconds)
 
// Init the form once the document is ready
$( init );
 
// Инициализация формы
 
function init() {
 
  // Скрыть форму изначально.
  // Сделать SubmitForm () представителем обработчика формы.
  //Расположите форму таким образом, что бы она находилась в центре окна браузера.
 
  $('#contactForm').hide().submit( submitForm ).addClass( 'positioned' );
 
  // Когда "Отправьте нам письмо" нажатия на ссылку::
  // 1. Fade the content out
  // 2. Форма дисплея 
  // 3. Переместить фокус на первом поле
  // 4. Prevent the link being followed
 
  $('a[href="#contactForm"]').click( function() {
    $('#content').fadeTo( 'slow', .2 );
    $('#contactForm').fadeIn( 'slow', function() {
      $('#senderName').focus();
    } )
 
    return false;
  } );
  
  // Когда "Cancel" и нажатии на кнопку закрыть форму
  $('#cancel').click( function() { 
    $('#contactForm').fadeOut();
    $('#content').fadeTo( 'slow', 1 );
  } );  
 
  // При нажатии на клавишу "Escape", закрыть форму
  $('#contactForm').keydown( function( event ) {
    if ( event.which == 27 ) {
      $('#contactForm').fadeOut();
      $('#content').fadeTo( 'slow', 1 );
    }
  } );
 
}
 
// Отправить форму с помощью Ajax
 
function submitForm() {
  var contactForm = $(this);
 
  // Если все поля заполнены
 
  if ( !$('#senderName').val() ||  !$('#phone').val() || !$('#marka').val() || !$('#message').val() ) {
 
    // Дисплей предупреждающее сообщение и вернуться к форме
 
    $('#incompleteMessage').fadeIn().delay(messageDelay).fadeOut();
    contactForm.fadeOut().delay(messageDelay).fadeIn();
 
  } else {
 
    // Да; узнайте в PHP скрипта через Ajax
 
    $('#sendingMessage').fadeIn();
    contactForm.fadeOut();
 
    $.ajax( {
      url: contactForm.attr( 'action' ) + "?ajax=true",
      type: contactForm.attr( 'method' ),
      data: contactForm.serialize(),
      success: submitFinished
    } );
  }
 
  // Предотвратить дефолт отправки формы,
  return false;
}
 
//Ручка ответ Ajax
 
function submitFinished( response ) {
  response = $.trim( response );
  $('#sendingMessage').fadeOut();
 
  if ( response == "success" ) {
 
    // Форма успешно отправлена
     // 1. Отображение сообщение об успешном
     // 2. Очистите поля формы
 
    $('#successMessage').fadeIn().delay(messageDelay).fadeOut();
    $('#senderName').val( "" );
    $('#senderEmail').val( "" );
    $('#phone').val( "" );
    $('#marka').val( "" );
    $('#message').val( "" );
 
    $('#content').delay(messageDelay+500).fadeTo( 'slow', 1 );
 
  } else {
 
    // Форма представления не удалось: отображается сообщение об ошибке,
    //Затем снова выводим форму 
 
$('#contactForm').delay(messageDelay+500).fadeIn();
  }
}
</script>
 
 <title>Avt</title>
</head>
<body>
 
<?php
 if (isset($_POST['submit'])) {
  $sender_Name = $_POST['senderName'];
  $sender_Email = $_POST['senderEmail'];
  $phone_namber = $_POST['phone'];
  $marka_avto = $_POST['marka'];
  $message_email = $_POST['message'];
  $tel = "Телефон:"; $str = iconv('cp1251', 'utf-8', $tel); 
  $eml = "Электронная почта:"; $svr = iconv('cp1251', 'utf-8', $eml); 
  $m_av = "Марка автомобиля:"; $mavt = iconv('cp1251', 'utf-8', $m_av);
  $wo_rk = "Что нужно сделать:"; $work = iconv('cp1251', 'utf-8', $wo_rk);
 
  $email = 'arty21.ru';
  $to = 'Avtoclub-Kazan@arty21.ru';
  $subject = 'Заказ';
  $msg = "$sender_Name  $svr $sender_Email.\n" .
    "$str $phone_namber\n" .
    "$mavt $marka_avto\n" .
    "$work $message_email";
    
     $user_pass_phrase = sha1($_POST['verify']);
        if($_SESSION['pass_phrase'] == $user_pass_phrase) echo "NO";
else echo "YES";
       
        $headers= "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/plain; charset=UTF-8\r\n";
        $headers .= "From:".$email."\n\r";
        mail($to, $subject, $msg, $headers);
};
 
?>
<div id="botton">
<a href="#contactForm" class="botton-font">Запись Автосервис</a> 
</div>
 
<form id="contactForm" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 
 
<h2>Шлите нам весточку</h2>
  <ul>
    <li>
      <label for="senderName">Ваше Имя</label>
      <input type="text" name="senderName" id="senderName" class="sender" placeholder="Пожалуйста введите свое имя" required="required" maxlength="40" />
    </li>
    <li>
      <label for="senderEmail">Ваш электронный адрес</label>
      <input type="email" name="senderEmail" id="senderEmail" class="sender" placeholder="Пожалуйста введите свой электронный адрес"  maxlength="50" />
    </li>    
     <li>
      <label for="phone">Ваш телефон</label>
      <input type="number" name="phone" id="phone" class="sender" placeholder="Пожалуйста введите свой телефон" required="required" maxlength="20" />
    </li>    
    <li>
      <label for="marka">Марка и Модель А/М</label>
      <input type="text" name="marka" id="marka" class="sender" placeholder="Пожалуйста введите марку и модель авто" required="required" maxlength="200" />
    </li>
    <li>
      <label for="message" style="padding-top: .5em;">Что сделать?</label>
      <textarea name="message" id="message" placeholder="Введите свою информацию о том что надо сделать" required="required" cols="80" rows="10" maxlength="10000"></textarea>
    </li>
    <li>
    <label for="verify">Проверка:</label>
    <input type="text" id="verify" name="verify"  placeholder="Введите фразу"  /> <img src="captcha.php" alt="Verification pass-phrase" />
     </li>   
  </ul>
  <div id="formButtons">
    <input type="submit" id="sendMessage" name="sendMessage" value="Отправить" />
    <input type="button" id="cancel" name="cancel" value="Отменить" />
  </div>
</form>
 
<div id="sendingMessage" class="statusMessage"><p>Отправка сообщения. Пожалуйста, подождите...</p></div>
<div id="successMessage" class="statusMessage"><p>Спасибо за отправленное нам сообщение! Мы свяжемся с Вами в ближайшее время.</p></div>
<div id="failureMessage" class="statusMessage"><p>Существует проблема отправки сообщения. Пожалуйста, попробуйте еще раз.</p></div>
<div id="incompleteMessage" class="statusMessage"><p>Пожалуйста, заполните все поля формы перед отправкой.</p></div>
код капчи:
PHP
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
<?php
  session_start();
header("Content-type: image/png");
 
  // Set some important CAPTCHA constants
  define('CAPTCHA_NUMCHARS', 6);  // number of characters in pass-phrase
  define('CAPTCHA_WIDTH', 100);   // width of image
  define('CAPTCHA_HEIGHT', 25);   // height of image
 
  // Generate the random pass-phrase
  $pass_phrase = "";
  for ($i = 0; $i < CAPTCHA_NUMCHARS; $i++) {    $pass_phrase .= chr(rand(97, 122));  }
 
  // Store the encrypted pass-phrase in a session variable
  $_SESSION['pass_phrase'] = sha1($pass_phrase);
 
  // Create the image  
$img = imagecreatetruecolor(CAPTCHA_WIDTH, CAPTCHA_HEIGHT); 
 // Set a white background with black text and gray graphics  
$bg_color = imagecolorallocate($img, 255, 255, 255);     // white  
$text_color = imagecolorallocate($img, 0, 0, 0);         // black  
$graphic_color = imagecolorallocate($img, 64, 64, 64);   // dark gray
 
  // Fill the background
  imagefilledrectangle($img, 0, 0, CAPTCHA_WIDTH, CAPTCHA_HEIGHT, $bg_color);
  // Draw some random lines
  for ($i = 0; $i < 5; $i++) {
    imageline($img, 0, rand() % CAPTCHA_HEIGHT, CAPTCHA_WIDTH, rand() % CAPTCHA_HEIGHT, $graphic_color);
  }
 
  // Sprinkle in some random dots
  for ($i = 0; $i < 50; $i++) {
    imagesetpixel($img, rand() % CAPTCHA_WIDTH, rand() % CAPTCHA_HEIGHT, $graphic_color);
  }
  // Draw the pass-phrase string
  imagettftext($img, 18, 0, 5, CAPTCHA_HEIGHT - 5, $text_color, 'courbd.ttf', $pass_phrase);
 
  // Output the image as a PNG using a header 
 header("Content-type: image/png");  
imagepng($img);
 
  // Clean up
  imagedestroy($img);
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2014, 10:32
Ответы с готовыми решениями:

CAPTCHA
Посмотрите пожалуйста в чем может быть ошибка, создание каптчи 1. noise-picture.php &lt;?php...

Captcha
Не получается реализовать проверку с помощью kcaptcha. reg.php &lt;html&gt; &lt;?php...

Captcha
Нашел скрипт в интернете по созданию каптчи. Есть ли замечания по нему? Что можно изменить, что...

Sweet captcha
sweet captcha надежная ли ?Могли бы подсказать примерно такие же капчи?

Всплывающий captcha
Добрый вечер. Как можно сделать чтобы при несколько неудачной попытки войти на сайт (введя логин и...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 10:32

Поиск captcha
Здравствуйте, ещё вот такаю captcha, может и это глупый вопрос но она понравилась.

Проверка captcha
Есть форма с генерирующейся каптчей и самой банальной проверкой session_start(); $result;...

Captcha и Wordpress
Добрый день, уже довольно долго мучаюсь со вставкой капчи на сайт на движке wordpress. Есть некая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru