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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как установить капчу (SoftTime FrameWork)

Сообщения:  [1-4] 

 
 автор: cheops   (28.02.2011 в 17:57)   письмо автору
228.1 Кб
 
   для: sevidi   (28.02.2011 в 16:59)
 

Для работы капчи необходимо, чтобы на страницах, где она используется была инициализирована сессия, так как код, передается через неё. Во вложении находится скрипт protect.php - генерирующий капчу, папка со шрифтами fonts, нужная для работы protect.php, файл include/include.protect.php который генерирует код и помещает его в сессию при первом обращении к форме. В папке class/class.field.image.php находится класс капчи (его нужно прописать наряду с другими классами в config/class.config.php), кроме того, чтобы он успешно работал, необходимо, в классе class.forms.php добавить case-обработчик, что-то вроде
<?php
            
case "image":
              
// Кнопка-изображение
              
$result .= "<tr>
                      <td width='120' nowrap='nowrap' class='fst' valign='top'>&nbsp;</td>
                      <td valign='top' class='snd'>
                        <p id='id_protect'><img src='protect.php' border='0' alt='"
.msg("Введите защитный код")."' /></p>
                        <p id='id_protect_refresh' class='main_txt_lnk' style='cursor:hand; margin: 0px; padding: 0px;'>"
.msg("Обновить код")."</p>
                      </td>
                    </tr>\n"
;
              
$res .= "<tr><td class='fst'>$caption:</td><td class='snd'>$tag</td></tr>\n";
              break;
?>

  Ответить  
 
 автор: sevidi   (28.02.2011 в 16:59)   письмо автору
 
   для: cheops   (28.02.2011 в 16:55)
 

Такого класса у меня нет. Подскажите, где его можно найти?

  Ответить  
 
 автор: cheops   (28.02.2011 в 16:55)   письмо автору
 
   для: sevidi   (28.02.2011 в 16:51)
 

В промышленном варианте FrameWork имеется класс field_image, я не уверен, что он присутствует в учебном варианте. Посмотрите, есть ли у вас такой класс?

  Ответить  
 
 автор: sevidi   (28.02.2011 в 16:51)   письмо автору
 
 

При создании формы регистрации на сайте, используется HTML-форма, созданная с помощью SoftTime Framework.
<div class="registr">
Хотите получать рассылки?
Зарегистрируйтесь на сайте
<?php 
     $text 
"Поля, отмеченные звёздочкой *, являются 
             обязательными к заполнению"
;
    
$form_comment = new field_paragraph($text);
        
    
$fam = new field_text("fam",
                           
"Ник",
                           
true,                           
                           
htmlspecialchars($_REQUEST['fam'], ENT_QUOTES),
                           
"",
                           
16); 
    
    
$email = new field_text_email("email",
                                  
"E-mail",
                                  
true,
                                  
htmlspecialchars ($_REQUEST['email'], ENT_QUOTES),
                
"",                              
                               
16);
      
    
$form = new form(array("form_comment" => $form_comment,
                           
"fam"          => $fam,                           
                           
"email"        => $email),                           
                     
"Регистрация",
                     
"main_txt",
                     
"",                     
                     
"in_input");
    
// Обработчик HTML-формы
    
if(!empty($_POST))
    {
      
// Проверяем корректность заполнения HTML-формы
      // и обрабатываем текстовые поля
      
$error $form->check();
     
  
      
// Проверяем не зарегистрирован ли пользователь
      // с аналогичным именем ранее
      
$query "SELECT COUNT(*) FROM $tbl_register 
                WHERE name = '
{$form->fields[fam]->value}'";
      
$usr mysql_query($query);
      if(!
$usr
      {
        throw new 
ExceptionMySQL(mysql_error(), 
                               
$query,
                              
"Ошибка добавления нового пользователя");
      }
      if(
mysql_result($usr0))
      {
        
$error[] = "Пользователь с таким именем уже существует";
      }
  
      if(empty(
$error))
      {
        
// Формируем SQL-запрос на добавление позиции
        
$query "INSERT INTO $tbl_register
                  VALUES (NULL,
                          '
{$form->fields[fam]->value}',                          
                          '
{$form->fields[email]->value}',
                          'unblock',
                          NOW(),
                          NOW())"
;
        if(!
mysql_query($query))
        {
          throw new 
ExceptionMySQL(mysql_error(), 
                                   
$query,
                                   
"Ошибка добавления 
                                   нового пользователя"
);
        }
        
// Вход на сайт
        
$_SESSION['fam'] = $form->fields['fam']->value;
        
$_SESSION['id_user'] = mysql_insert_id();
        
// Осуществляем редирект на страницу, сообщающую
        // об успешной регистрации
        
header("Location: register_success.php");
        
//Отправляем содержимое буфера вывода клиенту
        
ob_end_flush ();
        exit();
      }
    }
      
   
// Выводим сообщения об ошибках если они имеются
    
if(!empty($error))
    {
      echo 
"<br>";
      foreach(
$error as $err)
      {
        echo 
"<span style=\"color:red\" class=main_txt>$err</span><br>";
      }
    }
    
// Выводим HTML-форму 
    
$form->print_form();
 
?>
</div>

Каким образом вставть в форму капчу. Какой класс для этого подходит.
Подскажите варианты, если это имеют место.

  Ответить  

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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