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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с отображением кода в гостевой 
:(
    Опции темы
motorway
Дата 16.10.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ужасная проблема с гостевыми книгами. Там, где требуется ввести кодовое слово или число, отображается значок того, что картинка не загрузилась. Причем это происходит иногда, и в разных браузерах по-разному, но в основном глюк в IE7, Safari, Opera, иногда в IE8. С чем это связано? Вероятно, с генерацией картинки на PHP, то есть у нее нет адреса (в свойствах просто виден адрес скрипта).
Либо с глюкавым поведением броузеров.
Что тут можно предпринять?
Также вероятный вариант - это происходит из-за того, что страница с гостевой вставлена в iframe - когда заходишь просто без него, работает лучше.

Если нужен код, то вот он:

1) print_sec_img.php
Код

<?php
session_name('GBOOK');
session_start();
define('IN_SCRIPT',true);

if (empty($_SESSION['secnum']) || strlen($_SESSION['secnum']) != 5 || preg_match('/\D/',$_SESSION['secnum'])) {
    die('Invalid or missing security number');
}

require('settings.php');
require('secimg.inc.php');
$sc=new PJ_SecurityImage($settings['filter_sum']);
$sc->printImage($_SESSION['secnum']);

exit();
?>


2) secimg.inc

Код

<?php

class PJ_SecurityImage {

        function PJ_SecurityImage($key) {
                $this->code = '';
                $this->key = $key;
        } // End PJ_SecurityImage

        function encrypt($plain_text) {
            $this->code = trim(crypt($plain_text,$this->key));
        } // End encrypt

        function checkCode($mystring,$checksum)
        {
            $this->encrypt($mystring);
            if ($this->code == $checksum)
                return true;
            else
                return false;
        } // End checkCode

        function printImage($random_number)
        {
            header("Content-type: image/jpeg");
            $im = @imagecreate(100, 20) or die("Cannot Initialize new GD image stream");
            $background_color = imagecolorallocate($im, 255, 255, 255);
            $text_color = imagecolorallocate($im, 0, 0, 0);

            for ($i=0;$i<strlen($random_number);$i++)
            {
                $display = substr($random_number,$i,1);
                $x = ($i*20) + rand(3,6);
                $y = rand(3,6);
                imagestring($im, 5, $x, $y, $display, $text_color);
            }

            for ($i=1;$i<100;$i++)
            {
                $cor_x = rand(1,100);
                $cor_y = rand(1,20);
                imagesetpixel($im,$cor_x,$cor_y,$text_color);
            }

            imagejpeg($im);
            imagedestroy($im);
        } // End printImage

        function get()
        {
            return $this->code;
        } // End get

} // End class PJ_SecurityImage

?>


3) settings.php
Код

<?php
/* >>> SETUP YOUR GUESTBOOK <<< */
/* Detailed information found in the readme file */
/* File version: 1.6 $ Timestamp: 14th Feb 2008 18:37 */

/* Password for admin area */
$settings['apass']='admin';

/* Website title */
$settings['website_title']="My lovely website";

/* Website URL */
$settings['website_url']='http://www.domain.com/';

/* Guestbook title */
$settings['gbook_title']="My lovely website - guestbook";

/* Name of the file where guestbook entries will be stored */
$settings['logfile']='entries.txt';

/* Use "Your website" field? 1 = YES, 0 = NO */
$settings['use_url']=0;

/* Open URLs in a new window? 1 = YES, 0 = NO */
$settings['url_blank']=0;

/* Allow private posts (readable only by admin)? 1 = YES, 0 = NO */
$settings['use_private']=1;

/* Hide e-mail addresses? 1 = YES, 0 = NO */
$settings['hide_emails']=1;

/* Allow smileys? 1 = YES, 0 = NO */
$settings['smileys']=1;

/* Send you an e-mail when a new entry is added? 1 = YES, 0 = NO */
$settings['notify']=0;

/* Your e-mail. Only required if $settings['notify'] is set to 1 */
$settings['admin_email']='[email protected]';

/* URL of the gbook.php file. Only required if $settings['notify'] is set to 1 */
$settings['gbook_url']='http://www.domain.com/guestbook/gbook.php';

/* Filter bad words? 1 = YES, 0 = NO */
$settings['filter']=1;

/* Filter language. Please refer to readme for info on how to add more bad words to the list! */
$settings['filter_lang']='en';

/* Prevent automated submissions (recommended YES)? 0 = NO, 1 = YES, GRAPHICAL, 2 = YES, TEXT */
$settings['autosubmit']=1;

/* Checksum - just type some digits or chars. Used to help prevent SPAM */
$settings['filter_sum']='k39dw28rh3';

/* Use JunkMark(tm) SPAM filter (recommended YES)? 1 = YES, 0 = NO */
$settings['junkmark_use']=1;

/* JunkMark(tm) score limit after which messages are marked as SPAM */
$settings['junkmark_limit']=60;

/* Ban IP address if JunkMark(tm) score is 100 (100% SPAM)? 1 = YES, 0 = NO */
$settings['junkmark_ban100']=1;

/* Ignore proxy servers from JunkMark check? 1 = YES, 0 = NO */
$settings['ignore_proxies']=0;

/* Show "NO GUESTBOOK SPAM" banner? 1 = YES, 0 = NO */
$settings['show_nospam']=1;

/* Prevent multiple submissions in the same session? 1 = YES, 0 = NO */
$settings['one_per_session']=1;

/* Maximum chars word length */
$settings['max_word']=75;

/* Language file */
$settings['language']='language.inc.php';

/* Allow IPv6 format? 1 = YES, 0 = NO */
$settings['allow_IPv6']=0;


/* DO NOT EDIT BELOW */
if (!defined('IN_SCRIPT')) {die('Invalid attempt!');}
ini_set('display_errors', 0);
ini_set('log_errors', 1);
?>

PM MAIL   Вверх
MoLeX
Дата 16.10.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Цитата(motorway @  16.10.2008,  13:07 Найти цитируемый пост)
то есть у нее нет адреса (в свойствах просто виден адрес скрипта).

какой там адрес то? http://site/script/img.php?3242 или просто script/img.php?3242 ??


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
motorway
Дата 16.10.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



gb3/?action=challengeimage 
PM MAIL   Вверх
MoLeX
Дата 16.10.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



замен на полный. не может найти адрес

Добавлено через 5 секунд
замен на полный. не может найти адрес


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
motorway
Дата 16.10.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я имел в виду, что сначала http://site/, а потом это
PM MAIL   Вверх
motorway
Дата 16.10.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



похоже, ошибка может быть из-за настроек безопасности в IE - блокирует некоторые куки, поэтому и не показывает картинку.
Но что с этим сделаешь?
PM MAIL   Вверх
georgiy11
Дата 16.10.2008, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Может я что не понимаю если можно обьясните откуда берётся переменная $_SESSION['secnum'].

Добавлено через 8 минут и 34 секунды
Пользуюсь Firefox 3.0.2 .Вообщем не проходил у меня ваш код так как не было переменной $_SESSION['secnum'].
Ладно это я по не опытности наверное может обьясните.Вообщем вручную прописал переменную, что бы проходила по условию (правда и в условии убрал  preg_match();) и ............ картинка появилась нормально.Текст из переменной $_SESSION['secnum'] если я не ошибаюсь!

Добавлено через 9 минут и 14 секунд
Да сервер у меня Денвер 3

Добавлено через 11 минут и 31 секунду
Вот  и  IE7 нормально  обработал ...
PM MAIL   Вверх
motorway
Дата 16.10.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



проблема в том, что код виден в IE только при уровне безопасности Low, и пользователь должен включать это, чтобы увидеть код. Неужели нет нормального выхода? Менять код, или поискать нормальную книгу?
Ведь это относится почти к любой защите с помощью кода.
PM MAIL   Вверх
MoLeX
Дата 17.10.2008, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



напиши свою нормальную


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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