Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с скриптом генерации картинки (защита от спама)
 
 автор: Ruler   (18.11.2007 в 03:21)   письмо автору
 
 

Предположем есть скрипт на странице index.php:
где generimg.php генерирует изображение, но это работает.
Далее,

<form action="add.php" method="post">
    <p><img src="generimg.php" border="0" width=100 height=40></p>
    <p><input type="text" name="mail"></p>
    <p><input type="text" name="code"></p>
    <p><input type="submit" name="send"></p>
</form>
//функция генерирующая код
function generate()
{
    $hours = substr(date("H"), 0 , 1);         
    $minuts = substr(date("i"), 0 , 1); 
    $year_day = substr(date("z"), 0 , 1);              
    $sec = substr(date("s"), 0 , 1);    
 
    $str = $hours . $minuts . $year_day . $sec;
    $array_mix = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); 
    srand ((float)microtime()*1000000); 
    shuffle ($array_mix); 
    return implode("", $array_mix); 
}
 
function chec_code($code)
{
    $code = trim($code);
 
    $array_mix = preg_split ('//', generate(), -1, PREG_SPLIT_NO_EMPTY);
    $m_code = preg_split ('//', $code, -1, PREG_SPLIT_NO_EMPTY);
 
    $result = array_intersect ($array_mix, $m_code);
if (strlen(generate())!=strlen($code))

    return FALSE;

if (sizeof($result) == sizeof($array_mix))
{
    return TRUE;
}
else
{
    return FALSE;
}
}

if (isset($_POST['code']))
{
if (chec_code($_POST['code'])) link ("Код введен не верно");
}

  function link($msg)
  {
    echo '<body bgcolor=#FBEDD><br><br>
    <table border=0 width=80% align=center cellspacing=1 cellpadding=1  bgcolor=#74a18e>
    <tr>
        <td bgcolor=#D7ECC1>
    <p class=panelotp><b>'.$msg.'</b><br>Поля отмеченые <font color=red>*</font> обязательны для заполнения!</p>    
    <p class=panelotp><a href=# onClick="history.back()" class=link1>Вернуться к заполнению формы</a></p>
    <p class=panelotp><a href=../index.html class=link1>На главную</a></p>
        <td>
    </tr>
    </table>
    </body>';
    exit();
    }


Так вроде все работает.
Задача состоит в том что нужно сделать так чтобы при отправление формы методом POST на страницу add.php все это работало.
Вобщем как сделать так чтобы функция generate была на странице index.php, а все остальные функции и проверка кода были на странице add.php и все это дело работало?

   
 
 автор: DEM   (18.11.2007 в 11:18)   письмо автору
 
   для: Ruler   (18.11.2007 в 03:21)
 

Создайте hidden-поле и туда поместите тоже код который на картинке... ну или пусть он хранится в сессии

   
 
 автор: Ruler   (18.11.2007 в 15:36)   письмо автору
 
   для: DEM   (18.11.2007 в 11:18)
 

Извени конечно может я чего то не доганяю, но я не совсем представляю как можно функцию generate() поместить в поле hidden.
Если это возможно не льзя ли по подробнее...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования