Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Galera é o seguinte eu ja possuo uma pequena noção sobre sites mas estou com um NICAW que está funcionando normal, ele cria a conta, faz login no site e tudo, mas sempre que ele termina um processo com SUCESSO ele exibe uma mensagem de erro, por exemplo quando eu crio uma conta ele cria mais exibe uma mensagem de erro, o mesmo acontece quando crio um CHAR ele tambem exibe uma mensagem de erro mais cria o char normalmente, vou deixar as mensagens abaixo para quem puder ajudar, creio que o erro nao seja grave pois mesmo exibindo as mensagens ele cria a conta ou char normalmente .... to sem entender kkk

----

Quando crio uma nova conta aparece esta mensagem, porem a conta é criada normalmente(http://localhost/register.php):

Fatal error: Uncaught exception 'DatabaseQueryException'
Message: Error #1048:Column 'ip' cannot be null
SQL query: INSERT INTO `nicaw_account_logs` (id, ip, account_id, date, action) VALUES(NULL, INET_ATON('::1'), 123456, UNIX_TIMESTAMP(NOW()), 'Created')
File: sql.php on line: 94
Script was terminated because something unexpected happened. You can report this, if you think it's a bug.

Debug Backtrace:Disabled

OBS: Depois de aparecer a mensagem eu acesso o localhost e acesso a mesma normalmente rsrsrs

---

Quando crio um NOVO CHAR aparece esta mensagem, porem o CHAR é criado normalmente(http://localhost/account.php):

Fatal error: Uncaught exception 'DatabaseQueryException'
Message: Error #1048:Column 'ip' cannot be null
SQL query: INSERT INTO `nicaw_account_logs` (id, ip, account_id, date, action) VALUES(NULL, INET_ATON('::1'), 518743, UNIX_TIMESTAMP(NOW()), 'Created character: Olier')
File: sql.php on line: 94
Script was terminated because something unexpected happened. You can report this, if you think it's a bug.

Debug Backtrace:Disabled

OBS: Depois de aparecer a mensagem eu acesso o localhost e o char ta la criado certinho até da pra faze login normal no server ....

---

Aqui está todo o sql.php

 

<?php
/*
     Copyright (C) 2007 - 2009  Nicaw

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
class SQL {
    private
    $sql_connection,
    $schema_version,
    $sql_tables,
    $last_query,
    $last_insert_id;

    //creates new connection
    public function __construct($server, $user, $password, $database) {

        //warn if MySQL extension is not installed
        if(!extension_loaded('mysql'))
            throw new LibraryMissingException('MySQL library is not installed. Database access is impossible.', );

        //establish a link to MySQL
        $con = @mysql_connect($server,$user,$password);
        if ($con === false)
            throw new DatabaseConnectException('Unable to connect to mysql server. Please make sure it is up and running and you have correct user/password in config.inc.php.', 1);

        //select otserv database
        if (!mysql_select_db($database))
            throw new DatabaseSelectException('Unable to select database: '.$database.'. Make sure it exists.', 2);

        //retrieve table list
        $result = mysql_query('SHOW TABLES');
        if ($result === false)
            DatabaseQueryException('Failed to retrieve a table list.');

        while ($a = mysql_fetch_array($result))
            $this->sql_tables[] = $a[];

        //retrieve schema version
        $result = mysql_query('SELECT value FROM schema_info WHERE name = \'version\'');
        if ($result === false) {
            $this->schema_version = false;
        } else {
            $a = mysql_fetch_array($result);
            $this->schema_version = $a['value'];
        }

        //assign the connection
        $this->sql_connection = $con;

        return true;
    }

    public function getSchemaVersion() {
        return $this->schema_version;
    }

    public function isTable($mixed) {
        return in_array($mixed, $this->sql_tables);
    }

    public function __destruct() {
        if(is_resource($this->last_query))
            mysql_free_result($this->last_query);
        mysql_close($this->sql_connection);
    }

    //Creates tables
    public function setup() {
        $tables = explode(';', file_get_contents('documents/shema.mysql'));
        foreach ($tables as $table) mysql_query($table);
    }

    //Perform simple SQL query
    public function myQuery($q) {
        if(is_resource($this->last_query))
            mysql_free_result($this->last_query);
        $this->last_query = mysql_query($q, $this->sql_connection);
        $this->last_insert_id = mysql_insert_id();
        if ($this->last_query === false) {
            $this->analyze();
            throw new DatabaseQueryException('Error #'.mysql_errno().':'.mysql_error(), $q);
        }
        return $this->last_query;
    }

    //True is last query failed
    public function failed() {
        if ($this->last_query === false) return true;
        return false;
    }

    //Returns current array with data values
    public function fetch_array() {
        if (!$this->failed())
            if (isset($this->last_query))
                return mysql_fetch_array($this->last_query);
            else
                throw new ClassException('Attempt to fetch a null query.');
        else
            throw new ClassException('Attempt to fetch failed query.');
    }

    //Returns the last insert id
    public function insert_id() {
        return $this->last_insert_id;
    }

    //Returns the number of rows affected
    public function num_rows() {
        if (!$this->failed())
            return mysql_num_rows($this->last_query);
        else
            throw new ClassException('Attempt to count failed query.');
    }

    //Quotes a string
    public function escape_string($string) {
        return mysql_real_escape_string($string);
    }

    //Quotes a value so it's safe to use in SQL statement
    public function quote($value) {
        if(is_numeric($value) && $value[] != '0')
            return (int) $value;
        else
            return '\''.$this->escape_string($value).'\'';
    }

    public function analyze() {
    //determine database type, try to perform autosetup
        $is_aac_db = in_array('nicaw_accounts',$this->sql_tables);
        $is_server_db = in_array('accounts',$this->sql_tables) && in_array('players',$this->sql_tables);
        $is_svn = in_array('player_depotitems',$this->sql_tables) && in_array('groups',$this->sql_tables);
        $is_cvs = in_array('playerstorage',$this->sql_tables) && in_array('skills',$this->sql_tables);
        if (!$is_aac_db) {
            $this->setup();
            throw new DatabaseException('Notice: AutoSetup has attempted to create missing tables for you. Please create MySQL tables manually from "database.sql" if you are still getting this message.', 3);
        }elseif (!$is_server_db) {
            throw new DatabaseException('It appears you don\'t have SQL sample imported for OT server or it is not supported.', 4);
        }elseif ($is_cvs && !$is_svn) {
            throw new DatabaseException('This AAC version does not support your server. Consider using SQL v1.5.', 5);
        }
        return true;
    }

    public function repairTables() {
        if (isset($this->sql_tables))
            foreach($this->sql_tables as $table)
                mysql_query('REPAIR TABLE '.$table);
        return true;
    }

    ######################################
    # Methods for simple  data access    #
    ######################################

    //Insert data
    public function myInsert($table,$data) {global $cfg;
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'INSERT INTO `'.mysql_escape_string($table).'` (';
        foreach ($fields as $field)
            $query.= '`'.mysql_escape_string($field).'`,';
        $query = substr($query, , strlen($query)-1);
        $query.= ') VALUES (';
        foreach ($values as $value)
            if ($value === null)
                $query.= 'NULL,';
            else
                $query.= $this->quote($value).',';
        $query = substr($query, , strlen($query)-1);
        $query.= ');';
        $this->myQuery($query);
        return true;
    }

    //Replace data
    public function myReplace($table,$data) {global $cfg;
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'REPLACE INTO `'.mysql_escape_string($table).'` (';
        foreach ($fields as $field)
            $query.= '`'.mysql_escape_string($field).'`,';
        $query = substr($query, , strlen($query)-1);
        $query.= ') VALUES (';
        foreach ($values as $value)
            if ($value === null)
                $query.= 'NULL,';
            else
                $query.= $this->quote($value).',';
        $query = substr($query, , strlen($query)-1);
        $query.= ');';
        $this->myQuery($query);
        return true;
    }

    //Retrieve single row
    public function myRetrieve($table,$data) {
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'SELECT * FROM `'.mysql_escape_string($table).'` WHERE (';
        for ($i = ; $i < count($fields); $i++)
            $query.= '`'.mysql_escape_string($fields[$i]).'` = '.$this->quote($values[$i]).' AND ';
        $query = substr($query, , strlen($query)-4);
        $query.=');';
        $this->myQuery($query);
        if ($this->num_rows() != 1) return false;
        return $this->fetch_array();
    }

    //Update data
    public function myUpdate($table,$data,$where,$limit=1) {
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'UPDATE `'.mysql_escape_string($table).'` SET ';
        for ($i = ; $i < count($fields); $i++)
            $query.= '`'.mysql_escape_string($fields[$i]).'` = '.$this->quote($values[$i]).', ';
        $query = substr($query, , strlen($query)-2);
        $query.=' WHERE (';
        $fields = array_keys($where);
        $values = array_values($where);
        for ($i = ; $i < count($fields); $i++)
            $query.= '`'.mysql_escape_string($fields[$i]).'` = '.$this->quote($values[$i]).' AND ';
        $query = substr($query, , strlen($query)-4);
        if (isset($limit))
            $query.=') LIMIT '.$limit.';';
        else
            $query.=');';
        $this->myQuery($query);
        return true;
    }

    //Delete data
    public function myDelete($table,$data,$limit = 1) {
        $fields = array_keys($data);
        $values = array_values($data);
        $query = 'DELETE FROM `'.mysql_escape_string($table).'` WHERE (';
        for ($i = ; $i < count($fields); $i++)
            $query.= '`'.mysql_escape_string($fields[$i]).'` = '.$this->quote($values[$i]).' AND ';
        $query = substr($query, , strlen($query)-4);
        if ($limit > )
            $query.=') LIMIT '.$limit.';';
        else
            $query.=');';
        $this->myQuery($query);
        return true;
    }
}
?>

Aqui esta as linhas por ordem do 90 a 95:

       $this->last_query = mysql_query($q, $this->sql_connection);
        $this->last_insert_id = mysql_insert_id();
        if ($this->last_query === false) {
            $this->analyze();
            throw new DatabaseQueryException('Error #'.mysql_errno().':'.mysql_error(), $q);
        }

 

Da uma ajuda ai moçada!

Editado por Peterson Tibiano (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Esta é uma mensagem automática! Este tópico foi movido para a área correta.
Pedimos que você leia as regras do fórum.

Spoiler

This is an automated message! This topic has been moved to the correct area.
Please read the forum rules.

 

@Peterson Tibiano

Tome cuidado ao postar na área errada e sempre use a ferramenta SPOILER, porque o código do arquivo está sobrecarregando o tópico e quem entra pelo celular, não consegue te ajudar.

Editado por Azhaurn (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Godofcritic
      Preciso de um script em php para recuperação de senha
    • Por Natan Fernandes
      Bom, esta tudo funcionando, crio a conta fala que a conta foi criada, e ela realmente foi, eu só queria ajuda pq quando o player cria a conta aparece isso:
       
      [JavaScript] Cannot parse XML string: Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 174 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 176 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 176 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 176 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 174 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 176 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 176 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 176 Account created! No caso, eu queria alterar a pagina para aonde ele vai quando ele ter sucesos em criar a conta, alguem poderia me auxiliar?
    • Por Natan Fernandes
      Ola comunidade, bom eu estou com uma versão antiga de tibia, e achei um site compativel, ele esta criando a conta e esta tudo funcionando corretamente, mas no site aparece esse codigo no canto <<:
       
      Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 214 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 216 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 214 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\xampp\htdocs\class\sql.php on line 216 Alguem poderia me ajudar?
    • Por Mathwsz
      Boa noite meus caros! Então, venho até aqui fazer um pedido que eu já fiz uma vez e que não fui atendido e que espero que dessa vez seja atendido. Então, é o seguinte: Eu quero que na página "Characters" logo ali em Special Skills apareça a Spell Vip que o player tem (Storage) talvez, eu não sei muito bem.. Um exemplo é o site: http://hellblazer.servegame.com 
       
      Ps: Se não entendeu e deseja me ajudar, comente aí que darei mais detalhes, mas acho que vendo como funciona vocês entenderam.
      Ps2: Minha página characters.php só mando via PM pois é privado do meu projeto.
       
      Espero que me ajudem, porque da outra vez passou em branco e eu jamais fiz isso com alguém do TK.
      Abçs e obrigado pela atenção!
    • Por Mathwsz
      Salve galera do TK, estou com um problema.. Bom instalei o xampp 1.7.7 e tentei iniciar o Apache/MySql, ambos funcionaram, mas após certo tempo o apache não inicia mais.
       
      Obs: Não tenho skype no meu computador.
       
      Aguardo retornos e obrigado pela atenção.
      Att, Matheus.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo