[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Captcha!
RashGamer
http://forum.woweb.ru/topic33297.html Сообщение первое автора.
что нужно еще кроме этих трех файлов? Чтобы она заработала? Не пойму я ничего просто копирую код в свой php документ даю названия те что там написанны для каждого файла.
Получаеться 3 документа закидываю на хост и рисунка нет, что мне сделать чтоб был рисунок?
Может создать надо, или chmod где менять помогите пожалуйста два дня не могу каптчу поставить на сайт.



Спустя 6 минут, 32 секунды (4.03.2009 - 21:36) Grey написал(а):
Дай свой код

Спустя 2 минуты, 33 секунды (4.03.2009 - 21:39) bret написал(а):

Спустя 2 минуты, 49 секунд (4.03.2009 - 21:42) RashGamer написал(а):
1 файл captcha.php
PHP
<?php

   
class Captcha
   
{
      var 
$length$valid;

      function 
Captcha($length=0)
      {
         
session_start();
         
$this->length $length;
      }

      function 
show()
      {
         
$image = new Image(""50*$this->length50);
         
$bg imagecolorallocate($image->handle255255255);
         
imagefill($image->handle00$bg);
         
$number "";

         for(
$i=0$i<$this->length$i++)
         {
            
$digit = new Image(""2525);
            
$white imagecolorallocate($digit->handle255255255);
            
$bg imagecolortransparent($digit->handle$white);
            
imagefill($digit->handle00$bg);
            
$red rand(0128); $green rand(0128); $blue rand(0128);
            
$fg imagecolorallocate($digit->handle$red$green$blue);
            
$font rand(35);
            
$char rand(09);
            
$number .= $char;
            
imagestring($digit->handle$font00$char$fg);
            
$angle rand(045);
            
$angle = ($angle%2>0) ? 360-$angle $angle ;
            
$digit->handle imagerotate($digit->handle$angle$bg);
            if(
rand(01)>0)
            {
               
$width round($digit->width*2);
               
$height round($digit->height*2);
            }
            else
            {
               
$width $digit->width;
               
$height $digit->height;
            }
            
$distance 0;
            if(
$i>0)
            {
               
$distance rand(05);
               
$distance = ($distance%2>0) ? 0-$distance $distance;
            }
            
imagecopyresized($image->handle$digit->handle$i*50+$distance000$width$height2525);
         }

         
$_SESSION['captcha'] = $number;
         
$image->output(false);
      }

      function 
check()
      {
         
$this->valid = ($_POST['captcha'] == $_SESSION['captcha']);
         return 
$this->valid;
      }

   }

   class 
Image
   
{
      var 
$width$height$source$handle;

      function 
Image($source=""$width=0$height=0)
      {
         if(!empty(
$source))
         {
            
$extension substr($source, -3);
            
$extension = ($extension=="jpg") ? "jpeg" $extension;
            
$function "imagecreatefrom".$extension;
         }
         
$this->handle = empty($source) ? imagecreatetruecolor($width$height) : $function($source);
         
$this->source = empty($source) ? "tempfile_".time().".jpg" $source;
         
$this->width imagesx($this->handle);
         
$this->height imagesy($this->handle);
      }

      function 
output($save=false)
      {
         if(
$save)
         {
            
imagejpeg($this->handle$this->source80);
         }
         
header("Content-type: image/jpeg");
         
imagejpeg($this->handle);
      }
   }


второй файл index.php

PHP
<?php
   
include('Captcha.php');
   
$captcha = new Captcha();
?>
<form method="post">
<img src="show.php"><br>
 
<input name="" type="date" value="

<?php 
echo date("H:i:s");
?>

">

<input type="text" name="captcha"><input type="submit" value="Check!">
</form>
<?php
   
echo ($captcha->check()) ? "Captcha correct" "Captcha incorrect" ;


третий файл show.php

PHP
<?php
   
include('Captcha.php');
   
$captcha = new Captcha(4);
   
$captcha->show();



Спустя 16 минут, 20 секунд (4.03.2009 - 21:58) Grey написал(а):
user posted image
Скрипт рабочий.
Сделай файл любое_имя.php

PHP
<?
phpinfo ();


Залей на хостинг и запусти. Главное - узнать, есть ли на хостинге библиотека GD2. если нет, то все телодвижения с генерацией картинок на этом хостинге бессмысленны

Спустя 9 минут, 23 секунды (4.03.2009 - 22:07) RashGamer написал(а):
запустил в каком разделе она должна быть?

Спустя 2 минуты, 54 секунды (4.03.2009 - 22:10) RashGamer написал(а):
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

Спустя 10 минут, 1 секунда (4.03.2009 - 22:20) Grey написал(а):
ну еще как варинат -регистрозависимость. То есть Captcha.php и сaptcha.php могут сичтаться разными файлами
попробуй
include('сaptcha.php'); в обоих файлах
Ошибки вообще выдаются какие-нибудь? можно ссылку?

Спустя 4 минуты, 28 секунд (4.03.2009 - 22:25) RashGamer написал(а):
http://www.apcent.far.ru/index.php
никакой ошибки не пишет

Спустя 2 минуты, 40 секунд (4.03.2009 - 22:27) RashGamer написал(а):
поменял регистр и вот что
Warning: main(Captcha.php) [function.main]: failed to open stream: No such file or directory in /home/far/a/p/c/apcent/public_html/index.php on line 2

Warning: main() [function.include]: Failed opening 'Captcha.php' for inclusion (include_path='.:/usr/local/share/pear') in /home/far/a/p/c/apcent/public_html/index.php on line 2

Fatal error: Cannot instantiate non-existent class: captcha in /home/far/a/p/c/apcent/public_html/index.php on line 3

Спустя 34 секунды (4.03.2009 - 22:28) Grey написал(а):
Warning: main(Captcha.php) [function.main]: failed to open stream: No such file or directory in /home/far/a/p/c/apcent/public_html/index.php on line 2

Warning: main() [function.include]: Failed opening 'Captcha.php' for inclusion (include_path='.:/usr/local/share/pear') in /home/far/a/p/c/apcent/public_html/index.php on line 2

Fatal error: Cannot instantiate non-existent class: captcha in /home/far/a/p/c/apcent/public_html/index.php on line 3
а ето что?
Не видит файл. Либо надо написать инклуд с маленькой буквы, дибо выставить файлу права на чтение.

Спустя 3 минуты, 29 секунд (4.03.2009 - 22:31) kirik написал(а):
зайдите сюда: _http://www.apcent.far.ru/show.php

ЗЫ. из-за халявного хостинга вконце добавляется реклама, тоесть сгенеренная картинка получится с куском html кода, что не есть хорошо. Это помимо тех ошибок, которые есть.

Спустя 33 секунды (4.03.2009 - 22:32) Grey написал(а):
ну если пишет main(Captcha.php) [function.main]: failed...
значит не поменял - выдается то с большой буквой. В обоих файлах сменил?

Спустя 25 секунд (4.03.2009 - 22:32) RashGamer написал(а):
поменл тут
PHP
<?php
   
include('Captcha.php');
   
$captcha = new Captcha();
?>
<form method="post">
<img src="show.php"><br>
 
<input name="" type="date" value="

<?php 
echo date("H:i:s");
?>

">

<input type="text" name="captcha"><input type="submit" value="Check!">
</form>
<?php
   
echo ($captcha->check()) ? "Captcha correct" "Captcha incorrect" ;


и тут
PHP
<?php
   
include('Captcha.php');
   
$captcha = new Captcha(4);
   
$captcha->show();

на строчную C ошибки перестал выдавать но риснка так и нет

Спустя 1 минута, 52 секунды (4.03.2009 - 22:34) sergeiss написал(а):
Ежели скрипт рабочий (я самолично не проверял)... То тогда совсем уж экзотические версии могу выдвинуть smile.gif

1. В браузере в данный момент выключена поддержка рисунков (берутся только из кэша).
2. Файлы находятся в разных каталогах (должны быть в одном, судя по написанному).

Какой браузер у тебя? Если Опера, то это могут быть приколы кэширования.

Спустя 2 минуты, 27 секунд (4.03.2009 - 22:37) RashGamer написал(а):
банер в файле пишеться так в боди -=БАНЕР=- обычно в боди, а в таком файле незнаю где щас гляну

Спустя 30 секунд (4.03.2009 - 22:37) Grey написал(а):
у тебя файл show.php закодирован в utf-8 с BOM-сигнатурой. Это добавляет закорючку в начале. (я про ссылку, которую указал kirik)
Поэтому заголовки не проходят
Я у себя тестил все три файла вообще в ANSI

Спустя 7 минут (4.03.2009 - 22:44) RashGamer написал(а):
PHP
<?php
   
include('captcha.php');
   
$captcha = new captcha(4);
   
$captcha->show();

вот show.php

Спустя 45 секунд (4.03.2009 - 22:45) RashGamer написал(а):
Закорючку удалил

Спустя 4 минуты, 8 секунд (4.03.2009 - 22:49) Grey написал(а):
попробуй скачать и залить вот этот show.php
Надо распаковать, естественно

Спустя 7 минут, 11 секунд (4.03.2009 - 22:56) RashGamer написал(а):
без изменений

Спустя 5 минут, 3 секунды (4.03.2009 - 23:01) RashGamer написал(а):
Цитата
Ежели скрипт рабочий (я самолично не проверял)... То тогда совсем уж экзотические версии могу выдвинуть

1. В браузере в данный момент выключена поддержка рисунков (берутся только из кэша).
2. Файлы находятся в разных каталогах (должны быть в одном, судя по написанному).

Какой браузер у тебя? Если Опера, то это могут быть приколы кэширования.

1 все включенно
2 в 1 корневом каталоге

Спустя 2 минуты, 2 секунды (4.03.2009 - 23:03) RashGamer написал(а):
Цитата
Внимание!! Во всех предустановленных скриптах (форумы, гостевые и т.д. ) Вы в праве менять ПОЛНОСТЬЮ внешний вид предлагаемых заготовок, единственное требование- наличие в верхней части Вашей заготовки cледующей строчки <--БАННЕР-->


Скорей всего думаю с этим проблемы, есть предложения обойти?

Спустя 3 минуты, 18 секунд (4.03.2009 - 23:07) Grey написал(а):
давай попробуем еще все три файла =)

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

Спустя 2 минуты, 49 секунд (4.03.2009 - 23:09) RashGamer написал(а):

Спустя 2 минуты, 11 секунд (4.03.2009 - 23:12) RashGamer написал(а):
у тебя браузер какой? может действительно в этом проблема

Спустя 50 секунд (4.03.2009 - 23:12) RashGamer написал(а):
ой мля ты же тоже по ссылке проходишь а не только у себя тестиш

Спустя 7 минут, 48 секунд (4.03.2009 - 23:20) Grey написал(а):
Нет, тут точно не в браузере дело. у меня во всех браузерах норм, у тебя во всех браузерах в файле show.php яШяа
хоть тресни не могу у себя такую же фигню вызвать

Спустя 13 минут, 46 секунд (4.03.2009 - 23:34) RashGamer написал(а):
ну это хостинг вызывает мой

Спустя 13 часов, 37 минут, 8 секунд (5.03.2009 - 13:11) RashGamer написал(а):
Предложите пожалуйста какую нибудь альтернативу анти-спама

Спустя 33 минуты, 22 секунды (5.03.2009 - 13:44) RashGamer написал(а):
нашел вот это:
q.php
PHP
$q = array(
      
'слон' => 'Существо с большими ушами и хоботом? Это с**н...',
      
'пиво' => 'Что любят программисты? Пи*о...'
);

page.php
PHP
<?php

require_once('q.php');

session_start();

$ask rand(0count($q)-1);

$_SESSION['qestion'] = $ask;

?>

<form action="save.php">

<?=$q[$ask]?>
<input type="answer" 

save.php
PHP
<?php

require_once('q.php');

session_start();

if(
$_SESSION['qestion'] != strtolower($_POST['answer'])) die('Вы неверно ответили!');


закинул тестю и
$q = array( 'слон' => 'Существо СЃ большими ушами Рё хоботом? Рто СЃ**РЅ...', 'РїРёРІРѕ' => 'Что любят программисты? РџРё*Рѕ...' );
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/far/a/p/c/apcent/public_html/q.php:4) in /home/far/a/p/c/apcent/public_html/page.php on line 5

Спустя 1 месяц, 4 часа, 39 минут, 2 секунды (5.04.2009 - 17:23) PandoraBox2007 написал(а):
Цитата
$q = array( 'слон' => 'Существо СЃ большими ушами Рё хоботом? Рто СЃ**РЅ...', 'РїРёРІРѕ' => 'Что любят программисты? РџРё*Рѕ...' );

PHP
header('Content-Type: text/html; charset=utf-8');


Цитата
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/far/a/p/c/apcent/public_html/q.php:4) in /home/far/a/p/c/apcent/public_html/page.php on line 5

PHP
session_start();

require_once(
'q.php');

Спустя 1 день, 32 минуты, 11 секунд (6.04.2009 - 17:56) PandoraBox2007 написал(а):
....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.