Tudo que jakimif postou
- Script [Characters.php]
-
CRUD - php/mysql Orientação a Obejetos
Olá a todos, nesses últimos tempos andei pesquisando sobre criação de website para Open Tibia, não achei muita coisa por ai na internet, então resolvi analisar o banco de dados de um servidor de tibia,e cá pra nos os sites atuais não vão muito alem de um crud,para quem não sabe crud são operações basicas feita no banco de dados . C create (criar) R read (ler) U (update) D (delete) Pensando nisso comecei a desenvolver um website para esse fim, criei algumas classe para fazer todo esse processo e resolvi compartilhar,não vou dar muitos detalhes sobre a classe,apenas postarei exemplos de utilização A primeira classe vem com nome de banco.class.php responsavel pela conexão com banco de dados e operações CRUD <?php abstract class banco{ /*Propriedades*/ public $servidor = "localhost"; public $usuario = "root"; public $senha = "senha"; public $nomebanco = "nome"; public $conexao = NULL; public $dataset = NULL; public $extras_select = NULL; public $linhaafetadas = -1; /*Metodos*/ public function __construct(){ $this->conecta(); } public function __destruct(){ if($this->conexao != NULL): mysql_close($this->conexao); endif; } public function conecta(){ $this->conexao = mysql_connect($this->servidor,$this->usuario,$this->senha,TRUE) or die($this->trataerro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),true)); mysql_select_db($this->nomebanco) or die($this->trataerro(__FILE__,__FUNCTION__,mysql_errno(),mysql_error(),true)); mysql_query("SET NAMES 'utf8'"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_results=utf8"); } public function inserir($objeto){ $sql = "INSERT INTO ".$objeto->tabela." ("; for($i=0;$i<count($objeto->campos_valores);$i++): $sql .= key($objeto->campos_valores); if($i < (count($objeto->campos_valores)-1)): $sql .= ", "; else: $sql .= ") "; endif; next($objeto->campos_valores); endfor; reset($objeto->campos_valores); $sql .= "VALUES ("; for($i=0;$i<count($objeto->campos_valores);$i++): $sql .= is_numeric($objeto->campos_valores[key($objeto->campos_valores)]) ? $objeto->campos_valores[key($objeto->campos_valores)] : "'".$objeto->campos_valores[key($objeto->campos_valores)]."'"; if($i < (count($objeto->campos_valores)-1)): $sql .= ", "; else: $sql .= ") "; endif; next($objeto->campos_valores); endfor; return $this->executaSQL($sql); }// inserir public function atualizar($objeto){ $sql = "UPDATE ".$objeto->tabela." SET "; for($i=0;$i<count($objeto->campos_valores);$i++): $sql .= key($objeto->campos_valores)."="; $sql .= is_numeric($objeto->campos_valores[key($objeto->campos_valores)]) ? $objeto->campos_valores[key($objeto->campos_valores)] : "'".$objeto->campos_valores[key($objeto->campos_valores)]."'"; if($i < (count($objeto->campos_valores)-1)): $sql .= ", "; else: $sql .= " "; endif; next($objeto->campos_valores); endfor; $sql .="WHERE ".$objeto->id."="; $sql .= is_numeric($objeto->valorid) ? $objeto->valorid : "'".$objeto->valorid."'"; echo $sql; return $this->executaSQL($sql); }//atualizar public function deletar($objeto){ $sql = "DELETE FROM ".$objeto->tabela; $sql .=" WHERE ".$objeto->id."="; $sql .= is_numeric($objeto->valorid) ? $objeto->valorid : "'".$objeto->valorid."'"; return $this->executaSQL($sql); }//delete public function selecionaTudo($objeto){ $sql = "SELECT * FROM ".$objeto->tabela; if($objeto->extras_select != NULL): $sql .= " ".$objeto->extras_select; endif; return $this->executaSQL($sql); }//seleciona tudo public function selecionaCampos($objeto){ $sql = "SELECT "; for($i=0;$i<count($objeto->campos_valores);$i++): $sql .= key($objeto->campos_valores); if($i < (count($objeto->campos_valores)-1)): $sql .= ", "; else: $sql .= " "; endif; next($objeto->campos_valores); endfor; $sql .= " FROM ".$objeto->tabela; if($objeto->extras_select != NULL): $sql .= " ".$objeto->extras_select; endif; return $this->executaSQL($sql); }//seleciona tudo public function executaSQL($sql=NULL){ if($sql != NULL): $query = mysql_query($sql) or $this->tratarerro(__FILE__,__FUNCTION__); $this->linhasafetadas = mysql_affected_rows($this->conexao); if(substr(trim(strtolower($sql)),0,6)=='select'): $this->dataset = $query; return $query; else: return $this->linhasafetadas; endif; else: $this->trataerro(__FILE__,__FUNCTION__,NULL,'Ocorreu um erro interno,desculpe',false); endif; }// executa SQL public function retornaDados($tipo=NULL){ switch(strtolower($tipo)): case "array": return mysql_fetch_array($this->dataset); break; case "assoc": return mysql_fetch_assoc($this->dataset); break; case "object": return mysql_fetch_object($this->dataset); break; default: return mysql_fetch_object($this->dataset); break; endswitch; }//retorna dados public function trataerro($arquivo=NULL,$rotina=NULL,$numerro=NULL,$msgerro=NULL,$geraexcept=FALSE){ if($arquivo == NULL) $arquivo="Não informado"; if ($rotina == NULL) $rotina="Não informada"; if ($numerro == NULL) $numerro=mysql_errno($this->conexao); if ($msgerro == NUll) $msgerro=mysql_error($this->conexao); $resultado = 'Ocorreu um erro com os seguintes detalhes:<br /> <strong>Arquivo:</strong> '.$arquivo.'<br /> <strong>Rotina:</strong> '.$rotina.'<br /> <strong>Código:</strong> '.$numerro.'<br /> <strong>Arquivo:</strong> '.$msgerro.''; if($geraexcept = false): echo($resultado); else: die($resultado); endif; } } ?> Uma segunda classe precisou ser criada por fim de organização com o nome de base.class.php responsavel por de fato pegar o nome da tabela no banco de dado e executar as operações <?php require_once("banco.class.php"); abstract class base extends banco{ public $tabela = NULL; public $campos_valores = array(); public $id = NULL; public $valorid = NULL; public $extras_select = NULL; public function addCampo($campo=NULL,$valor=NULL){ if($campo != NULL): $this->campos_valores[$campo] = $valor; endif; } public function delCampo($campo=NULL){ if(array_key_exists($campo,$this->campos_valores)): unset ($this->campos_valores[$campo]); endif; } public function setValor($campo=NULL,$valor=NULL){ if($campo != NULL && $valor != NULL): $this->campos_valores[$campo] = $valor; endif; } public function getValor($campo=NULL){ if($campo != NULL && array_key_exists($campo,$this->campos_valores)): return $this->campos_valores[$campo]; else: return FALSE; endif; } } ?> Agora vamos preparar a classe para executar as operações desejadas na tabela "accounts" accounts.class.php <?php require_once ("base.class.php"); class accounts extends base{ public function __construct($campos=array()){ parent::__construct(); $this->tabela = "accounts"; /*Seleciona a tabela*/ if(sizeof($campos)<= 0): $this->campos_valores = array( "email" => 'andre_garehotmail.com' ); else: $this->campos_valores = $campos; endif; $this->id = "id"; } } ?> E por fim exemplo de utilização para começar a utilizar a classe precisamos importar ela na página <?php require_once ("accounts.class.php"); $accounts = new accounts(); Um exemplo pratico atualizando campos na tabela accounts,pode pegar este dados de um formulario, como geralmente é feito $accounts->valorid = 6; $accounts->setValor('name','Rodrigo'); ## Atualizando o nome 'Rodrigo' na tabela accounts ## $accounts->setValor('password','123455');## Adicionando o 'password' na tabela accounts ## $accounts->atualizar($accounts); Selecionando todos os dados da account,um exemplo disso é o characters.php onde lista as informações do personagem(este exemplo foi feito com account,poderia ser na tabela players) $accounts->extras_select = "WHERE id = 5"; /*selecionar id,name,email da account ID = 5*/ $accounts->selecionaTudo($accounts); while($res = $accounts->retornaDados()): echo $res->id .' / '.$res->name .' / '.$res->email.'<br/>'; endwhile; Deletando a account no banco de dados $accounts->valorid = 6; $accounts->deletar($accounts); Adicionando uma account, lembrando que pode pegar os dados pelo formulario,como geralmente é feito no exemplo foi feito so Account Name e Password $accounts->addCampo('name','Jakimif'); $accounts->addCampo('password','123456'); $accounts->inserir($accounts); isso não foi um tutorial e sim exemplo de utilização da classe. poderia ser feito tudo na mesma página,mas dificultaria a manutenção criando a classe você pode utilizar em qualquer página do site com uma simples linha,como feito nos exemplos acima
-
[ERRO] Failed to connect to database.
tente ao inves de "localhost" colocar 127.0.0.1
-
(Resolvido)[AJUDAR] Como cria website com hospedagem
Existem 2 meneiras para fazer isso 1º - Você tem a hospedagem certo ? envie o seu site para lá, entre em contato com o suporte da hospedagem e diga que quer acessar o banco de dados por meio "externo" eles lhe passarão as informações para acessar o banco de dados,pegue essa informação e coloque no config.lua do seu servidor. 2º - A segunda maneira,é colocar seu OT e site no VPS,entrar em contato com sua hospedagem e pedirem para que mude a DNS do seu dominio para o IP do VPS.
-
[show -off] Hunters Online - Web
Olá a todos, venho aqui apresentar o novo website do projeto Hunters Online, onde o layout foi totalmente baseado em outro layout visto por ai na internet, não me recordo aonde. O site foi construído do zero, todas as páginas e scripts feitas por mim. No menu foi feito um dropdown, ao clicar abrirá novas opções. Ainda está em fase de desenvolvimento portanto é possível apenas, Criar Conta,Login,Highscores. O site se encontra online neste link: http://216.245.202.232 Algumas imagens abaixo: Parte 1: Parte 2: Criar Conta: Login:
-
(Resolvido)[AJUDAR] Como cria website com hospedagem
Não precisava da hospedagem e sim do dominio .com registrado,mas caso queira usar a hospedagem é so transferir os arquivos do seu site para o local da hospedagem via ftp,e configurar o banco de dados como fosse localhost, no config.lua do seu ot ficaria assim:
-
PEDIDO DE COMANDO
- [Ajuda] Descompilar client .exe
Não é tão facil assim, os programa que existem não funcionam direito, o maximo que você pode consseguir e extrair o .spr , caso seja de seu interesse estudar isso a fundo poderia começar a pesquisando sobre engenharia reversa.- [AJUDA] Senha na Database diferente da criada no site
Como as senhas estão aparecendo no banco de dados ?- MYSQL REMOTO
qual a hospedagem ? provavelmente no lugar de "localhost" coloque "mysql.seudominio.com"- Problemas com criação de conta pelo site- Colocando ONLINE!
- [Duvidas]Galera Help Website Fast
- Hunters Online
Nome: André França Idade: 21 Anos Cargo: Webmaster/Programador Skype: xexelento6 Facebook: andreeavilaa Horas que podem ser dedicadas ao Projeto: Em média 4 horas por dia Conhece a série 'Supernatural'?: Apenas pelo nome Nível de Experiência: Experiência de 5 anos programando website/servidores. Algum trabalho feito (caso tenha): Varios trabalhos feitos,apresendo no proximo contato Porque quer entrar na equipe: Não gosto de fazer coisas por fazer,creio que esse é um projeto bem estruturado e inovador.- Barba? você tem?
tenho 19 e ja tenho bastante , ainda um poco falhada '-' OAPKFODS- [DÚVIDA] Player Status Gesior Extreme
Pelo que vi o site de lá é configurado, acho que o problema é no servidor mesmo ..- {DUVIDA} Descompilar distro...
- [DÚVIDA] Player Status Gesior Extreme
Amigo, acho que o erro seria no proprio servidor senão, corra atras do suporte Otprojects.- [Dúvida] LgvHost ou Onservers?
- [Dúvida] LgvHost ou Onservers?
- Ajuda em executavel.
Aconselho a deixar em console, é mais estavel mas caso queira esse me add no msn posso te ajudar ; [email protected]- Erro no Gesior.
Qual webserver está usando, xampp ? caso for mude para versão 1.7.5 ou 1.6.7- Baiak Editado
- [Ajuda] Descompilar client .exe
Informação Importante
Confirmação de Termo