Ir para conteúdo

Omar~

Members
  • Total de itens

    574
  • Registro em

  • Última visita

  • Dias vencidos

    15

Tudo que Omar~ postou

  1. Exemplo PHP <?php $enviar_para_javascript = 'blablabla....'; echo ("<script>recebe_do_php('{$enviar_para_javascript}')</script>"); Exemplo Javascript function recebe_do_php(parametro) { console.log('Eu recebi do php essa coisa: ' + parametro); }
  2. Omar~

    Consulta LIKE com restrição

    Estou precisando fazer uma query em uma tabela usando LIKE, mas preciso restringir que somente sejam mostrados os resultados cujo tenha uma das colunas idênticas. Exemplo de query (que está errada!!!) SELECT coluna_A, coluna_B, coluna_C FROM tabela WHERE coluna_A LIKE '%ALGUM_VALOR%' OR coluna_B LIKE '%ALGUM_VALOR%' AND coluna_C = 'tenha esse valor' Então preciso pesquisar existência de "algum valor" dentro das colunas A e B da tabela, mas que sejam retornados apenas resultados cujo a coluna C seja apenas um valor, que pode duplicar de registro para registro, mas na mesma tabela possuem outros registros cujo a coluna C não são iguais. Obs.: Sempre fiz esse processo de filtrar o resultado via PHP, mas queria saber como fazer diretamente na query. #EDIT: Sendo mais específico Digamos registros mais ou menos assim: SELECT coluna_A, coluna_B, coluna_C FROM tabela WHERE coluna_A LIKE '%João%' OR coluna_B LIKE '%João% AND coluna_C = 'Carpinteiro' Ou seja mesmo que que haja mais de um registro, somente é para trazer os resultados cujo a coluna C for carpinteiro
  3. Omar~

    Ajuda com Javascript - recuperar valores gerados por loops

    Olá @Cláudio Rogério Jr tudo bem? Eu havia visto seu tópico antes, mas não deu para sacar o que estava querendo fazer, uma vez que o primeiro código postado não tinha nada haver com o que tinha dito anteriormente. Agora com as informações mais coesas posso responder... Enfim, sobre a questão de gerar inputs através de um select group eu mesmo já ajudei numa questão dessa: https://forum.imasters.com.br/topic/580084-abrir-novo-campo-ao-selecionar-opcao/?tab=comments#comment-2272163 No próprio post você vai achar a solução para isso, uma vez que você criou os elementos, mas não anexou eles (Eles existem só que pertencem só ao objeto document e não a algum elemento node): Deduzo, que você está falando de um formulário, então siga a lógica e coloque os elementos criados dentro de um form, ao qual você vai submeter os dados.
  4. Omar~

    Como utilizar páginas de erro sem o htaccess

    Detectar o tipo de erro com código não dar, mas dar para simular erro. Digamos que eu vá fazer uma consulta em um banco de dados por exemplo, só que propositalmente eu conecto com dados errados, isso seria um erro interno, e isso eu posso subjugar com código. E assim vai com dados que não existem vazios etc... O que dar para personalizar é redirecionamento para erros com htaccess Veja um exemplo, você pode colocar no final da sua regra Se o erro for 404 redireciona para arquivo_qualquer.php ErrorDocument 404 "arquivo_qualquer.php"
  5. Omar~

    Separar resultados com base de outra tabela

    É o seguinte tenho duas tabelas aqui estão elas Então eu tenho uma tabela para setores e outra tabela para páginas. As páginas são separadas de acordo com os setores existentes, uso para identificar o setor que a página pertence pela coluna page_sector Que sempre é igual a coluna sector_hash da tabela de setores. Agora ao problema, como eu faria a leitura da tabela de pages, separando as páginas com sua relação ao setor (Agrupando as páginas em seu setor). Certo, mas isso é só usar um ORDER BY, mas preciso regatar o título do setor, que logo está em outra tabela. Mas então simples não é, é só fazer um select nas duas tabelas..... Entra a dificuldade aqui pois estou com dificuldade de renderizar o HTML, a não ser que eu faça algumas gabiarras veja: <?php $selectA = new Select(); $selectA->setQuery('SELECT * FROM sectors'); $selectB = clone $selectA; $selectB->setQuery('SELECT * FROM pages'); foreach ($selectA->result() as $sector) { echo '<br>-Setor : ' . $sector->sector_title . '<br>'; foreach ($selectB->result() as $pages) { if ($pages->page_sector == $sector->sector_hash) { echo '<br>..... Página :' . $pages->page_title . '<br>'; } } echo '<br>- Fim do setor '. $sector->sector_title .'<br>----------------<br>'; } O que no momento com os registros de testes imprime isso: Seria assim mesmo a renderização final, setor por setor e páginas dentro de cada setor correspondente. Mas aí que entra a X da questão. - Precisei acessar 2 vezes o banco // Teria como fazer através de 1 select só? foreach dentro de foreach // Isso é muito esquisito ao meu ver Alguma sugestão de como dar para fazer diferente?
  6. Omar~

    Separar resultados com base de outra tabela

    Valeu Matheus. Passei o dia inteiro pensando em diversas alternativas, algumas até boas, mas nenhuma além do que transcrevi valeu a pena. A melhor alternativa foi fazer uma consulta só usando JOIN então criar 2 arrays, uma só armazenando os resultado ferente ao setor outro array para os dados das páginas. Ao qual de qualquer forma não dava para escapar se varrer os arrays com foreach, além do mais achei que fazer assim seria "ficar inventando moda". O método result apenas devolve um atributo que está armazenando um array com os resultados da consulta public function result() { if ($this->selectData) { return ($this->selectData); } } Ao qual esse atributo está armazenado o fetchAll() do resultado PDO Sim isso seria completamente inviável de ser feito. Então imagina 150 setores e 300 páginas. Ou seja 45.000 consultas de uma só vez. Enfim vou dar como sanado, mesmo porque sempre fiz da forma que falei, só queria saber se tinha alguma outra forma de fazer muito mais, com muito menos
  7. Omar~

    Verificar se um registro já existe

    SELECT username, email FROM cadastro WHERE username = 'joao' OR email = 'mail@mail.com' Ou seja se existir um username joao não cadastra, mas se houver também um mail mail@mail.com; Mesmo que não seja no mesmo registro onde está joão também não cadastra. <?php $conn = new mysqli('endereco_do_banco', 'login', 'senha', 'nome_do_banco_de_dados'); if ($conn->connect_errno) { die("Não conectado por causa disso: %s\n", $conn->connect_error); } else { $sql = "SELECT username, email FROM cadastro WHERE username = '{$username}' OR email = '{$email}'"; $result = $conn->query($sql); if ($result->num_rows) { echo ("Não pode cadastrar porque existe um username ou email cadastrado"); } else { //// ---- Aqui entra o código do cadastro :) } } mysqli_close($conn); Observações. * Detesto esse treco de mysqli, por isso não testei o código acima, mas parece está correto. * Esqueça disso: mysql se for usar use mysqli, melhor use PDO. * Seu código ou o que mostrei não possui nenhum tipo de segurança, pois apenas pega um valor e passa para execução, ou seja nada impede que por exemplo no username venha um código malicioso. Então filtre os dados antes de enviar-los para o banco. Aqui um pequeno guia para começar a manipular o banco de dados de uma forma coerente: https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/
  8. Omar~

    Uma página para vários produtos diferentes

    Começamos pela URL Para esse modelo de url, na lógica temos o endereço/pasta/pasta. Mas podemos nos usufruir em entradas da super global GET exemplo: endereço/?alguma_coisa=algum_valor&outra_coisa=outro_valor e assim por diante. Para a conversão em endereço/algum_valor/outro_valor temos que utilizar o módulo Rewrite do apache. Não vou entrar em muitos detalhes sobre isso, mas pesquise a respeito htaccess e url amigáveis. Desde já lhe deixo um exemplo bem simples de como funciona: https://github.com/Spell-Master/Get-UrlAmigavel Esquecemos para a explicação o uso de url's amigáveis... Digamos então que eu tenha meu site de https://endereco_qualquer Mas eu coloquei um link assim: <a href="https://endereco_qualquer/?sala=sofa"> Então na mais é que na minha aplicação eu consultar esse entrada <?php if (isset($_GET['sala']) && $_GET['sala'] == 'sofa') { // Aqui tomo uma ação seja mostrar um conteúdo, seja incluir um arquivo baseado no valor "sofa" que veio por GET "sala" } No exemplo de uso em url's amigáveis que indiquei o link logo acima. Eu abro arquivos diferentes baseados em informações desse jeito. E se não me fala a memória me parece que coloquei um função que automatiza a inclusão de arquivos. Desculpe mas não sei explicar corretamente. Pois a única forma que tenho de explicar foi essa: Ou seja leia dados, mostre ou inclua arquivos, depende do que for fazer.
  9. Omar~

    Input usando createElement DOM

    document você está se referenciando ao arquivo document.body você está se referenciado ao NodeList <body> do documento appendChild você está inserindo dentro A orientação correta seria: ELEMENTO_PAI.appendChild(ELEMENTO_FILHO) No caso o input é filho do form Em tese seria mais ou menos isso, pois fiquei no básico criando cada coisa em funções separadas para melhor entendimento: Leia a respeito de criação de elementos aqui: https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement Não deixe de dar uma conferida nisso aqui também: https://developer.mozilla.org/pt-BR/docs/Aprender https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide
  10. Omar~

    Uma página para vários produtos diferentes

    Esse tópico deveria está em PHP. Logo também porque colocou a marcação de tag PHP. Isso depende. Depende da arquitetura do projeto, pois você pode sim ter 1 única pagina e essa única página compõe todos os produtos, estou falando de usar banco de dados. Exemplo tenho o arquivo exemplo.php e esse arquivo faz a consulta em um banco de dados com e dependendo da entrada da url ele trás o resultado daquele produto em questão. Ou se for uma organização de sub páginas podemos ter um arquivo que seria o exemplo.php que faz a consulta do tipo de produto, e também quais produtos pertence aquele tipo. Exemplo: na url digamos que entre carros/modelo-compacto. o exemplo.php irá fazer a leitura se existe o produto carros e se existe algum modelo-compacto. E assim sucessivamente. Então digamos que na url seja informado somente "carros", logo o exemplo.php irá listar todos os tipos de produtos vinculados a carros, ou faz outra coisa que depende do comportamento de deseja fazer na aplicação. Sendo mais específico vou usar como exemplo esse fórum precisamente esse seu tópico. temos o endereço url dele, então temos a entrada topic que indica para o php que ele deve ler algo em uma ou mais tabelas, logo então temos outra barra separando qual o resultado que é para mostrar.
  11. Omar~

    fazer php reconhecer a palavra

    $resultado = str_replace($dados , "aprendiz" , strtolower($nome)); Sempre o texto será interpretado em caixa baixa
  12. Omar~

    Input usando createElement DOM

    Simples não? x.setAttribute("name", "NomeQueVoceQuiser"); Eu particularmente daria assim: function myFunction() { var x = document.createElement('input'); x.type = 'text'; x.value = 'Olá mundo'; x.name = 'name_do_input'; document.body.appendChild(x); } Indiferente de como fazer o resultado da no mesmo.
  13. Omar~

    Me ajudem Por favor HTML CSS LI?

    .menu ul li Possui um width muito pequeno para caber o texto Pedidos de Coração Então não especifique uma largura fixa .menu ul li { min-width: 109px; float: left } Ou defina a largura desse seletor usando pseudo-classe .menu ul li:nth-child(5) { width: 200px /* Aumente ou diminua a largura conforme o texto */ }
  14. Omar~

    Forçar download com PHP rename com rand não funciona

    Bisnaguitos, assim como o Matheus já disse, nós não podemos ter acesso a arquivos na máquina do usuário (exceto arquivos temporários do browser). Ou ponto além do mais é que no seu caso você está querendo acessar um arquivo dentro da pasta de downloads do usuário. E mesmo que fosse possível acessar, o próprio usuário poderia ter configurado o download para outro lugar, logo sua lógica não funcionaria. Além do exemplo do Matheus usando PHP, vos deixo aqui como fazer isso usando javascript. Você vai precisar de um arquivo JS que pode ser encontrado em meu GIT: https://github.com/Spell-Master/sm-web/blob/master/downloads/FileTransfer/FileTransfer.min.js Também irá precisar do CSS correspondente (Se quiser personalizar a interface tem que editar esse arquivo) https://github.com/Spell-Master/sm-web/blob/master/downloads/FileTransfer/FileTransfer.min.css Com os arquivo já inseridos no código HTML crie um objeto par o arquivo javascript. <script>var objFile = new FileTransfer();</script> É ideal que somente instancie o script no final do documento. Sendo a variável objFile o objeto da instância. Então para fazer o download basta criar um botão/link e informar o que você quer enviar para o usuário: <button onclick="objFile.download('imagem.jpg', true);">download</button> Obs.: O arquivo FileTransfer.js além de downloads "método download()" você pode fazer uploads também através do método upload(). Mais detalhes leia a descrição dos métodos no arquivo de produção: https://github.com/Spell-Master/sm-web/blob/master/javascript/FileTransfer/FileTransfer.js No caso de enviar com um nome personalizado, sugiro que faça uma cópia do arquivo no servidor com o nome desejado antes de enviar para o usuário. Mas anotei isso (Irei implementar na função em breve)
  15. Omar~

    Redirecionamento com barra de progresso

    Sim, eu pensei em uma alternativa similar. Exemplo: <a href="arquivo_qualquer.php?valor="outro_arquivo" /> Então ao clicar no link vai para o arquivo_qualquer e lá executo ao ajax com a informação recebida. Assim monitorando o XMLHttpRequest. Agora ao fato que pensei se fazer tudo antes, digamos então. Tenho uma pagina qualquer que faz consultas em um banco de dados, logo a mesma executa querys, ao carrega-la com ajax, e novamente as querys serão executadas se redirecionar para ela. Então essa alternativa que disse no primeiro post se torna totalmente inviável. Mas queria realmente saber como é feita essa aplicação, para criar um script padrão da melhor forma possível.
  16. Omar~

    Redirecionamento com barra de progresso

    Então, alguém poderia me indicar algo para que eu possa dar uma pesquisada de como realizar tal coisa? Nada mais é que uma barra de progresso (antes/durante o redirecionado) "não sei como funciona". Exemplo disso é websites como youtub, github entre outros, que ao acessar um link mostra um processo antes de fato o browser se redirecionar. Nota!: Não é um ajax com barra de progresso. Na verdade a única forma que consigo imaginar em fazer é: - Adicionar um evento click em cada elemento de TAG <A> - Capturar seu valor HREF - Executar um ajax nos dados do href, assim sendo consigo monitorar o processo por causa do ajax. - Pós conclusão dos dados computados do ajax, usar um location.href para o local. Obs.: Já até fiz dessa forma e funciona, mas porém.... Acho meio "anti-prático", porque nesse caso o browser do usuário deve carregar o mesmo conteúdo duas vezes, uma durante o ajax depois novamente quando redirecionar. Além do mais, como nos sites que citei que usam esse tipo de aplicação, visivelmente não funciona dessa forma.
  17. Omar~

    Banco de dados e javascript

    Existe a possibilidade de registrar dados sim sem a necessidade de se usar no caso um banco SQL para armazenamento. No entanto temos que armazenar dados de alguma forma, ou seja usando e manipulando arquivos, com PHP mesmo podemos por exemplo usar arquivos XML e manipular-los com DOMDocument(). O que também podemos fazer com arquivos de texto, html etc e tal, seja usando o javascript ou outra linguagem... No enteando acho isso desnecessários e francamente "é querer reinventar a roda e ainda reinventar-la quadrada" A única alternativa que deveria ser cogitada é somente usar um banco mesmo ao qual além do MySql temos Oracle, MongoDB entre outros.
  18. Omar~

    Combinação letra e numeros com apenas uma repetição

    Vish.... Complicado O problema da questão é que de "0 a 9" e de "A até o Z" temos o total de 36 caracteres. Então gerar um código "SEM REPETIR" caracteres para chegar ao total de 32 é uma tarefa além de complicada é exaustiva para um sistema executar. Bem eu consegui fazer da seguinte forma: Usei a mesma lógica para criar um código de com letras e números aleatoriamente, porém nesse termo podemos ter a repetição de caracteres, então a alternativa que tomei foi contar qualquer ocorrência duplicada acima de 1 caractere, ou seja sempre estarei permitindo até 2 caracteres iguais em sequencia na string Expl. "AAA" (Não pode) / "AA" (Pode) Então o que fazer? Se houver mais de 1 ocorrência duplicada gero novamente o código até que ele se enquadre nos critérios. Porém só gero esse código aleatório com 30 chars porque deixo os 2 últimos caracteres para serem gerados como inteiros por auto-increment. Tive de usar orientação a objeto porque tive de comunicar os mesmos dados entre duas funções distintas, então assim ficou a classe: Sendo assim continuando o meu raciocínio anterior gero o código final usando um loop: No que gera códigos como esse: Fiz o teste dezenas de vezes e nenhuma vez aconteceu de coexistir 3 caracteres iguais, mesmo que existe uma margem disso acontecer nos 3 últimos. @Matheus Tavares Dar um help aqui porque minhas idéias acabaram.
  19. Omar~

    [Resolvido] SOMBRA NA DIV

    box-shadow, é uma propriedade CSS que serve tanto para colocar um sombreamento externo como interno. https://developer.mozilla.org/pt-BR/docs/Web/CSS/box-shadow
  20. Omar~

    Combinação letra e numeros com apenas uma repetição

    Nesse caso que percebo que deve-se gerar uma sequência, então porque não gerar um loop e ir criando a sequência? Não sei qual o critério para geração da base, aqui vou supor que seja simplesmente uma string única. Então se temos: c4ca4238a0b923820dca509a6f758198 A base - c4ca4238a0b923820dca509a6f O código - 758198 Sendo assim a próxima string gerada deve ser: c4ca4238a0b923820dca509a6f758199 Que é 758198 + 1 Mas deve terminar as sequências quando chegar ao suposto 758201 Então vou criar uma sequencia que vai começar em 758198 e terminar em 758201, pós então irei inserir as sequencias em um arquivo de texto. <?php $base = 'c4ca4238a0b923820dca509a6f'; $inicio = 758198; $final = 758201; $resultado = "{$base}{$inicio}\n"; while ($inicio != $final) { $inicio++; $resultado .= "{$base}{$inicio}\n"; } $txt = fopen(__DIR__ . '/arquivo.txt', 'a'); fwrite($txt, $resultado); fclose($txt); O que vai gerar a seguinte coisa no arquivo.txt c4ca4238a0b923820dca509a6f758198 c4ca4238a0b923820dca509a6f758199 c4ca4238a0b923820dca509a6f758200 c4ca4238a0b923820dca509a6f758201 Seria mais ou menis isso? Porque não entendi o que quis dizer com isso:
  21. Envie os dados para um arquivo PHP qualquer via POST ou GET Deduzo que reflorestamento.php seja um arquivo de class. Então no arquivo que recebeu instancie a classe e faça os tratamentos necessários. Pós os tratamentos faça include no arquivo resultado.php dentro do arquivo que recebeu as informações e tratou com a classe. Que o resultado.php vai reconhecer todos os dados já criados.
  22. Omar~

    Upload de imagem com manipulação de imagem

    https://developer.mozilla.org/pt-BR/docs/Web/API/FileReader Bem, adaptei um javascript aqui que criei a muito para você pode ver como funciona: UploadImg.js Exemplo de utilização em html Basicamente é. Ao selecionar uma imagem pelo input você ativa a função. Isso não é upload de imagem, e sim prévia. Então pós a prévia se quiser enviar o arquivo o input file está armazenando o valor para o upload. Obs.: Esse javascript já faz bastante tempo que fiz ele. Possui um bug no Mozilla com a barra de progresso (na verdade não é bug. E sim que o mozilla firefox processa muito mais rápido JS). Não funciona corretamente em IE e Edge porque ambos navegadores são uma merd...... Cuidado ao copiar e colar textos do editor aqui do fórum. Você terá erros de caracteres na cópia.
  23. Omar~

    Combinação letra e numeros com apenas uma repetição

    Não sei se é o resultado que espera, mas recentemente criei essa classe: CreateCode.php Exemplo de uso: <?php require('CreateCode.php'); $codigo = new CreateCode(); echo $codigo->strCode(); // Isso vai gerar um código aleatório de 5 letras echo ("<hr>"); echo $codigo->intCode(); // Isso vai gerar um código aleatório de 5 numeros echo ("<hr>"); echo $codigo->defCode(); // Isso vai gerar um código aleatório de 10 caracteres que podem ser numeros ou letras misturados echo ("<hr>"); // Criando um código que nunca vai se repetir $unico = $codigo->defCode(32).time(); echo $unico; Leia a descrição de cada método da classe para melhor entendimento. Obs.: Se vai dar Ctrl+C e Ctrl+V. Cuidado pois esse editor aqui do fórum insere caraceteres não legíveis, o que vai gerar erro no arquivo que colar o texto Seria isso que procura?
  24. var x; for (x = 0; x < classs.length; x++) { classs[x].addEventListener('mouseover', function() { // Prever que o seletor fique "f_d nnClass nnClass nnClass....." a cada evento over if (classs[x].className != 'f_d nnClass') { classs[x].classList.add('nnClass'); } }, false); } Só que tem um porém, essa nova class ao seletor deve somente existir quando o mouse estiver em cima? Se sim não seria melhor só usar o CSS? Se for a questão, pode ser feito com javascript também, mas se usar somente css você ganha muito mais em performance.
  25. Omar~

    Curiosidades

    Já de início, não é um problema, são apenas curiosidades que me foram perguntadas e não soube responder, logo também não são coisas lógicas é só por questão de entendimento mesmo. Enfim, o negócio é array. Questão 1 Digamos que eu tenhamos o seguinte array: $arr = [ 0 => 'idx-A', 1 => 'idx-B' ]; Logo então se quero acessar o primeiro índice basta usar $arr[0]; Tudo certo não é? Mas e se for esse o caso? $arr = (object) [ 0 => 'idx-A', 1 => 'idx-B' ]; $arr[0]; //Erro. Porque uma stdClass não pode-se acessar o índice $arr->0; // Erro. Porque o acesso deveria ser por T_STRING e não T_LNUMBER $arr->[0]; // Erro no mesmo caso acima de str e int, além de erro de escrita. Agora complicando mais e se esse fosse o array: $arr = (object) [ 'idx-A', 'idx-B' ]; Questão 2 Um arquivo (vou chamar-lo de arr.php) o mesmo possui um array e o retorna dessa forma: <?php return [ 'index1' => 'valor A', 'index2' => 'valor B', 'index3' => 'valor C' ]; Então em outro arquivo (vou chamar-lo de incluir.php) pegamos o retorno através de um require nomeamos o array <?php $arr = require('arr.php') Então vamos supor que estejamos no index.php <?php require('incluir.php'); echo $arr['index1']; // Acessamos então o primeiro índice "valor A" Tudo certo, não é, então vamos complicar.... Criamos uma função para dar include o que poderia ser uma função que captura valores e faz a inclusão de arquivos conforme for as condições <?php function iMasters($parametro) { $valor = (isset($parametro) ? $parametro : 'nenhum_valor'); switch ($valor) { case 'alguma_coisa': // sei lá break; default: include ('bugado.php'); break; } } Então no index eu fazemos a requisição do arquivo e chamamos a função: <?php require('incluir.php'); require('iMasters.php'); // Seria o arquivo que contém a função iMasters(); // No caso a função nessa condições faria o include do arquivo bugado.php Enfim chegamos a questão. O suposto arquivo bugado.php não reconhece a array criada anteriormente através de include. E se tentarmos chamar novamente o incluir.php temos erro de inclusão por causa disso require('arr.php'); transcrito no próprio incluir.php. Então trocamos a questão para require_once('arr.php'); Removemos o erro mas não temos um array de retorno e sim um valor booleano. O que pode ser contatado usando var_dump($arr); Então porque será que um arquivo que é incluído por uma função não reconhece os valores de outro include? E é isso... Não são problemas, como disse logo no começo por serem coisas sem pé nem cabeça de se fazer, mas são questões que vieram até mim, o que atiçou minha curiosidade também.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.