PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
zonder
Отправлено: 08 Июня, 2011 - 22:47:10
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Есть форма отправки сообщения
PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  5. <title>Untitled Document</title>
  6. </head>
  7.  
  8. <body>
  9. <form action="send_test.php" method="post">
  10.  
  11. <p>Введите имя:<br>
  12. <input type="text" name="name"></p>
  13. <p>Введите email:<br>
  14. <input type="text" name="email"></p>
  15. <p>Введите сообщение:<br>
  16. <textarea name="message" cols="40" rows="5" ></textarea>
  17. </p>
  18. <p>Ведите числа с картинки: <br>
  19. <input name="pr" style=" margin-bottom:11px" type="text" size="6" maxlength="4"></p>
  20. <p><input type="submit" class="bt1" value="Отправить сообщение"></p>
  21. </form>
  22. </body>
  23. </html>

и есть капча
PHP:
скопировать код в буфер обмена
  1. <?PHP session_start();
  2.  
  3.  $width = 165;
  4.  $height = 60;
  5.  $font_size = 18;
  6.  $let_amount = 6;
  7.  $fon_let_amount = 30;
  8.  $path_fonts = 'fonts/';
  9.  
  10.  
  11.  $letters = array('a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z','2','3','4','5','6','7','9');
  12.  $colors = array('10','30','50','70','90','110','130','150','170','190','210');
  13.  
  14.  $src = imagecreatetruecolor($width,$height);
  15.  $fon = imagecolorallocate($src,255,255,255);
  16.  imagefill($src,0,0,$fon);
  17.  
  18.  $fonts = array();
  19.  $dir=opendir($path_fonts);
  20.  while($fontName = readdir($dir))
  21.  {
  22.    if($fontName != "." && $fontName != "..")
  23.    {
  24.      $fonts[] = $fontName;
  25.    }
  26.  }
  27.  closedir($dir);
  28.  
  29.  for($i=0;$i<$fon_let_amount;$i++)
  30.  {
  31.    $color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);
  32.    $font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];
  33.    $letter = $letters[rand(0,sizeof($letters)-1)];
  34.    $size = rand($font_size-2,$font_size+2);
  35.    imagettftext($src,$size,rand(0,45),rand($width*0.1,$width-$width*0.1),rand($height*0.2,$height),$color,$font,$letter);
  36.  }
  37.  
  38.  for($i=0;$i<$let_amount;$i++)
  39.  {
  40.    $color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],$colors[rand(0,sizeof($colors)-1)],$colors[rand(0,sizeof($colors)-1)],rand(20,40));
  41.    $font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];
  42.    $letter = $letters[rand(0,sizeof($letters)-1)];
  43.    $size = rand($font_size*2.1-2,$font_size*2.1+2);
  44.    $x = ($i+1)*$font_size + rand(4,7);
  45.    $y = (($height*2)/3) + rand(0,5);
  46.    $cod[] = $letter;  
  47.    imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);
  48.  }
  49.  
  50.  $_SESSION['secpic'] = implode('',$cod);
  51.  
  52.  header ("Content-type: image/gif");
  53.  imagegif($src);
  54. ?>
Как мне их вместе связать? Очень надо. Просьба не советовать другие капчи. Спасибо.
 
 Top
OrmaJever Модератор
Отправлено: 08 Июня, 2011 - 22:55:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 7551
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Ну если капча работает то создать картинку img со сылкой на это php файл и текстовове поле для вода значения, затем сравнивать значение этого поля с $_SESSION['secpic']


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zonder
Отправлено: 09 Июня, 2011 - 10:14:18
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




тоисть так
PHP:
скопировать код в буфер обмена
  1. <p>Введите имя:<br>
  2. <input type="text" name="name"></p>
  3. <p>Введите email:<br>
  4. <input type="text" name="email"></p>
  5. <p>Введите сообщение:<br>
  6. <textarea name="message" cols="40" rows="5" ></textarea>
  7. </p>
  8. <p>Введите числа с картинки: <br>
  9. <p><img src="captcha.php">
  10. <input name="pr" style=" margin-bottom:11px" type="text" size="6" maxlength="4"></p>
  11. <p><input type="submit" class="bt1" value="Отправить сообщение"></p>
  12. </form>
  13. </body>
  14. </html>
"pr" - поле "bt1"- кнопка. потом сравниваем и куда его вставлять в capcha.php?? И что я не так делаю?
 
 Top
Viper
Отправлено: 09 Июня, 2011 - 11:25:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 4565
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




zonder вставлять в то место где у вас проверка правильности введенных символов с капчи


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
zonder
Отправлено: 09 Июня, 2011 - 22:04:37
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




вот у меня теперь форма
PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  5. <title>Untitled Document</title>
  6. </head>
  7.  
  8. <body>
  9. <form action="send_test.php" method="post">
  10.  
  11. <p>Введите имя:<br>
  12. <input type="text" name="name"></p>
  13. <p>Введите email:<br>
  14. <input type="text" name="email"></p>
  15. <p>Введите сообщение:<br>
  16. <textarea name="message" cols="40" rows="5" ></textarea>
  17. </p>
  18. <p>Введите числа с картинки: <br>
  19. <p><img src="secpic.php"></p>
  20. <input name="pr" style=" margin-bottom:11px" type="text" size="6" maxlength="4"></p>
  21. <p><input type="submit" class="bt1" value="Отправить сообщение"></p>
  22. </form>
  23. </body>
  24. </html>


с капчей все нормально и теперь файл проверки
PHP:
скопировать код в буфер обмена
  1. <?PHP session_start();
  2.  
  3. if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
  4. if (isset($_POST['email'])) {$email = $_POST['email']; if ($email == '') {unset($email);}}
  5. if (isset($_POST['message'])) {$message = $_POST['message']; if ($message == '') {unset($message);}}
  6. if (isset($_POST['pr'])){$pr = $_POST['pr']; if ($pr == '') {unset($pr);}}
  7.  
  8. if (isset($name) && isset($email) && isset($message) && isset($pr))
  9. {
  10.  
  11. $name = htmlspecialchars(trim($name));
  12. $email = htmlspecialchars(trim($email));
  13. $message = htmlspecialchars(trim($message));
  14.  
  15. if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
  16. {
  17. echo "<p>e-mail</p>";
  18. }
  19.   if ($_POST['pr']==$_SESSION['secpic'])
  20.   {
  21.    echo "<p>True</p>"
  22.   }
  23. }
  24. ?>

в форме все с картинкой тоже нормально генерирует и вот ошибка при всей заполненой форме что викидает денвер Parse error: syntax error, unexpected '}', expecting ',' or ';' in Y:\home\1.ru\www\send_test.php on line 21
 
 Top
OrmaJever Модератор
Отправлено: 09 Июня, 2011 - 22:45:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7551
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




zonder пишет:
echo "<p>True</p>"

может в конце точка с запятой должна быть?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
zonder
Отправлено: 09 Июня, 2011 - 22:51:48
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




тфу во ето я затупил.... спасиб после длительного програмирования забил поставить точку с запетой
 
 Top
OrmaJever Модератор
Отправлено: 09 Июня, 2011 - 22:57:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 7551
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Мы все что-то забываем, нужно уметь читать ошибки Подмигивание


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB