Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Отзывы не работают. Что делать?


faunaSwan

Recommended Posts

Всем привет!

Подскажите, почему у меня может не отображаться защитный код при написании отзыва?

Без него отзыв оставить не удается(((

 

Помогите, а)

Надіслати
Поділитися на інших сайтах


Ваша капча не может вывестись из-за ошибки:

Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/214dom.ru/httpdocs/catalog/language/russian/russian.php:1) in /home/httpd/vhosts/214dom.ru/httpdocs/system/library/currency.php on line 45Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/214dom.ru/httpdocs/catalog/language/russian/russian.php:1) in /home/httpd/vhosts/214dom.ru/httpdocs/system/library/captcha.php on line 40

Надіслати
Поділитися на інших сайтах


Попробуйте в файлике system\library\captcha.php изменить в начале функцию:

function __construct() { 
 $this->code = substr(sha1(mt_rand()), 17, 6); 
}

на код ниже:

function __construct() { 
$this->code = substr(sha1(mt_rand()), 17, 6);
$out = ob_get_contents();
$out = str_replace(array("\n", "\r", "\t", " "), "", $this->code);
ob_end_clean();
}
Надіслати
Поділитися на інших сайтах


 

Попробуйте в файлике system\library\captcha.php изменить в начале функцию:

function __construct() { 
 $this->code = substr(sha1(mt_rand()), 17, 6); 
}

на код ниже:

function __construct() { 
$this->code = substr(sha1(mt_rand()), 17, 6);
$out = ob_get_contents();
$out = str_replace(array("\n", "\r", "\t", " "), "", $this->code);
ob_end_clean();
}

 

не помогает

 

А что тут прописали?

Надіслати
Поділитися на інших сайтах


не помогает

 

А что тут прописали?

 

да там баг небольшой есть...

при выводе изображения функцией imagejpeg (в captcha.php) в буфере 3 символа висят и они ляпаются перед jpg файлом и система не видет что это картинка

ob_end_clean();

очищает буфер и выводится только картинка без лишних 3х символов впереди, которые нарушают формат файла...

 

....

 

посмотрите что вообще выводится вместо картинки

 

сразу после строчки

imagejpeg($image);

напишите

$f = fopen("image.txt", "w");
fwrite($f, ob_get_contents());   
fclose($f);

и если права есть, то в корне должен появится файл image.txt

там или код картинки будет, или текст ошибки

 

можете сюда скопировать несколько первых символов этого файлика? или файлик приложить

Надіслати
Поділитися на інших сайтах


Сейчас у меня установлена другая капча

 

Скрипт:

----------------------------------------------------------

 

<?php

/*
* Customized OpenCart Captcha library
* File system/library/captcha.php should be replaced
* Background images should be in JPG and must be located in /images/capcha/*.jpg
* Names of images should be auto incremented like: 1.jpg, 2.jpg and so on.
* The font file should be located in the same folder
*
* License: GPL
*
* Author: cmd / www.workshop200.com
*/

class Captcha {

    protected $fontName = 'x.ttf';
    protected $darkFont = false; // dark or light font?
    protected $length = 3; // code length
    protected $images_list = 5; // how many images do u have?
    
    protected $code;
    protected $bg_image;
    protected $font;
    
    function __construct() {
        $this->code = substr(sha1(mt_rand()), 17, $this->length);
        $this->bg_image = $this->getImg();
        $this->font = $this->getFont();
    }

    function getCode(){
        return $this->code;
    }
    function getImg() {
        return DIR_IMAGE."capcha/". rand(1, $this->images_list) .".jpg";
    }
    function getFont() {
        return DIR_IMAGE."capcha/". $this->fontName;
    }
    function getDarkColor() {
        return rand(0, 100);
    }
    function getLightColor() {
        return rand(150, 255);
    }
    function showImage() {
        
        $image = imagecreatefromjpeg($this->bg_image);
    
        $width = imagesx($image);
        $height = imagesy($image);
        
        $borderColor = imagecolorallocate($image, 0, 0, 0);

        imagefilledrectangle($image, 0, 0, $width, 0, $borderColor);
        imagefilledrectangle($image, $width - 1, 0, $width - 1, $height - 1, $borderColor);
        imagefilledrectangle($image, 0, 0, 0, $height - 1, $borderColor);
        imagefilledrectangle($image, 0, $height - 1, $width, $height - 1, $borderColor);
         
        $i = 0;
        foreach (str_split($this->code) as $letter) {
            $i++;
            
            if ($this->darkFont) {
                $randomColor = imagecolorallocate($image, $this->getDarkColor(), $this->getDarkColor(), $this->getDarkColor());
            } else {
                $randomColor = imagecolorallocate($image, $this->getLightColor(), $this->getLightColor(), $this->getLightColor());
            }
            
            $spacing = rand(13, 18);
            imagettftext($image, 14, rand(-20, 20), intval(($width - (strlen($this->code) * $spacing)) / strlen($this->code) + ($i * $spacing)), intval(($height + 10) / 2), $randomColor, $this->font, $letter);
            unset($randomColor);
            
        }
    
        header('Content-type: image/jpeg');

        
        imagejpeg($image, NULL, 100);
        
        imagedestroy($image);        
    }
}
?>
Змінено користувачем AlexFisher
CODE, SPOILER
Надіслати
Поділитися на інших сайтах


В каком месте сливается? Отметьте смайликом :ugeek:

 

после 

 imagejpeg($image, NULL, 100);

допишите 

$f = fopen("image.txt", "w");
fwrite($f, ob_get_contents());
fclose($f);

и посмотрите, что будет в файлике image.txt в корне сайта

Надіслати
Поділитися на інших сайтах


после 

 imagejpeg($image, NULL, 100);

допишите 

$f = fopen("image.txt", "w");
fwrite($f, ob_get_contents());
fclose($f);

и посмотрите, что будет в файлике image.txt в корне сайта

Файл должен сам появится? его нет

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

 

Попробуйте в файлике system\library\captcha.php изменить в начале функцию:

function __construct() { 
 $this->code = substr(sha1(mt_rand()), 17, 6); 
}

на код ниже:

function __construct() { 
$this->code = substr(sha1(mt_rand()), 17, 6);
$out = ob_get_contents();
$out = str_replace(array("\n", "\r", "\t", " "), "", $this->code);
ob_end_clean();
}

 

Спасибо! Тоже, по какой то причине - не отображалась. По Вашему совету все заработало!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.