Ошибка в PHP файле

Тема в разделе 'PHP', создана пользователем RelaX, 25 фев 2012.

Статус темы:
Закрыта.
  1. RelaX Новичок

    Помогите пожалуйста найти тут ошибку:

    PHP:
    <?php
     
    if (!defined('IS_IN_ENGINE')) {
        
    header('HTTP/1.1 403 Forbidden');
        die(
    '<h1>403 Forbidden</h1>');
    }
    global 
    $error_array;
    require_once(
    '/libs/db.php');
    require_once(
    '/libs/smarty.php');
    require_once(
    'libs/locale/' $config['website']['lang'] . '.php');
    require_once(
    '/libs/shop.php');
    require_once(
    '/libs/classes.php');
    session_start();
     
    function 
    GetQueryByRealmType($realm_type$query) {
        switch (
    $realm_type) {
            case 
    REALM_TRINITY:
                require_once(
    '/libs/wow/realm_types/trinity.php');
                break;
            case 
    REALM_MANGOS:
                require_once(
    '/libs/wow/realm_types/mangos.php');
                break;
            default:
                return 
    ERROR_UNKNOWN_REALM;
                break;
        }
        global 
    $queries;
        return isset(
    $queries[$query]) ? $queries[$query] : $queries[QUERY_UNKNOWN];
    }
     
    function 
    getTimeString($seconds) {
        global 
    $lang;
        
    $time '';
        
    $minutes intval($seconds 60);
        
    $hours intval($minutes 60);
        
    $days intval($hours 24);
        
    $minutes $minutes 60;
        
    $hours $hours 24;
        if (
    $minutes 10)
            
    $minutes $minutes;
        if (
    $hours 10)
            
    $hours $hours;
        
    $days_pl plural($days$lang['days']);
        
    $hours_pl plural($hours$lang['hours']);
        
    $minutes_pl plural($minutes$lang['minutes']);
        if (
    $days != '0')
            
    $time $days ' ' $days_pl;
        if (
    $days != '0' && $hours != '0')
            
    $time $time ', ' $hours ' ' $hours_pl;
        if (
    $days == '0') {
            if (
    $hours != '0')
                
    $time $time ' ';
            
    $time $time $minutes ' ' $minutes_pl;
        }
        return 
    $time;
    }
     
    function 
    GetUserInfo($username$shapass$realm 0) {
        global 
    $rDB;
        global 
    $DB;
        global 
    $config;
        if (!isset(
    $config['realms'][$realm]))
            return 
    USER_ERROR_WRONG_REALMID;
        if (!isset(
    $rDB[$realm]))
            return 
    USER_ERROR_WRONG_REALMID;
        
    $realm_type $config['realms'][$realm]['type'];
        switch (
    $realm_type) {
            case 
    REALM_TRINITY:
            case 
    REALM_MANGOS:
                require_once(
    '/libs/wow/shared.php');
                break;
            default:
                return 
    ERROR_UNKNOWN_REALM;
                break;
        }
        
    $user = new UserInfo($username$shapass$realm);
        return 
    $user;
    }
     
    function 
    GetSHAHash($login$pass) {
        return 
    SHA1(strtoupper($login) . ':' strtoupper($pass));
    }
     
    function 
    buildConfirmationHash($type$realm$accountID) {
        global 
    $rDB;
        global 
    $DB;
        global 
    $config;
        if (!isset(
    $config['realms'][$realm]))
            return 
    CONFIRM_ERROR;
        if (!isset(
    $rDB[$realm]))
            return 
    CONFIRM_ERROR;
        
    $realm_type $config['realms'][$realm]['type'];
        switch (
    $realm_type) {
            case 
    REALM_TRINITY:
            case 
    REALM_MANGOS:
                require_once(
    '/libs/wow/shared.php');
                break;
            default:
                return 
    CONFIRM_ERROR;
                break;
        }
        
    $user_row = @$rDB[$realm]->selectRow(GetQueryByRealmType($realm_typeQUERY_GET_ACCINFO_BY_ID), $accountID);
        if (!
    $user_row)
            return 
    CONFIRM_ERROR;
        
    $requestTime date("Y-m-d H:i:s");
        
    $hash SHA1($type ':' $realm ':' $accountID ':' $user_row['email'] . ':' $requestTime) . $realm;
        @
    $DB->transaction();
        
    $deleted = @$DB->query('DELETE FROM ?_confirmation_hashes
                                WHERE realm = ?d
                                AND account = ?d
                                AND type = ?d'
    $realm$accountID$type);
        
    $created = @$DB->query('INSERT INTO ?_confirmation_hashes
                                (realm, type, account, username, request_date, hash)
                                VALUES
                                (?d, ?d, ?d, ?, ?, ?)'
    $realm$type$accountID$user_row['username'], $requestTime$hash);
        if (
    $created) {
            @
    $DB->commit();
        } else {
            @
    $DB->rollback();
            return 
    CONFIRM_ERROR;
        }
        return 
    $hash;
    }
     
    function 
    checkConfirmationHash($hash) {
        global 
    $DB;
        
    $realm substr($hash40);
        if (!
    is_numeric($realm))
            return 
    ERROR_UNKNOWN_ERROR;
        
    $hashRequest = @$DB->selectRow('SELECT *, DATEDIFF(NOW(), request_date) AS date_diff FROM ?_confirmation_hashes WHERE realm = ?d AND hash = ? LIMIT 1'$realm$hash);
        if (!
    $hashRequest)
            return 
    CONFIRM_ERROR_NOT_FOUND;
        if (
    $hashRequest['date_diff'] > 3)
            return 
    CONFIRM_ERROR_EXPIRE;
        
    $hashRequest['realm'] = $realm;
        return 
    $hashRequest;
    }
     
    function 
    logFailedLogin($user) {
        global 
    $DB;
        @
    $DB->query('INSERT INTO ?_failed_logins
                    (username, date, ip)
                    VALUES (?, NOW(), ?)'
    $user$_SERVER['REMOTE_ADDR']);
    }
     
    function 
    generateRandomString($minlen 7$maxlen 10$randomCase 0) {
        
    $length rand($minlen$maxlen);
        
    $symbols = array('A''B''C''D''E''F',
            
    'G''H''I''J''K''L',
            
    'M''N''O''P''R''S',
            
    'T''U''V''X''Y''Z',
            
    '1''2''3''4''5''6',
            
    '7''8''9''0');
        
    $string '';
        for (
    $i 0$i $length$i++) {
            
    $index rand(0, ($symbols) - 1);
            
    $symbol $symbols[$index];
            if (
    $randomCase)
                
    $symbol = (rand(01)) ? strtolower($symbol) : $symbol;
            
    $string .= $symbol;
        }
        return 
    $string;
    }
     
    function 
    resetCookie($name 'cabinet_auth'$domain '') {
        global 
    $config;
        if (
    $domain == '')
            
    $domain $config['website']['cookie_domain'];
        
    $time time() - 3600;
        
    setcookie($name''$time'/'$domain);
    }
     
    function 
    addCookie($user$hash$realm$name 'cabinet_auth'$domain '') {
        global 
    $config;
        if (
    $domain == '')
            
    $domain $config['website']['cookie_domain'];
        
    $remember_time time() + 3000000;
        
    setcookie($name$user '|' $hash '|' $realm$remember_time'/'$domain);
    }
     
    function 
    checkCookie() {
        if (isset(
    $_COOKIE['cabinet_auth'])) {
            
    $cookie explode('|'$_COOKIE['cabinet_auth']);
            
    $_SESSION['username'] = $cookie[0];
            
    $_SESSION['pass_hash'] = $cookie[1];
            
    $_SESSION['realmid'] = $cookie[2];
        }
    }
     
    function 
    checkAuth() {
        global 
    $user;
        
    $user GetUserInfo($_SESSION['username'], $_SESSION['pass_hash'], $_SESSION['realmid']);
        if (
    $user && $user->IsLoggedIn()) {
            global 
    $smarty;
            
    $_SESSION['userid'] = $user->GetID();
            
    $smarty->assign('user'$user);
        }
        else
            unset(
    $GLOBALS['user']);
    }
     
    function 
    DoLogout() {
        global 
    $user;
        if (
    $user->GetSessionToken() != $_REQUEST['logout'])
            
    DoPrintForbidden($_SERVER['REQUEST_URI']);
        
    resetCookie();
        global 
    $config;
        
    $user = array();
        
    session_unset();
        
    session_destroy();
        
    header('Location: ' $config['website']['baseurl']);
        exit;
    }
     
    function 
    CheckOldIE() {
        
    $user_agent $_SERVER['HTTP_USER_AGENT'];
        if (
    stripos($user_agent'MSIE 6.0') !== false
                
    && stripos($user_agent'MSIE 8.0') === false
                
    && stripos($user_agent'MSIE 7.0') === false) {
            if (!isset(
    $HTTP_COOKIE_VARS['old_ie'])) {
                
    SetCookie('old_ie''yes'time() + 60 60 24 360);
                
    header('Location: /oldie/ie.html');
                die();
            }
        }
    }
     
    function 
    SendEmail($to$subject$message$html 0$replyTo '') {
        global 
    $config;
        require_once(
    '/libs/SWIFTmail/swift_required.php');
        switch (
    $config['website']['mail_transport']) {
            case 
    'phpmail':
                
    $transport Swift_MailTransport::newInstance();
                break;
            case 
    'sendmail':
                break;
            case 
    'smtp':
            default: {
                    
    $transport Swift_SmtpTransport::newInstance($config['website']['smtp_host'], $config['website']['smtp_port']);
                    if (
    $config['website']['smtp_user'] != '') {
                        
    $transport->setUsername($config['website']['smtp_user']);
                        
    $transport->setPassword($config['website']['smtp_pass']);
                    }
                    break;
                }
        }
        
    $emailer Swift_Mailer::newInstance($transport);
        
    $message Swift_Message::newInstance()
                ->
    setCharset('utf-8')
                ->
    setSubject($subject)
                ->
    setFrom(array($config['website']['from_email'] => $config['website']['app_name']))
                ->
    setTo($to)
                ->
    setBody($message, (($html == 0) ? 'text/plain' 'text/html'));
        if (
    $replyTo != '')
            
    $message->SetReplyTo($replyTo);
        return 
    $emailer->send($message);
    }
     
    function 
    onlyEngAndNum($str) {
        return 
    $preg_match('/[^a-zA-Z0-9_]/'$str);
    }
     
    function 
    plural($n$endings) {
        
    $n abs($n);
        
    $endings explode(';'$endings);
        
    $ending $n 10 == && $n 100 != 11 : ($n 10 >= && $n 10 <= && ($n 100 10 or $n 100 >= 20) ? 2);
        return 
    $endings[$ending];
    }
     
    function 
    checkdnsrr_win($host$recType 'MX') {
        if (!empty(
    $host)) {
            
    exec('nslookup -type=' $recType ' ' $host$output);
            foreach (
    $output as $line) {
                if (
    preg_match("/^$host/"$line)) {
                    return 
    true;
                }
            }
            return 
    false;
        }
        return 
    false;
    }
     
    function 
    CheckEmail($email) {
        if (!
    preg_match("/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\.[a-z]{2,4}$/i"$email)) {
            return 
    0;
        }
        list (
    $username$domain) = split('@'$email);
        if (
    strtoupper(substr(PHP_OS03)) === 'WIN') {
            if (!
    checkdnsrr_win($domain'MX')) {
                return 
    0;
            }
            return 
    1;
        } else {
            if (!
    checkdnsrr($domain'MX')) {
                return 
    0;
            }
            return 
    1;
        }
    }
     
    function 
    maskEmail($email) {
        
    $result $email[0];
        
    $result .= preg_replace('/[^.@]/i''*'substr($email1));
        return 
    $result;
    }
     
    function 
    PrepareString($str$newlines false) {
        if (
    get_magic_quotes_gpc())
            
    $str stripcslashes($str);
        
    $str strip_tags($str);
        if (
    $newlines) {
            
    $str nl2br($str);
        }
        return 
    $str;
    }
     
    function 
    CharGuidCallback($matches) {
        global 
    $user;
        
    $char GetCharInfo($user->GetRealmID(), $matches[1]);
        return 
    '<strong>' $char['name'] . '</strong>';
    }
     
    function 
    CharNameCallback($matches) {
        global 
    $lang;
        return 
    $lang['OLDNAME'] . '<strong>' $matches[1] . '</strong>';
    }
     
    function 
    localizeLogMessage($matches) {
        global 
    $lang;
        return 
    $lang[$matches[1]];
    }
     
    function 
    parseActionLogMessage($message) {
        
    $message preg_replace_callback("/\[OLDNAME:(.*)\]/""CharNameCallback"$message);
        
    $message preg_replace_callback("/\[CHARGUID:([0-9]+)\]/""CharGuidCallback"$message);
        
    $message preg_replace_callback("/\{(.*)\}/U""localizeLogMessage"$message);
        return 
    $message;
    }
     
    function 
    logMoneyAction($amount$target$reason) {
        global 
    $DB;
        global 
    $user;
        
    $actionID = @$DB->query('INSERT INTO ?_money_logs
                                (action_date,amount,realm,
                                initAccount,targetAccount,
                                reason,ip)
                                VALUES(NOW(), ?d, ?d, ?d,
                                ?d, ?, ?)'
    $amount$user->GetRealmID(), $user->GetID(), $target$reason$user->GetCurrentIP());
        return (
    $actionID) ? $actionID 0;
    }
     
    function 
    generateToken() {
        
    $time time();
        
    $ip $_SERVER['REMOTE_ADDR'];
        
    $string generateRandomString();
        return 
    SHA1($time $string $ip);
    }
     
    function 
    GetCostWithDiscount($cost) {
        global 
    $user;
        
    $costWithDiscount $cost;
        if (
    $user->GetDiscount() > 0) {
            
    $costWithDiscount $cost ceil($costWithDiscount * ($user->GetDiscount() / 100));
            if (
    $costWithDiscount 1)
                
    $costWithDiscount 1;
        }
        return 
    $costWithDiscount;
    }
     
    function 
    DoPrintForbidden($url) {
        
    header('HTTP/1.0 403 Forbidden');
        
    header('HTTP/1.1 403 Forbidden');
        
    header('Status: 403 Forbidden');
        die(
    '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
        <html><head>
        <title>403 Forbidden</title>
        </head><body>
        <h1>Forbidden</h1>
        <p>You don\'t have permission to access ' 
    htmlentities($url) . '
        on this server.</p>
        </body></html>'
    );
    }
     
    function 
    DoPrintNotFound($url) {
        
    header('HTTP/1.0 404 Not Found');
        
    header('HTTP/1.1 404 Not Found');
        
    header('Status: 404 Not Found');
        die(
    '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
        <html><head>
        <title>404 Not Found</title>
        </head><body>
        <h1>Not Found</h1>
        <p>The requested URL ' 
    htmlentities($url) . ' was not found on this server.</p>
        </body></html>'
    );
    }
     
    function 
    DoPrintUnavailable($url) {
        
    header('HTTP/1.1 503 Service Temporarily Unavailable');
        die(
    '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
        <html><head>
        <title>Страница временно недоступна</title>
        </head><body>
        <center>
            <br><br><br><br><h1><font color="#444444">Ой.</font></h1>
            <br><h2><font color="#444444">Страница ' 
    htmlentities($url) . ' временно недоступна.</font></h2>
            <br><h2><font color="#444444">Попробуйте зайти немного позже.</font></h2>
            <br><br><h3><font color="#444444">Код ошибки: 503</font></h3>
            </center>
        </body></html>'
    );
    }
    ?>
  2. XmP ADD ebx, 110h

    Там require, и протестировать скрипт без подключаемых файлов невозможно. Тут, насколько я вижу одни функции, так что ошибку найти легче, если она синтаксическая, иначе надо разбирать каждую ф-цию. Что именно не работает?
  3. RelaX Новичок

    Белый экран вместо содержимого
  4. XmP ADD ebx, 110h

    Так тут и есть белый экран:D
  5. RelaX Новичок

    Вот мне и нужно, чтобы было содержимое :)
  6. XmP ADD ebx, 110h

    В каком смысле, этот файл описывает функции а на экран ничего не выводит. Всё правильно :banghead:
  7. RelaX Новичок

    Вот, что не доделали создатели скрипта:

  8. XmP ADD ebx, 110h

    Нужно заменить:
    PHP:

    $index 
    rand(0, ($symbols) - 1);
    на
    PHP:

    $index 
    rand(033);
    Честно, вы знаете PHP или нет?


    Теги лицензия ключ key исправить ошибку создателей личного кабинета Symphony. Как исправить, какая функция, найти.
  9. RelaX Новичок

    Знаю только основы. Спасибо за ответ.
Статус темы:
Закрыта.

Поделиться этой страницей