-
Total de itens
1327 -
Registro em
-
Última visita
-
Dias vencidos
15
Tudo que Omar~ postou
-
Ações do usuário são feitas pelo lado dele exemplo usando o javascript.. Ações do php é realizado no lado do servidor. O php não consegue manipular o usuário nem o usuário pode manipular O php apenas entrega renderizado ao usuário toda parte gráfica processado no servidor e não interage com ele 2 métodos a mesma coisa Usuário diz oi > javascript leva pro servidor essa mensagem > servidor pensa e diz olá > Usuário deve recarregar o conteúdo para saber qual foi a mensagem Usuário diz oi > javascript leva pro servidor essa mensagem > servidor pensa e diz olá > javascript retorna com a mensagem para o usuário..
-
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
-
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.
-
@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.
-
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.
-
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.:
- 4 respostas
-
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/
-
@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"
-
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.
-
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.
-
https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState
-
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.
-
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:
-
Exibir banner de imediato quando página for carregada
Omar~ respondeu ao tópico de Biel. em Javascript
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 -
H1 que preencha toda a largura da container
Omar~ respondeu ao tópico de Alessandro Bodão em Desenvolvimento frontend
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. -
@rogerblower Veja que na minha postagem existe um spoiler onde está escrito "Mostrar conteúdo oculto" Pois bem clique para mostrar, verá então o código da classe. Copie todo o código dentro do spoiler. Como você está usando o wamppserver então dentro da pasta www crie um novo arquivo .php e cole o código da classe. Veja que o nome da classe é CreateCode então salve o arquivo com o mesmo nome. Agora crie outro arquivo .php esse você pode nomear como quiser. Nesse novo arquivo escreva isso: <?php require('CreateCode.php'); // Requisitando o arquivo da classe. $codigo = new CreateCode(); // Instanciando a classe, assim o objeto de orientação será $codigo $resultado = $codigo->defCode(10) . time(); // defCode é um dos métodos públicos da classe var_dump($resultado); // $resultado é o retorno do método Sugiro que estude sobre orientação ao objeto pois isso é o mais vital no php
-
Poste o erro.... A propósito fez o requerimento/inclusão do arquivo que contém a classe? Existe alguma função para auto carregamento de classes?
-
Essa classe possui métodos para geração aleatória de string, veja se algum lhe é útil: Exemplo: $codigo = new CreateCode(); $resultado = $codigo->defCode(10) . time(); var_dump($resultado); // string única, ou seja jamais será gerada outra igual
-
Apesar de considerar a ação de acionar tal artifício sem um caso específico que o usuário tenha influenciado veja isso: https://github.com/Spell-Master/sm-web/tree/master/javascript/ModalShow Para abrir o modal use o método open mesmo sem que um botão chame a função: https://github.com/Spell-Master/sm-web/tree/master/javascript/ModalShow Verás também mais métodos para afins do modal....
-
Saber se todas as palavras de uma frase está cadastrada no banco de dados
Omar~ respondeu ao tópico de landerbadi em PHP
Se eu entendi direito a pergunta você pode está usando o operador LIKE -
Redirecionar Select Option conforme é selecionado
Omar~ respondeu ao pergunta de Jack Oliveira em Perguntas e respostas rápidas
Remova o atributo de comando onchange Adicione um ID ao seletor ou qualquer outra forma para saber no javascript que o seletor é o alvo. Crie uma tag javascript use um ouvinte com inspeção no comando "change": Element.addEventListener('change', funcao_qualquer, false); Crie um função qualquer que será acionada quando o seletor é alterado; assim que o ouvinte detectar que o seletor foi modificado, ela por sua vez verifica o valor para tomar as medidas cabíveis ao desejado. <select id="exemplo"> <option value="">A</option> <option value="B">B</option> <option value="C">C</option> </select> <script> function funcao_qualquer(evento) { if (evento.target.value != '') { /* fazer alguma coisa pois o que foi selecionado não é <empty string> Pode-se usar o redicionamento "location.href" aqui */ } } document.getElementById('exemplo').addEventListener('change', funcao_qualquer, false); </script> -
<?php $senhaA = 'aB1@'; $senhaB = 'a1Bc2DeF3G@&'; function verificarSenha($senha) { if (strlen($senha) < 6) { return ("<p>Menos de 6 Cacteres</p>"); } else if (preg_match_all('/[a-z]/', $senha) < 2) { return ("<p>Menos de 2 Cacteres mínusculos</p>"); } else if (preg_match_all('/[A-Z]/', $senha) < 2) { return ("<p>Menos de 2 Cacteres maiúsculos</p>"); } else if (preg_match_all('/[0-9]/', $senha) < 2) { return ("<p>Menos de 2 números</p>"); } else if (preg_match_all('/[^A-Za-z0-9]/', $senha) < 2) { return ("<p>Menos de 2 símbolos</p>"); } else { return ("<p>Todos requisitos atendidos</p>"); } } echo ( '$senhaA: ' . verificarSenha($senhaA) . '<hr />' . '$senhaB: ' . verificarSenha($senhaB) );
-
Só completando o que o @wanderval mencionou, não é pouco difícil e sim muito. Os recursos de estilização para certos componentes são mínimos, mas assim como ele disse podemos criar elementos que simulam o desejado. Um problema do exemplo apresentado pelo colega é que não há como capturar a opção que o usuário selecionou. Então podemos criar uma tag label vinculado a um input "checkbox" e esse label estará no lugar das tag's <a>. Apresentando uma caixa de seleção mas na verdade é outra coisa ao qual podemos obter o selecionado no servidor quando selecionado algum. Complemento pessoal: Quando eu estava criando esse script https://github.com/Spell-Master/sm-web/tree/master/javascript/SelectOption (que é outro recurso que simula uma caixa de seleção) a princípio estava criando algo que pudesse estilizar livremente cada option interno. No entanto cheguei a conclusão que isso não era correto, se um texto extrapola as limitações é conclusivo que o elemento necessário para tal finalidade não é um <select>
-
Remova os pontos, virgulas etc, esses usando preg_replace antes de criar o array $vetor. Depois de criar o array $vetor execute array_unique para remover índices duplicados.
-
Sim, assim como você brevemente fez use a função count para saber quantos índices existem na super global $_FILES. Além dessa verificação do lado do servidor seria bacana se você também fizesses algo do lado do cliente(usuário) assim poupa processamento do servidor quando algo não está de acordo, basta apenas delimitar os arquivos dentro do input usando o javascript. Mas sempre deve existir filtros do lado do servidor, vai lá saber quem e qual intenção da pessoa que está enviando informação para o servidor! E a propósito leia sobre isso: https://www.php.net/manual/pt_BR/class.finfo.php a última camada de sua proteção depois de 3/4/5/6/7.... verificações que possa executar. Leia aqui também, foi de grande ajuda para mim, e também será para você já que estamos falando de uploads. https://forum.imasters.com.br/topic/587426-até-onde-posso-confiar-na-classe-finfo/ Do lado do cliente se for o caso pode está usando esse script meu: https://github.com/Spell-Master/sm-web/tree/master/javascript/FileTransfer Enfim, se não é o limite que estipulou um loop deve ser usando para salvar os arquivos e registrar eventuais coisas que são necessárias A última coisa e mais importante: Remova esse caractere antes de variável "@" ele ofuscará o erro e qualquer dano para sua aplicação. Eu posso por exemplo enviar outro arquivo dizendo que é uma imagem devido a ofuscação usando o "@" não importa o filtro ou qualquer verificação eu posso dizer que é um png ou jpg ou bmp sei lá, seu php vai aceitar pois qualquer erro está ofuscado e não tem mágica/truque que possa fazer. Na verdade o que estou enviando é um arquivo digamos .php ou .htaccess que me dar total e pleno acesso acesso a sua hospedagem quem sabe até um arquivo .????(ocultei) funcionando obtendo e me repassando qualquer informação que passa pelo seu protocolo http. Não importa o ambiente se é de produção ou entrega esse uso do "@" é para apenas testes de vulnerabilidades e processos de gastos para desenvolvedores contribuintes para aperfeiçoamento da linguagem php. E nunca em hipótese alguma o caractere de ofuscação "@" em junto a uma variável deve ser usado para quem está em aprendizado ou até por profissionais em desenvolver aplicações. Ele existe para um único fim de testes para o próprio código de programação o PHP.