Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Антиспам. Не могу настроить, не отображаются рисунки 
:(
    Опции темы
ks412
Дата 5.2.2012, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.2.2012

Репутация: нет
Всего: нет



Доброго времени суток. Я новичек в РНР так что не судите строго. нашел скрипты на анти спам. картинки генерятся но не отображаються в место них просто квадратики.

Вот код:

Обработчик формы и сама форма. contact.php


Код




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>PHP Contact Form with JQuery Validation</title>
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
 <script src="jquery.min.js" type="text/javascript"></script>
 <script src="jquery.min.js" type="text/javascript"></script>
      <script src="jquery.validate.pack.js" type="text/javascript"></script>
<script type="text/javascript">
      $(document).ready(function(){
      $("#contactform").validate();
      });
  </script> 
 <style type="text/css">
 
 body {
    font-family:Arial, Tahoma, sans-serif;
}
#contact-wrapper {
    width:430px;
    border:3px ridge #e2e2e2;
    background:#FCF8ED;
    padding:20px;
    margin:auto auto;
}
#contact-wrapper div {
    clear:both;
    margin:1em 0;
}
#contact-wrapper label {
    display:block;
    float:none;
    font-size:16px;
    width:auto;
}
form#contactform input {
    border-color:#B7B7B7 #E8E8E8 #E8E8E8 #B7B7B7;
    border-style:double;
    border-width:2px;
    padding:5px;
    font-size:16px;
    color:#333;
}
form#contactform textarea {
    font-family:Arial, Tahoma, Helvetica, sans-serif;
    font-size:100%;
    padding:0.6em 0.5em 0.7em;
    border-color:#B7B7B7 #E8E8E8 #E8E8E8 #B7B7B7;
    border-style:dotted;
    border-width:1px;
}
 
 </style>
 </head>

 <body>
<?php
  //Если форма отправлена
  if(isset($_POST['submit'])) {
 //Проверка Поля ИМЯ
  if(trim($_POST['contactname']) == '') {
  $hasError = true;
  } else {
  $name = trim($_POST['contactname']);
  }
 //Проверка поля ТЕМА
  if(trim($_POST['subject']) == '') {
  $hasError = true;
  } else {
  $subject = trim($_POST['subject']);
  }
  
   //Проверка правильности ввода EMAIL
  if(trim($_POST['email']) == '')  {
  $hasError = true;
  } else if  (!preg_match("/^[a-z0-9_-]{1,20}@(([a-z0-9-]+\.)+(com|net|org|mil|".
  "edu|gov|arpa|info|biz|inc|name|[a-z]{2,4})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
  "9]{1,3}\.[0-9]{1,3})$/is", trim($_POST['email']))) {
  $hasError = true;
  } else {
  $email = trim($_POST['email']);
  }
  
 
 //Проверка наличия ТЕКСТА сообщения
  if(trim($_POST['message']) == '') {
  $hasError = true;
  } else {
  if(function_exists('stripslashes')) {
  $comments = stripslashes(trim($_POST['message']));
  } else {
  $comments = trim($_POST['message']);
  }
  }
 //Если ошибок нет, отправить email
  if(!isset($hasError)) {
  $emailTo = '[email protected]'; //Сюда введите Ваш email
  $body = "Name: $name \n\nEmail: $email \n\nSubject: $subject \n\nComments:\n $comments";
  $headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
 mail($emailTo, $subject, $body, $headers);
  $emailSent = true;
  }
 }
  ?>
 
 
      <div id="contact-wrapper">
  <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="contactform">
<div>
 
<label for="name"><strong></strong></label>
<input type="text" size="50" name="contactname" required placeholder="Введите Ваше имя" id="contactname" value="" class="required" />
</div>
 <div>
  <label for="email"><strong></strong></label>
  <input type="text" size="50" name="email" id="email" required placeholder="Введите Ваш E-mail" value="" class="required email" />
  </div>
 <div>
  <label for="subject"><strong></strong></label>
  <input type="text" size="50" name="subject" id="subject" required placeholder="Введите тему сообщения" value="" class="required" />
  </div>
 <div>
  <label for="message"><strong></strong></label>
  <textarea rows="5" cols="50" name="message" id="message" required placeholder="Введите текст сообщения" class="required"></textarea>
  </div>
  <img src='./image.php' height="30" width="130" border="1" alt="Проверочное число">
<input id="dw2jsksj34" type="text" autocomplete="off" name="code" style="font-size:18px;padding:5px;width:80px;font-weight:bold;" size="5" maxlength="5">
<input type="hidden" name="seckey" value="8273629570796254145">
  <input type="submit" value="Отправить" name="submit" />
  </form>
  </div>
  </body>
  </html>





генератор картинки image.php


Код





<?php 
function img_gen($rnd){ 
... 
//генерация картинки 
... 
return($img); 
}; 
session_start(); 
$id = session_id(); 
for($i='12';$i>0;$i--){ 
//$i - длина контрольного числа 
$rnd .= round((rand(0,9)*10),0); 

$_SESSION['img_rnd'] = $rnd; 
$img = img_gen($rnd); 
imagejpeg($img); 
imagedestroy($img); 
?>



Форма выводиться на страницу кодом <?php include("sendmail/contact.php"); ?>
Но это еще не все. Есть форма, обработчик формы и генератор картинок. Но насколько я понимаю нужен обработчик введеных данных с картинки? Подскажите плиз код. 

Это сообщение отредактировал(а) ks412 - 5.2.2012, 00:46
PM MAIL   Вверх
netgor
Дата 8.2.2012, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.2.2012

Репутация: нет
Всего: нет



У меня тоже квадратики и никак не получается исправить. Буду рада подсказке.
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 9.2.2012, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



я предложу свой вариант, вдруг пригодится

сам файл (я сделал отображение формы и проверку кода в одном файле чтоб нагляднее)
Код

<?php
session_start();

$code = (isset($_REQUEST['code'])) ? $_REQUEST['code'] : '';
if ($code == $_SESSION['securityCode']) {
    ?>
    <h1>УРА!!! Вы ввели правильный код</h1>
    <?php
} else {
    ?>
    <div id="divform">
        <form method="post">
            <img src="code.php" />
            <br>Введите проверочный код:
            <input id="code" size="4" type="text" name="code">
            <br><input type="submit" id="formfb" value="Отправить"/>
        </form>
    </div>
    <?php
}



ну и сам код картинки.. Мне он нравится из-за возможности простой настройки под любые нужды
Код

<?php
 //Возможные форматы: GIF, JPEG, PNG
$C_IMAGE_TYPE = 'PNG';
 //Ширина изображения
$C_WIDTH = 100;
 //Высота изображения
$C_HEIGHT = 60;
 //Количество символов, которые нужно набрать
$C_NUM_GENSIGN = 5;
 //Путь к шрифтам
$path_fonts = 'fonts/';
 // размер шришта (чем больше значение, тем меньше шрифт)
$C_FONT_SIZE = 6;
 // количество мусора (чем больше значение, тем меньше количество)
$C_NUM_SIGN = 20;
// Набор символов
$LETTERS = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'a', 'b', 'c', 'd', 'e', 'f');

$EXT = strtoupper($_GET['ext']);
if ($EXT == 'GIF' || $EXT == 'JPEG' || $EXT == 'PNG') $C_IMAGE_TYPE = $EXT;
if (is_numeric($_GET['width']) && $_GET['width'] > 100 && $_GET['width'] < 500) $C_WIDTH = $_GET['width'];
if (is_numeric($_GET['height']) && $_GET['height'] > 100 && $_GET['height'] < 500) $C_HEIGHT = $_GET['height'];
if (is_numeric($_GET['qty']) && $_GET['qty'] > 2 && $_GET['qty'] < 10) $C_NUM_GENSIGN = $_GET['qty'];

$C_FONT_SIZE = intval($C_HEIGHT / (($C_HEIGHT / $C_WIDTH) * $C_FONT_SIZE));
$C_NUM_SIGN = intval(($C_WIDTH * $C_HEIGHT) / ($C_NUM_SIGN * 10));

$CODE = array();
$FIGURES = array('50', '70', '90', '110', '130', '150', '170', '190', '210');

$src = imagecreatetruecolor($C_WIDTH, $C_HEIGHT);

$fon = imagecolorallocate($src, 255, 255, 255);
imagefill($src, 0, 0, $fon);

$FONTS = array();
$dir = opendir($path_fonts);
while ($fontName = readdir($dir)) {
    if ($fontName != "." && $fontName != "..") {
        if (strtolower(strrchr($fontName, '.')) == '.ttf') $FONTS[] = $path_fonts . $fontName;
    }
}
closedir($dir);

if (sizeof($FONTS) > 0) {
    for ($i = 0; $i < $C_NUM_SIGN; $i++) {
        $h = 1;
        $color = imagecolorallocatealpha($src, rand(0, 255), rand(0, 255), rand(0, 255), 105);
        $font = $FONTS[rand(0, sizeof($FONTS) - 1)];
        $letter = $LETTERS[rand(0, sizeof($LETTERS) - 1)];
        $size = rand($C_FONT_SIZE - 2, $C_FONT_SIZE + 2);
        $angle = rand(0, 60);
        if ($h == rand(1, 2)) $angle = rand(360, 300);
        imagettftext($src, $size, $angle, rand($C_WIDTH * 0.1, $C_WIDTH - $C_WIDTH * 0.1), rand($C_HEIGHT * 0.2, $C_HEIGHT), $color, $font, $letter);
    }

    for ($i = 0; $i < $C_NUM_GENSIGN; $i++) {
        $h = 1;
        $color = imagecolorallocatealpha($src, $FIGURES[rand(0, sizeof($FIGURES) - 1)], $FIGURES[rand(0, sizeof($FIGURES) - 1)], $FIGURES[rand(0, sizeof($FIGURES) - 1)], rand(10, 30));
        $font = $FONTS[rand(0, sizeof($FONTS) - 1)];
        $letter = $LETTERS[rand(0, sizeof($LETTERS) - 1)];
        $size = rand($C_FONT_SIZE * 2.1 - 1, $C_FONT_SIZE * 2.1 + 1);
        $x = (empty($x)) ? $C_WIDTH * 0.08 : $x + ($C_WIDTH * 0.8) / $C_NUM_GENSIGN + rand(0, $C_WIDTH * 0.01);
        $y = ($h == rand(1, 2)) ? (($C_HEIGHT * 1.15 * 3) / 4) + rand(0, $C_HEIGHT * 0.02) : (($C_HEIGHT * 1.15 * 3) / 4) - rand(0, $C_HEIGHT * 0.02);
        $angle = rand(5, 20);
        $CODE[] = $letter;
        if ($h == rand(0, 10)) $letter = strtoupper($letter);
        if ($h == rand(1, 2)) $angle = rand(355, 340);
        imagettftext($src, $size, $angle, $x, $y, $color, $font, $letter);
    }

} else {
    for ($x = 0; $x < $C_WIDTH; $x++) {
        for ($i = 0; $i < ($C_HEIGHT * $C_WIDTH) / 1000; $i++) {
            $color = imagecolorallocatealpha($src, $FIGURES[rand(0, sizeof($FIGURES) - 1)], $FIGURES[rand(0, sizeof($FIGURES) - 1)], $FIGURES[rand(0, sizeof($FIGURES) - 1)], rand(10, 30));
            imagesetpixel($src, rand(0, $C_WIDTH), rand(0, $C_HEIGHT), $color);
        }
    }
    unset($x, $y);
    for ($i = 0; $i < $C_NUM_GENSIGN; $i++) {
        $h = 1;
        $color = imagecolorallocatealpha($src, $FIGURES[rand(0, sizeof($FIGURES) - 1)], $FIGURES[rand(0, sizeof($FIGURES) - 1)], $FIGURES[rand(0, sizeof($FIGURES) - 1)], rand(10, 30));
        $letter = $LETTERS[rand(0, sizeof($LETTERS) - 1)];
        $x = (empty($x)) ? $C_WIDTH * 0.08 : $x + ($C_WIDTH * 0.8) / $C_NUM_GENSIGN + rand(0, $C_WIDTH * 0.01);
        $y = ($h == rand(1, 2)) ? (($C_HEIGHT * 1) / 4) + rand(0, $C_HEIGHT * 0.1) : (($C_HEIGHT * 1) / 4) - rand(0, $C_HEIGHT * 0.1);
        $CODE[] = $letter;
        if ($h == rand(0, 10)) $letter = strtoupper($letter);
        imagestring($src, 5, $x, $y, $letter, $color);
    }
}
session_start();
$_SESSION['securityCode'] = implode('', $CODE);

if ($C_IMAGE_TYPE == 'PNG') {
    header("Content-type: image/png");
    imagepng($src);
} elseif ($C_IMAGE_TYPE == 'JPEG') {
    header("Content-type: image/jpeg");
    imagejpeg($src);
} else {
    header("Content-type: image/gif");
    imagegif($src);
}
imagedestroy($src);


Там есть папочка куда нужно кинуть свои шрифты


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
krundetz
Дата 9.2.2012, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(ks412 @  5.2.2012,  00:44 Найти цитируемый пост)
src='./image.php'

у вас пусть до картинки неправильный видимо


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.