Ru-Board.club
← Вернуться в раздел «Системы управления сайтами»

» Перестала работать регистрация

Автор: Spot2015
Дата сообщения: 14.11.2015 15:35
Помогите с проблемкой! На хостинге был случайно стерт сайт, по сохранившейся базе сайт восстановили, но перестала работать регистрация. Нажимаешь на кнопку зарегистрировать - открывается окно, где пишется текст о правилах на сайте и далее идут кнопки "принять" и "не принять", так вот при нажатии "принять" страничка обновляется и ничего не происходит. Все тот же текст и те же кнопки "принять" и "не принять". Как исправить?
Автор: K S
Дата сообщения: 16.11.2015 10:52
Движок какой установлен?

Навскидку, нужно проверить настройки передачи сессий и куки. Возможно, проблема не в базе, а в настройках сервера.
Автор: Spot2015
Дата сообщения: 16.11.2015 13:06
Движок DLE
Как проверить настройки и исправить?
У меня мало опыта в данном вопросе.
Автор: K S
Дата сообщения: 16.11.2015 13:38
Spot2015
Надо проверить, чтобы куки отправлялись в браузер. Для этого нужно зайти в нём в режиме отладки на форму регистрации, кликнуть и посмотреть, записались ли куки.

Если это сложно, попробовать переустановить (обновить) движок до актуальной версии.
Автор: Spot2015
Дата сообщения: 16.11.2015 16:07
Обновить до актуальной версии не получается, т.к. лицензия закончилась.
Есть ли еще какие варианты решения?
Автор: K S
Дата сообщения: 16.11.2015 16:23
Нужна ссылка на сайт и версия движка. Посмотрим, отправляются ли куки.
Автор: Spot2015
Дата сообщения: 16.11.2015 16:50
http://eabook.ru/
DLE v.9.0
Автор: K S
Дата сообщения: 16.11.2015 19:11
Надо поправить форму в шаблоне registration.tpl.

Найти в шаблоне:

Код: <form method="post" name="registration" id="registration" action="http://www.eabook.ru/index.php?do=register">
Автор: Spot2015
Дата сообщения: 16.11.2015 20:00
в шаблоне registration.tpl такой формы я не нашел и ни какой другой то же.
Автор: K S
Дата сообщения: 16.11.2015 20:51
Значит найти её в engine/modules/register.php. Где-то в 193 строке. И поправить.
Автор: Spot2015
Дата сообщения: 17.11.2015 12:32
в 193 строке нашел такой код:
$tpl->copy_template = "<form method=\"post\" name=\"registration\" onsubmit=\"if (!check_reg_daten()) {return false;};\" id=\"registration\" action=\"" . $config['http_home_url'] . "index.php?do=register\">\n" . $tpl->copy_template . "
<input name=\"submit_reg\" type=\"hidden\" id=\"submit_reg\" value=\"submit_reg\" />
</form>";

Вы могли бы его подкорректировать как надо, я не понимаю в этом языке.
Автор: K S
Дата сообщения: 17.11.2015 12:50
Вы же все написано выше. Это очень легко.

Сделайте по аналогии, в этом нет ничего трудного.

[more=Но если совсем не получится, вот готовый ответ]

Код: $tpl->copy_template = "<form  method=\"post\" name=\"registration\" onsubmit=\"if (!check_reg_daten()) {return false;};\" id=\"registration\" action=\"\">\n" . $tpl->copy_template . "
<input name=\"submit_reg\" type=\"hidden\" id=\"submit_reg\" value=\"submit_reg\" />
<input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\" />
</form>";
Автор: Spot2015
Дата сообщения: 17.11.2015 13:04
Ни чего не изменилось, при нажатии на кнопку "принять" ни чего не происходит, остается на этой странице...
Автор: K S
Дата сообщения: 17.11.2015 13:21
Файл нужно записать на сервер, а также сбросить кэш шаблонов, если он есть.

Сейчас на сайте ничего не поменялось.
Автор: Spot2015
Дата сообщения: 17.11.2015 14:13
Файл на сервер сразу записал, кеш сбросил на сайте. Ни чего не изменилось.
Автор: K S
Дата сообщения: 17.11.2015 14:37
Аналогичные изменения нужно внести в engine/modules/register.php в районе 168 строки.
Автор: Spot2015
Дата сообщения: 17.11.2015 15:48
в районе 168 строки нет ничего похожего, чтобы внести изменения (имею ввиду замену части кода)

я мог бы вам прислать файл register.php, чтобы вы могли сами все увидеть?
Автор: K S
Дата сообщения: 17.11.2015 16:21
Прошу прощения, опечатался. Файл другой engine/modules/static.php.
Автор: Spot2015
Дата сообщения: 17.11.2015 16:35
$tpl->set( '{ACCEPT-DECLINE}', "<form method=\"post\" name=\"registration\" id=\"registration\" action=\"" . $config['http_home_url'] . "index.php?do=register\"><input type=\"submit\" class=\"bbcodes\" value=\"{$lang['rules_accept']}\" />&nbsp;&nbsp;&nbsp;<input type=\"button\" class=\"bbcodes\" value=\"{$lang['rules_decline']}\" onclick=\"history.go(-1); return false;\" /><input name=\"dle_rules_accept\" type=\"hidden\" id=\"dle_rules_accept\" value=\"yes\" /></form>" );

Что здесь надо изменить, я заменил всю фразу и получилась ошибка
Автор: K S
Дата сообщения: 17.11.2015 16:48
Всю фразу не нужно. Нужно применить аналогичное решение.
Автор: Spot2015
Дата сообщения: 17.11.2015 18:00
Я не понимаю этого языка и для меня это набор символов. поэтому не понимаю как надо прописать по аналогии с предыдущей записью?

Добавлено:
Я не понимаю этого языка и для меня это набор символов. поэтому не понимаю как надо прописать по аналогии с предыдущей записью?
Автор: K S
Дата сообщения: 17.11.2015 19:01
Заменить на
Код:
$tpl->set( '{ACCEPT-DECLINE}', "<form method=\"post\" name=\"registration\" id=\"registration\" action=\"\"><input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\" /><input type=\"submit\" class=\"bbcodes\" value=\"{$lang['rules_accept']}\" />&nbsp;&nbsp;&nbsp;<input type=\"button\" class=\"bbcodes\" value=\"{$lang['rules_decline']}\" onclick=\"history.go(-1); return false;\" /><input name=\"dle_rules_accept\" type=\"hidden\" id=\"dle_rules_accept\" value=\"yes\" /></form>" );
Автор: Spot2015
Дата сообщения: 17.11.2015 19:33
Спасибо, теперь включается сразу страница с регистрацией, но перестала отображаться картинка кода и зарегистрироваться все равно не получиться..
Автор: K S
Дата сообщения: 17.11.2015 19:41
[more] [more] [more] [/more]

На сервере запрещён и нет доступа к файлу engine/modules/antibot.php.

Создайте его со следующим содержанием:

[more=Код файла]

Код:
<?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004,2010 SoftNews Media Group
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: antibot.php
-----------------------------------------------------
Назначение: антибот
=====================================================
*/
// ---------- ---------- ---------- ---------- ----------
// Automatic test to tell computers and humans apart
// Copyright by Kruglov Sergei, 2006
// www.captcha.ru, www.kruglov.ru
// ---------- ---------- ---------- ---------- ----------

@error_reporting(E_ALL ^ E_NOTICE);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
@ini_set('error_reporting', E_ALL ^ E_NOTICE);

function clean_url ($url) {

if ($url == '') return;

$url = str_replace("http://", "", strtolower($url));
$url = str_replace("https://", "", $url );
if (substr($url, 0, 4) == 'www.') $url = substr($url, 4);
$url = explode('/', $url);
$url = reset($url);
$url = explode(':', $url);
$url = reset($url);

return $url;
}

if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) die("Hacking attempt!");

class genrandomimage {
    
    // Переменные настройки скрипта ---------
    
    var $alphabet = "0123456789abcdefghijklmnopqrstuvwxyz"; // НЕ ИЗМЕНЯЙТЕ, если вы не изменяли файл шрифтов!
    // последовательность букв должна СОВПАДАТЬ!
    
    // папка с шрифтами
    var $fontsdir = 'fonts';    
    
    // размер изображения CAPTCHA (оптимальные параметры)
    var $width = 120;
    var $height = 50;
    
    // амплитуда вертикальной флуктуации символов, деленная на 2
    var $fluctuation_amplitude = 5;
    
    // для увеличения безопасности можно убрать пробелы между символами
    var $no_spaces = true;
    
    // качество JPEG-изображения CAPTCHA (чем больше, тем выше качество)
    var $jpeg_quality = 90; // максимальное, можно поставить 70-80
    
    var $keystring = ''; // ключевая генерируемая строка

    // символы, используемые для рисования сгенерированного изображения CAPTCHA    
    var $allowed_symbols = "23456789acdefhkmnprsuvwxyz"; // алфавит БЕЗ похожих символов (o=0, 1=l, i=j, t=f)
    
    // количество символов в строке
    var $length_min = 5; // минимальное
    var $length_max = 6; // максимальное
    var $length = 0; // длина будет сгенерирована
    
    // ---------- ---------- ---------- ---------- ----------
    
    // Генерация строки ---------- ---------- -------
    function genstring() {
        // длина строки (количество символов) CAPTCHA
        // случайное число в пределах от $length_min до $length_max включительно
        $length = mt_rand( $this->length_min, $this->length_max );
        $this->length = $length;
        
        $this->keystring = '';
        for ($i = 0; $i < $length ; $i++) {
            // в цикле добавляем к строке по 1 случайному символу
            $this->keystring .= $this->allowed_symbols{ mt_rand( 0, strlen( $this->allowed_symbols ) -1 ) };
        }

    }
    // ---------- ---------- ---------- ---------- ----------

    // Генерация изображения
    function genimage() {

        // цвета изображения CAPTCHA (RGB, 0-255)
        $foreground_color = array( mt_rand( 0, 100 ), mt_rand( 0, 100 ), mt_rand( 0, 100 ) );
        $background_color = array( mt_rand( 200, 255 ), mt_rand( 200, 255 ), mt_rand( 200, 255 ) ); // фон всегда светлее

        $fonts = array();
        $fontsdir_absolute = dirname( __FILE__ ).'/'.$this->fontsdir; // путь к папке с шрифтами

        if ($handle = opendir( $fontsdir_absolute )) { // создаем массив с полными путями к изображениям с шрифтами
            while (false !== ($file = readdir( $handle ))) {
                if (preg_match( '/\.png$/i', $file )) {
                    $fonts[] = $fontsdir_absolute.'/'.$file;
                }
            }
         closedir( $handle );
        }

        $alphabet_length = strlen( $this->alphabet );
        
        while (true) {
            $font_file = $fonts[mt_rand( 0, count( $fonts ) - 1 )]; // выбираем случайный файл шрифта
            $font = imagecreatefrompng( $font_file );
            $black = imagecolorallocate( $font, 0, 0, 0 );
            $fontfile_width = imagesx( $font );
            $fontfile_height = imagesy( $font ) - 1;
            $font_metrics = array();
            $symbol = 0;
            $reading_symbol = false;

            // loading font
            for ($i = 0; $i < $fontfile_width && $symbol < $alphabet_length; $i++) {
                $transparent = (imagecolorat( $font, $i, 0 ) >> 24) == 127;

                if (!$reading_symbol && !$transparent) {
                    $font_metrics[$this->alphabet{$symbol}] = array( 'start' => $i );
                    $reading_symbol = true;
                    continue;
                }

                if ($reading_symbol && $transparent) {
                    $font_metrics[$this->alphabet{$symbol}]['end'] = $i;
                    $reading_symbol = false;
                    $symbol++;
                    continue;
                }
            }

            $img = imagecreatetruecolor( $this->width, $this->height );

            $white = imagecolorallocate( $img, 255, 255, 255 );
            $black = imagecolorallocate( $img, 0, 0, 0 );

            imagefilledrectangle( $img, 0, 0, $this->width - 1, $this->height - 1, $white );

            // draw text
            $x = 1;
            $shift = 0;
            
            for ($i = 0; $i < $this->length; $i++) {
                $m = $font_metrics[$this->keystring{$i}];

                $y = mt_rand( -$this->fluctuation_amplitude, $this->fluctuation_amplitude ) + ($this->height - $fontfile_height) / 2 + 2;
                

                if ($this->no_spaces) {
                    $shift = 0;
                    if ($i > 0) {
                        $shift = 1000;
                        for ($sy = 1; $sy < $fontfile_height - 15; $sy += 2) {
                            for ($sx = $m['start'] - 1; $sx < $m['end']; $sx++) {
                                $rgb = imagecolorat( $font, $sx, $sy );
                                $opacity = $rgb >> 24;
                                if ($opacity < 127) {
                                    $left = $sx - $m['start'] + $x;
                                    $py = $sy + $y;
                                    for ($px = min( $left, $this->width - 1 ); $px > $left - 15 && $px >= 0; $px--) {
                                        $color = imagecolorat( $img, $px, $py ) & 0xff;
                                        if ($color + $opacity < 190) {
                                            if ($shift > $left-$px) {
                                                $shift = $left - $px;
                                            }
                                            break;
                                        }
                                    }
                                    break;
                                }
                            }
                        }
                    }
                } else {
                    $shift = 1;
                }
                
                imagecopy( $img, $font, $x - $shift, $y, $m['start'], 1, $m['end'] - $m['start'], $fontfile_height );
                
                $x += $m['end'] - $m['start'] - $shift;
            }
            if ($x < $this->width - 10) break; // fit in canvas
        }
        $center = $x/2;
        
        $img2=imagecreatetruecolor($this->width, $this->height);
        $foreground=imagecolorallocate($img2, $foreground_color[0], $foreground_color[1], $foreground_color[2]);
        $background=imagecolorallocate($img2, $background_color[0], $background_color[1], $background_color[2]);
        imagefilledrectangle($img2, 0, $this->height, $this->width, $this->height+12, $foreground);


        // periods
        $rand1 = mt_rand( 750000, 1200000 ) / 10000000;
        $rand2 = mt_rand( 750000, 1200000 ) / 10000000;
        $rand3 = mt_rand( 750000, 1200000 ) / 10000000;
        $rand4 = mt_rand( 750000, 1200000 ) / 10000000;
        // phases
        $rand5 = mt_rand( 0, 3141592 ) / 500000;
        $rand6 = mt_rand( 0, 3141592 ) / 500000;
        $rand7 = mt_rand( 0, 3141592 ) / 500000;
        $rand8 = mt_rand( 0, 3141592 ) / 500000;
        // amplitudes
        $rand9 = mt_rand( 330, 420 ) / 110;
        $rand10 = mt_rand(330, 450 ) / 110;

        //wave distortion
        for ($x = 0; $x < $this->width; $x++) {
            for ($y = 0; $y < $this->height; $y++) {
                $sx = $x + (sin( $x * $rand1 + $rand5 ) + sin( $y * $rand3 + $rand6 )) * $rand9 - $this->width / 2 + $center + 1;
                $sy = $y + (sin( $x * $rand2 + $rand7 ) + sin( $y * $rand4 + $rand8 )) * $rand10;

                if ($sx < 0 || $sy < 0 || $sx >= $this->width - 1 || $sy >= $this->height - 1) {
                    $color = 255;
                    $color_x = 255;
                    $color_y = 255;
                    $color_xy = 255;
                } else {
                    $color = imagecolorat( $img, $sx, $sy ) & 0xFF;
                    $color_x = imagecolorat( $img, $sx + 1, $sy ) & 0xFF;
                    $color_y = imagecolorat( $img, $sx, $sy + 1 ) & 0xFF;
                    $color_xy = imagecolorat( $img, $sx + 1, $sy + 1 ) & 0xFF;
                }

                if ($color == 0 && $color_x == 0 && $color_y == 0 && $color_xy == 0) {
                    $newred = $foreground_color[0];
                    $newgreen = $foreground_color[1];
                    $newblue = $foreground_color[2];
                } else if ($color == 255 && $color_x == 255 && $color_y == 255 && $color_xy == 255) {
                    $newred = $background_color[0];
                    $newgreen = $background_color[1];
                    $newblue = $background_color[2];    
                } else {
                    $frsx = $sx - floor( $sx );
                    $frsy = $sy - floor( $sy );
                    $frsx1 = 1 - $frsx;
                    $frsy1 = 1 - $frsy;
                    $newcolor = (
                        $color * $frsx1 * $frsy1 +
                        $color_x * $frsx * $frsy1 +
                        $color_y * $frsx1 * $frsy +
                        $color_xy * $frsx * $frsy);

                    if ($newcolor > 255) $newcolor = 255;
                    $newcolor = $newcolor / 255;
                    $newcolor0 = 1 - $newcolor;

                    $newred     = $newcolor0 * $foreground_color[0] + $newcolor * $background_color[0];
                    $newgreen = $newcolor0 * $foreground_color[1] + $newcolor * $background_color[1];
                    $newblue = $newcolor0 * $foreground_color[2] + $newcolor * $background_color[2];
                }

                imagesetpixel( $img2, $x, $y, imagecolorallocate( $img2, $newred, $newgreen, $newblue ) );
            }
        }

# Рамка
imageline( $img2, 0, 0, $this->width, 0, $foreground );
imageline( $img2, 0, 0, 0, $this->height, $foreground );

imageline( $img2, 0, $this->height-1, $this->width, $this->height-1, $foreground );
imageline( $img2, $this->width-1, 0, $this->width-1, $this->height, $foreground);

        header( "Expires: Tue, 11 Jun 1985 05:00:00 GMT" );
        header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );
        header( "Cache-Control: no-store, no-cache, must-revalidate" );
        header( "Cache-Control: post-check=0, pre-check=0", false );
        header( "Pragma: no-cache" );
        header( "Content-Type: image/jpeg" );
        imagejpeg($img2, null, $this->jpeg_quality);
    }
    // ---------- ---------- ---------- ---------- ----------
}

session_start();

$im = new genrandomimage();
$im->genstring();

$_SESSION['sec_code_session'] = $im->keystring;

$im->genimage();
?>
Автор: Spot2015
Дата сообщения: 17.11.2015 19:50
код заменён на ранее приложенный , изменений нет
Автор: K S
Дата сообщения: 17.11.2015 20:10
Spot2015
Доступ к файлу запрещён. Либо на него не выставлены права (chmod), либо закрыт доступ к папке. Проверяйте эти варианты.
Автор: Spot2015
Дата сообщения: 18.11.2015 09:06
файл находиться с файлом registr.php в одной папке, права доступа одинаковые для всех файлов в этой папке. Где можно ещё увидеть закрыт файл или нет?
Автор: K S
Дата сообщения: 18.11.2015 09:56
Доступ может быть закрыт через .htaccess.
Автор: Spot2015
Дата сообщения: 18.11.2015 10:00
Order Deny,Allow
Deny from all

Что прописано в этом файле , который находиться в этой папке
Автор: K S
Дата сообщения: 18.11.2015 10:29
В гугле всё есть.

Страницы: 12

Предыдущая тема: Reverse proxy


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.