Jump to content

Omar~

Members
  • Content count

    1325
  • Joined

  • Last visited

  • Days Won

    15

Omar~ last won the day on May 27 2018

Omar~ had the most liked content!

Community Reputation

87 Bom

About Omar~

  • Rank
    Knowledge is everything
  • Birthday 04/20/1984

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    Nova Venécia (ES)

Recent Profile Visitors

15251 profile views
  1. Omar~

    O autoload do Omar só funciona no projeto dele

    Nem pensar em usar isso, só vai complicar sua vida ainda mais. Vamos por parte... DIRECTORY_SEPARATOR é uma constante nativa do PHP ela vem configurado de acordo com a separação padrão do sistema operacional, se a separação usa barra, o valor será "/", se a separação usa contra-barra o valor será "\". Quase impossível encontrar um SO que não reconheça a separação pela barra comum, ou seja Isso: 'dirA' . DIRECTORY_SEPARATOR . 'dirB' . DIRECTORY_SEPARATOR . 'dirC' . DIRECTORY_SEPARATOR É a mesma coisa de usar: 'dirA/dirB/dirC/ Na verdade eu só uso que desse modo ao bater os olhos em cima já vejo que tem algo sendo anexo alí. Você pode usar a constante mágica nativa do PHP "__DIR__" sempre retorna o diretório do arquivo em que ela é acionada. Digamos que eu queira voltar uma diretório atrás e entrar em outro: __DIR__ . '../outro_diretorio' Ou seja do local atual retroceda e entre em outro, essa é uma das melhores dicas que sempre apresento as pessoas, pois assim fica muito mais fácil apontar locais de arquivos, se começar por onde está arquivo que vai anexar outro evitando qualquer discordância gerada por um de reescrita por htaccess em exemplo no apache. Notei um problema bem perigoso no código, isso pode gerar uma dor de cabeça para ajeitar no futuro... Existem em seu código arquivos, diretórios e afins que usam caracteres diacríticos Fora o nome de classes, métodos, funções, objetos etc... que estão com letras acentuadas, isso nunca deve acontecer, vemos incontáveis pessoas que cometem esse erro depois ficam malucas tentando corrigir codificação, acentuações e tais. É como construir uma casa, se faz o alicerce errado, não adianta mais concerta-lo depois do telhado pronto, é derrubar tudo e reiniciar do zero. POO não tem essa de "eu vou fazer do meu jeito porque assim fica melhor", o padrão deve ser LEI INVIOLÁVEL. Classes sempre devem ter nomes iniciadas com letras maiúsculas O nome do arquivo deve ser idêntico ao nome da classe. Métodos de classe devem sempre começar com letras minúsculas e se for mais de uma palavra ficam juntas sendo a segunda começando com letra maiúscula. Expl: meuMetodo() Funções devem começar com letras maiúsculas e segue o mesmo dos métodos de classe ao usar palavras compostas. Voltando ao problema... Não sei se de fato isso vai interferir na composição do PHP, mas quando tentei aderir tive muitos problemas parecidos, e todo mundo que conheço que usou passou por problemas. Usar uma barra antes para indicar o caminho de um arquivo, como aqui: Em teoria o php irá gerar na memória o código do controle.php, por causa da barra ele irá ao topo da arquitetura, antes do index, não sei se é realmente isso Além do mais você usa uma má prática de sintaxes depurativas que não é usar propriedades de atributos entre aspas, o não uso é apenas para fins de testes de desempenho pois vai forçar muito mais a máquina porque o navegador vai ter que concertar seu erro antes de renderizar o HTML e nem sempre ele corrige corretamente uma vez que há muito código do html mau escrito, assim como tem barras na propriedade que indica o arquivo para onde deve redirecionar o navegador pode chegar a enviar uma informação incoerente ao servidor que terá que entregar a composição da arquitetura completamente bagunçada. Você pode colocar propriedades fora de aspas? Pode, mas somente se não utiliza um linguagem de servidor por trás como o PHP, é nos mesmos princípios de escrever uma string dentro de uma função em usar aspas. Algumas coisas que você pode testar: Dentro da tag <head> do html você pode usar: <base href="endereco_http_do_website" /> Assim seu html sempre será definido a partir de onde está o arquivo index ou seja a partir da raiz. Não influência diretamente no php, exceto em informações que vem do usuário, como endereço de um arquivo para formulários Para agilizar esse processo existe uma função no mesmo projeto BaseURI.php que sabe qual o endereço físico real independente do provedor, servidor ou diretórios acessados. Por isso mencionei um possível erro, é que controle.php está sendo gerado e anexo na memória antes do index.php ou seja antes que a função ou constantes existam. Similar a um problema é que se você tem 2 arquivos A & B. No arquivoA uma variável é criada, depois disso faço o inclusão do arquivoB e esse também vai reconhecer a variável pois ele está na memória depois. Por outro lado usamos o objeto XMLHttpRequest anexar o arquivoB ao A, nesse caso a variável ainda não existe para ele pois B está logo após o cabeçalho HTTP, mesmo que seja renderizado no HTML depois, o PHP o processa antes que sequer o arquivoA exista. Uma solução bem simples para essa situação é criar um arquivo coringa, esse irá carregar e definir tudo aquilo que será usado praticamente a todo momento. Esse arquivo coringa você o requisita novamente sempre quando precisar dos tais dados de uso periódico. O projeto usa um arquivo coringa como esse: https://github.com/Spell-Master/wesite_pessoal/blob/master/system/config.php Ou seja sempre que algo for anexo e os dados mais importantes gerados em config.php não existir novamente requisito ele sempre usando a função nativa do PHP require_once. Teste esses conceitos e vamos ver no que ai dar. No entanto acredito que só o uso de um arquivo coringa já deve solucionar o problema. Por fim deixo dicas de softwares bem mais eficientes, são gratuitos e o melhor não possuem propaganda nem rouba dados de sua máquina: Substituir o wampserver por: https://www.apachefriends.org/pt_br/download.html Substituir o vscode por: https://netbeans.apache.org/front/main/ Depois que passar a usar nunca mais vai querer usar outros. O netbeans mesmo a melhor IDE que existe, te ajuda muito te puxa a orelha quase sempre quando se tenta inventar moda e escrever o código errado, de fato o netbeans não te deixa escrever sintaxes de código errado.
  2. Omar~

    Significado de alguns conceitos php e sql

    @Frank K Hosaka Sugiro que crie um tópico sobre o assunto, para não desviar esse. Seu problema me parece ser da configuração do seu PHP, o que requer alguns posts até encontrar qual é o problema mesmo. Faça o download desse projeto meu que nem vou trabalhar mais nele. https://github.com/Spell-Master/wesite_pessoal Em system/config/connections.php configure um banco de dados seu aí. O banco de dados crie uma tabela e um registro qualquer. Peque qualquer arquivo dentro de modules existe até um de teste de produção _TESTE_.php Nele faça a leitura da tabela que você criou: <?php $objeto = new Select(); $objeto->query('nome_da_tabela_no_banco_de_dados'); echo "<pre>"; var_dump($objeto->result()); Se configurou corretamente o acesso em connections.php e não há problemas de configuração do seu php verá todos os registros da tabela no banco de dados que você criou. Note que em nenhum momento o arquivo da classe Select.php e nem a Connect.php foram incluídas ou requeridas elas estão em diretórios distintos, mas uma função usada no projeto o spl_autoload_register fez a mágica acontecer. Se não funcionou com meu projeto, crie um tópico a respeito do problema para que toda comunidade possa ajudar a encontrar uma solução. Frameworks podem causar anomalias ao usar recursos nativos do PHP ou até conflitar com eles, normalmente eles para funcionar desativam ou ativam aplicações do PHP alterando sua configuração padrão. Também temos o lado da versão do PHP, enfim são várias questões a serem abordadas.
  3. Omar~

    Significado de alguns conceitos php e sql

    Laravel nada mais é que um framework que usa o PHP logo a ferramenta tem suas raízes que é o PHP. Mas sim, não é PHP bruto e simples. Possui suas próprias peculiaridades para usar o PHP. Não uso e não recomendo o uso de frameworks apesar deles serem de grandiosa utilidade por agilizar conceitos básicos do desenvolvimento. Um framework te prende a ele e somente a ele impedindo e limitando o que pode ser feito apenas usando as sintaxes do simples PHP, fora que com que o utilizador aos poucos perca suas capacidades de desenvolver um software, robusto e leve. Frameworks são Úteis? Claro que sim. Frameworks são Inúteis? Claro que sim. Orientação ao objeto não é nada difícil, os tutoriais/aulas que tem por aí que enfiam isso na cabeça de quem está a aprender só para o egocentrismo de dizer: "Orientação é difícil veja como sou expert por te ensinar". Orientação ao objeto é que torna a programação em PHP muito mais fácil.
  4. Omar~

    PHP INCLUDE E INCLUDE_ONCE

    Evite fazer requisição de arquivos em métodos, sei que dependendo do cenário isso é necessário. Nosso colega apresentou um recurso viável e muito coeso. Possuir uma classe específica só para conectar. Mas vou sugerir algo diferente, ao invés de manter a conexão fixa hora que o servidor pode cair o uso do método construtor na classe pode gerar problemas nessa situação nada grave. Enfim pode optar por herança, toda classe que possuir métodos para acesso ao banco de dados é filha da classe mãe que faz a conexão. Na classe mãe você pode optar por duas alternativas: Usar um método que devolve o atributo que armazena a conexão. Usar o mesmo atributo que armazena a conexão (menos confiável). Em ambos os casos para que a classe filha possa acessar o método ou atributo deve ser protegido, não público para que não haja alguma forma de arbitrariedade da aplicação. A classe filha você estende ela para a mãe assim pode usar quaisquer atributos ou métodos criado anteriormente. Outra dica que digo; é usar constantes, assim em toda a aplicação ela é válida sendo em classes ou qualquer outro ambiente da aplicação. (Use para armazenar dados de acesso). Veja na prática com essas duas classes que utilizam PDO. Veja que na classe filha o uso do prefixo extends depois do nome da classe atual seguida da classe ao qual vai herdar valores. Queria deixar aqui uma dica bônus, para que não precise ficar usando require nos arquivos de classe, uma função que no momento que você declara um objeto ela vai fazer isso de forma mágica, toda vez que uma classe for necessária essa função automatiza o processo para que não precise ficar escrevendo require de arquivo por arquivo. Portanto basta apenas usar um require no arquivo de que guarda a função no index.php por exemplo, dependendo da arquitetura do seu projeto, você nem precisará mais requerir Obs.:
  5. Omar~

    Como identificar um nome assim: urKNPIjafGeLWsnT

    Use captcha, é para essa finalidade que isso existe. Você pode desenvolver um, não use sistemas alheios a eficácia está no código não ser conhecido para que programas não possam ser projetados para burlar. Existe um serviço da google que é "gratuito" onde você implementa somente a interface, sendo o código protegido pela empresa. Comece lendo: https://www.google.com/recaptcha/about/
  6. Omar~

    Como identificar um nome assim: urKNPIjafGeLWsnT

    @terra É realmente necessário? A primeiro ver acredito que daria para criar uma expressão de avaliação de string, tal essa verificaria incoerência no texto. No entanto uma só não funcionaria, teria que fazer uma análise nas milhares possibilidades de combinações de letras possíveis. Aí entra o contexto que assim exigiria muito processamento para algo que realmente não seja necessário. Teria que ser somente com uso de expressões regulares e não daria para criar uma lista de nomes possíveis permitidos. Quantos nomes diferentes existem nos 8 bilhões de pessoas que existem aproximadamente no mundo? Inviável criar uma listinha para isso. Tenha em mente que seria um algoritmo bem chato de criar e levaria tempo para produzir-lo com eficácia aceitável, analisar diferentes combinações de letras para determinar o que é válido ou não, além do mais existem nomes de pessoas bem "bizarros"
  7. Omar~

    pegar ref da url

    Só para complementar o tópico do colega que no geral postou algo simplificado, mas devo acrescentar em caso do leigo compreender que pode ser executado algo assim. Lembrando que no exemplo ou na condição de simplificação do aprendizado não há problemas. Armazena o valor que atribuído ref que veio no protocolo não se sabe de quem ou de onde nem mesmo se foi seu formulário que enviou. O php vai armazenar na variável $ref sem problemas escapando qualquer codec. O problema é se usar instrução como essa em uma aplicação pronta e operando: Veja e $ref entrou na string de comando sem tratamento algum, sem mencionar o perigo ao banco de dados apenas atentarei em uma quebra de código, tal finalizando o php na linha e imprimindo todo o código fonte processado pelo php, isso inclui dados de acesso em geral que a aplicação está usando no momento. Por fim, como mencionado não há problemas em usar, se for no termos de simplificar um exemplo, um teste ou para prover a curva do aprendizado, pois você sabe que é você que está enviando, e sabe o que está enviando. Nosso colega não errou em passar a var direto na string, pois o tratamento de dados requer um refino bem apurado de acordo com a situação e não cabe em um só post. Complementando meu post anterior havia me esquecido: <form method="get" action="pagina2.php"> <input type="text" name="envio" value="exemplo" /> <button type="submit">Enviar</button> </form> <-- Tag's form não utilizam a atributo "name", somente seus componentes No atributo "action" você indica para onde os dados devem ser enviados (forneça o endereço se necessário) Submetendo o formulário teremos na url pois enviamos pelo GET e não POST: endereço http atual/pagina2.php?envio=exemplo Pode ser relativo dependendo das configurações do apache ou um htaccess --> O arquivo pagina2.php recebe a mesma coisa sem o uso do formulário, pode-se até digitar na barra de navegação que vai do mesmo jeito. <a href="pagina2.php?envio=exemplo">Enviar</a> POST também pode ser enviado, de forma arbitrária, só que não convém apresentar as formas necessárias para isso.
  8. Omar~

    pegar ref da url

    Vou te mostrar a função mais últil do PHP: var_dump Com ela você testar qualquer informação existente ou não, com erros ou não Se clicado no link da tag <a> em pagina1.php: var_dump($_GET); // Tudo que existe na super global GET Se submetido o formulário var_dump($_POST); // Tudo que existe na super global POST Para que haja redirecionamento na tag <a> o atributo deve possuir na propriedade o endereço do arquivo pagina2.php Para que haja redirecionamento na tag <form> e os valores dos elementos do formulário possam está na url, basta apenas alterar o protocolo de método substituindo post por get. Apenas para manipular o endereço da barra de navegação do usuário, leia seu tópico anterior pois respondi lá com o link da API que gerencia essa ação. Obs.: Não aconselhável manipular dados no servidor usando GET, apenas use para passar informações de referência, nunca para validação de dados.
  9. Omar~

    url

    https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState
  10. Omar~

    pegar nome digitado

    Antes de mais nada, assim como o colega disse o método usado mais ideal para levar dados de uma página/arquivo a outro é usando o protocolo GET. Respondendo a questão, não importa se vai levar dados por GET ou POST, basta apenas capturar o valor do input do formulário do arquivo anterior e ao atributo value pode-se usar o comando echo do PHP para isso Usar 1 arquivo ao invés de 2 tem pros e contras Pros: Menos arquivos que na verdade uso de mais é desnecessário, além que deixa o código mais flexivel. Contras: Maior arquivo de armazenagem, requer mais memória e processamento de condicionais que monitorarão qual parte do código deve entrar em ação. Minha sugestão é que se é necessário reutilizar o valor de um input do formulário anterior que use um só mesmo, não precisa inventar moda, quanto mais simples, mais limpo, mais eficaz. Afinal de contas do que adianta levar o valor do input do primeiro formulário para o segundo se nesse segundo o usuário pode modificar, sem sentido não é? Fica a dica de um só formulário. Se for algo indispensável usar 2 ou mais formulários "o que acredito que não seja", pode-se deixar a responsabilidade de processamento com o usuário criando novos formulários através do javascript, assim poupa o servidor em criar algo desnecessário, pois o consumo do usuário será praticamente o mesmo, em criar novos form's sem redirecionar ou usando o servidor que no caso o download de todos os dados a cada processo.
  11. Omar~

    pegar valor do botão

    A tag button não contabiliza o atributo value. Use a tag input. Em caso de uso necessário da tag button capture valores determinados como o próprio texto no elemento ou mesmo a propriedade de atributo dataset. https://developer.mozilla.org/pt-BR/docs/Web/API/Node/textContent https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset Leia isso: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array E evite inventar rodas quadradas como essa:
  12. Omar~

    Carregar div sem refresh através do link

    Adicione um evento de click em cada link então você pode optar por duas alternativas: Retornar a função e devolver um valor falso. Prever o comportamento padrão do navegador com a tag. No entanto sugiro mesmo que use uma tag button é para esse tipo de finalidade que ela serve. Preparei um exemplo usando a minha biblioteca javascript Arquivos usados: https://github.com/Spell-Master/sm-web/blob/master/javascript/jsd/js-default.js https://github.com/Spell-Master/sm-web/tree/master/javascript/jsd/ajax <?php $idA = 'Simulando valor'; $idB = 'Outro simulado de valor'; ?> <script src="js-default.js" type="text/javascript"></script> <script src="ajax.js" type="text/javascript"></script> <p><a href="pagina.php?id=<?= $idA ?>" data-exemplo=""> pagina A </a></p> <p><a href="pagina.php?id=<?= $idB ?>" data-exemplo=""> pagina B </a></p> <div id="resultado"></div> <script> // Criando tudo antes para melhorar o desempenho var links = jsd('[data-exemplo]'), href = undefined, resultado = jsd('#resultado'); links.click(function (evento) { // Impedindo que redirecione evento.preventDefault(); // Extraíndo o valor de id do href href = jsd(this).attr('href').split('id=').reverse()[0]; // Solicitando o arquivo pagina.php envinado a ele um Protocolo GET com os dados do link jsd.ajax({ url: 'pagina.php', protocol: 'GET', type: 'html', response: 'text', values: { pagina: href }, onResult: function (resposta) { resultado.html(resposta); } }); }); </script>
  13. Experimente esse meu script para usar como banner é responsivo e com suporte a touch-screen. Toda explicação, formas de uso e exemplo funcional se encontra no arquivo html. https://github.com/Spell-Master/sm-web/tree/master/javascript/SlideCarousel
  14. Omar~

    H1 que preencha toda a largura da container

    Agora a primeira coisa que me vem a cabeça é que você pode está usando o método de propriedade https://developer.mozilla.org/en-US/docs/Web/CSS/calc Quantas letras divididas por 100, esse valor se aplica a font-size do elemento, entretanto deve-se levar em consideração o tamanho de expansão da fonte usada. O negocio é tentativa e erro. Porém não estou tendo nada em mente para uma fonte 100% adaptável, a não ser redefinir o tamanho de acordo com o resolução. Se pensar em algo volto aqui.
  15. Omar~

    [Resolvido] update combobox php mysql

    @gersonab Verifique sim o console mas use o navegador Mozilla-Firefox, verifique os elementos no seletor veja se eles possuem valor. - Caso possua, o problema está na parte de recebimento de dados antes ou durante o UPDADE. Antes da executar a query verifique os dados recebidos através da função var_dump Os dados estão corretos nessa parte então presumimos que algo está errado na execução da query, você poderá saber qual o problema usando PDOException para lançar o motivo do erro pela exceção. - Caso os valores não estão presentes nas opções siga o procedimento anterior. Sem nenhum problema nos termos citados nessa parte veremos então o javascript, ao qual desconsidero ser o problema pois ele não monta o seletor. Se acha conveniente poste a estrutura das duas tabelas (não precisa dos registros) que irei fazer um exemplo prático para você analisar e compila-lo nas suas necessidades. O conceito apresentado pelo @washalbano é sem dúvida muito bom, assim se possui um arquivo que sempre estará de pronta entrega dos dados então é só montar o HTML com base no resultado. E necessariamente não é preciso trabalhar com JSON, porém é melhor pois quando se trata de arrays multidimensional é mais prático usar json no javascript. Mas considere que aplicar restrições/condições de leitura, hora que se usamos 2 ou mais tabelas; não precisaremos de ler outras tabelas quando apenas precisamos de uma só.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.