Ir para conteúdo

Omar~

Members
  • Total de itens

    1325
  • Registro em

  • Última visita

  • Dias vencidos

    15

Tudo que Omar~ postou

  1. Omar~

    Pegar parte de uma 'array'

    $load['parse']['title']
  2. Omar~

    Receber dados de textarea e select com jquery

    Tenta isso aqui: https://github.com/Spell-Master/sm-web/tree/master/javascript/AjaxRequest
  3. Omar~

    capturar tag br ao teclar enter

    Não entendi com o contexto geral qual é a dúvida. Mas especulando talvez isso seria o substituto para o problema: https://ckeditor.com/ckeditor-5/download/ Ou talvez esse que é o mesmo usado pelo IPS (o mesmo desse fórum pois é um IPS): https://ckeditor.com/ckeditor-4/download/ OBS.: Existem outros editores WYSIWYG, mas o melhor que o ckeditor é completamente in dependente ao jQuery (o mais letal veneno uma vez inventado para uma aplicação e o mais nocivo veneno da internet atualmente)
  4. Omar~

    Formatar imagens PNG em JPEG

    Assim como o colega já mencionou png ou jpg tanto faz qualquer navegador vai carregar independentemente, pois isso se trata de front e não interfere em nada no servidor exceto no tamanho do armazenamento. Acontece que imagens PNG são mais pesadas para carregar portanto desaconselhável usar quando não for necessário. É possível mas meio complicado pois requer uso de algumas funções do PHP imagecreatefromjpeg ou imagecreatefrompng imagesx e imagesy imagecreatetruecolor imagealphablending imagesavealpha imagecopyresampled imagejpeg ou imagepng Combinando essas funções podemos recriar a imagem conforme desejamos convertendo-a para outro formato ou redimensionando. Por exemplo essa classe para upload de imagens https://github.com/Spell-Master/source-map/blob/master/system/class/model/ImageUpload.php Ela utiliza todas as funções acima, assim possui a possibilidade de definir uma altura ou largura máxima para imagem pois se é maior ela a redimensiona. $upload = new ImageUpload('diretorio_onde_salvar'); $upload->sendImage($_FILES['name_do_input'], 'nome da imagem', 600); Por exemplo se a imagem tiver a altura maior que 600 a classe redimensiona a altura e em proporção igual sua largura para manter o aspecto original, o mesmo vale se a largura for maior que 600.
  5. Omar~

    [RESOLVIDO] Url Amigavél

    Sim $url[0] é a cidade e $url[1] será uma dessas opções. basta apenas programar o arquivo que será carregado por $url[0] para trabalhar com a informação correta conforme for o valor de $url[1]
  6. Omar~

    Receber dados de formulário e encaminhar para e-mail

    @finogatto vamos por parte. Algum arquivo php funciona? Está rodando a aplicação local ou em uma hospedagem? isso não ficou claro. Se em uma hospedagem ela tem o apache e o php instalado? Se em uma hospedagem ela permite protocolos POST?
  7. Omar~

    [RESOLVIDO] Url Amigavél

    O problema é relativamente simples, pois é um padrão de arquitetura que uso a anos, então poderíamos simplificar as coisas. RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 Pós produção se for conveniente você poderá remover as entradas RewriteCond, porque com isso alguém pode acessar acessar meusite.com/diretorio/arquivo.php. Enfim qualquer caractere inserido pós a primeira barra depois do endereço será uma entrada "url" armazenada na super global INPUT_GET e seu valor será uma string. Então simplificando sua situação vamos separar cada qual. <?php function ObterURL () { $filtro = filter_input(INPUT_GET, 'url', FILTER_DEFAULT); $definir = empty($filtro) ? 'inicio' : $filtro; $explode = explode('/', $definir); $array = array_filter($explode); return ($array); } Perceba que a função irá retornar pelo menos um índice "inicio" mesmo que INPUT_GET['url'] esteja vazio ou nulo Então no index.php começamos o processo: <?php require('ObterURL.php') $url = ObterURL(); /* // site.com/a/b/c será $url['a', 'b', 'c'] echo ($url[0] . '<br />'); var_dump($url); */ Até agora tudo bem seguimos seu conceito apenas simplificando. E é agora que começamos a estrutura da coisa toda e é nesse momento que acho que você está se perdendo. Como valor $url[0] carrego os arquivos que vão dar seguimento ao que quero aderir. Por exemplo o padrão "inicio" é porque ninguém acessou nada, se for "sao-paulo" carrego tudo referente a isso e por aí vai. Podemos etão criar uma função para anexar os arquivos conforme o valor de url[0] <?php function CarregarArquivo($valor) { switch ($valor) { case 'inicio': $arquivo = 'inicio'; break; case 'vitoria': case 'rio-de-janeiro': case 'sao-paulo': case 'salvador': case 'distrito-federal': $arquivo = 'cidades'; break; case 'catalogo': $arquivo = 'catalogo'; break; case 'buscar': $arquivo = 'pesquisa'; break; case 'contato': $arquivo = 'contato'; break; default: $arquivo = false; break; } if ($arquivo) { return ('paginas' . DIRECTORY_SEPARATOR . $arquivo . '.php'); } else { return ('paginas' . DIRECTORY_SEPARATOR . '404.php'); } } Adicionamos no index.php um require para o arquivo que contém a função e pedimos para incluir o arquivo conforma a string que essa função retornar. include (CarregarArquivo($url[0])); Então dessa forma conseguimos carregar os arquivos que vão fazer o que tem de fazer isoladamente sem nenhuma complicação. E se precisamos de mais alguma coisa é só consutar os valores de $url Exemplo: site.com/contado/outra_coisa $url[0] é contado e $url[1] é outra_coisa Por fim a nosso htaccess anula quaisquer demais entradas GET pois ele diz que só existe uma entrada a "url" então podemos contornar isso buscando essa informação do servidor ao invés da aplicação em sí. <?php function EntradaNoServidor() { // Função meramente para exemplificar $filtro = filter_input_array(INPUT_SERVER, FILTER_DEFAULT); $retorno = isset($filtro) ? $filtro : false; return ($retorno); } $uri = EntradaNoServidor(); $chave = explode('?chave=', $uri['REQUEST_URI']); if (isset($chave[1])) { echo ( 'Existe ?chave=' . $chave[1] . ' então podemos usar essa informação' . (empty($chave[1]) ? ' mas ela está vazia' : null) ); } else { echo ('Não existe uma entrada GET nesse arquivo'); } Lógico que dependendo da forma da estrutura de diretórios e arquivos seus as funções ou mesmo os arquivos devem ser adaptados para a lógica aqui apresentada. Se for o caso coloquei no g.drive o exemplo funcional disso que apresentei. https://drive.google.com/file/d/1O-jq3luqLybShUtltbIjgKdGSrTVd1zc/view?usp=sharing
  8. Omar~

    Navegar no site sem pausar webradio

    Eu mudaria a navegação para se realizada só com ajax, porém o probela a barra de url persiste. Bom você pode está usando esse meu script para realizar a navegação por ajax que esse problema é sanado: https://github.com/Spell-Master/sm-web/tree/master/javascript/AjaxRequest De qualquer forma se for o caso de usar frame pode optar por manipular a barra de navegação: https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState https://developer.mozilla.org/en-US/docs/Web/API/History/pushState
  9. Omar~

    foto pelo site salvando a imagem na raiz do site

    Tem sim e não tem.... Depende de como é realizado esse processo de "bater foto" Veja que nesse javascript que criei para realizar ajuste de corte de imagem, precisamente nessa linha: https://github.com/Spell-Master/sm-web/blob/master/javascript/ImageCut/ImageCut.js#L416 Pego o canvas criado que é em uma imagem PNG da imagem alvo, ao qual será o código base64 e esse código 64 pode ser usado para recriar a imagem no servidor enviando-o. Porque aí que está a questão quando seleciona o corte a imagem deve ser somente a área de corte, portanto a mesma técnica pode ser usada em sua situação "obter o base64 da sua foto que foi batida" Porém fico-lhe devendo como fazer isso em asp....
  10. Omar~

    Atualização PHP 8.1

    //extract($_POST); //extract($_COOKIE); require_once("../config.php"); //$senha_ = $_POST["senha_"]; //$senha_ = strip_tags($senha_); //$senha_ = md5($senha_); //$login_ = $_POST["login_"]; //$login_ = strip_tags($login_); $senha = (isset($_POST['senha_']) ? $_POST['senha_'] : false); $login = (isset($_POST['login_']) ? $_POST['login_'] : false); if (!$senha) { // Não existe o índice senha_ na super global $_POST } else if (empty($senha)) { // $senha não possui valor algum para manipular } else if (!$login) { // Não existe o índice login_ na super global $_POST } else if (empty($login)) { // $login não possui valor algum para manipular } else { $senha_ = password_hash($_POST['senha_'], PASSWORD_DEFAULT); $login_ = htmlentities($_POST['login_']); // Dessa forma você registra o usuário e também pode validar seu login } Qualquer dado deve ser verificado antes de usar, além do mais o PHP em desencorajando as formas procedurais de códigos a cada tempo que passa. Para usar a encriptação por password_hash a coluna ao qual vai armazenar esse valor, aconselho ser um varchar com o tamanho de 400 a 500 entradas. password_hash: Irá criar uma sequência criptográfica portanto nenhum código será usado no banco. htmlentities: Irá substituir qualquer tag por entidade html portanto nenhum código será usado no banco.
  11. Omar~

    Redirecionar automaticamente de 20 em 20.

    Você teria que mudar sua lógica de forma que as respostas que estiverem corretas sejam armazenadas. Não sei como você está passando as peguntas, nem mesmo como contabiliza os acertos então fica complicado dar uma resposta mais clara. Se fosse eu faria algo similar a isso: <?php session_start(); $acertos = (isset($_SESSION['acertos']) ? (int) $_SESSION['acertos'] : 0); $pergunta = ['a', 'b']; if ($acertos < 2) { $resposta = 'a'; } else if ($acertos < 4) { $resposta = 'b'; array_push($pergunta, 'c', 'd'); } else if ($acertos < 6) { $resposta = 'f'; array_push($pergunta, 'c', 'd', 'e', 'f'); } else { $resposta = 'c'; array_push($pergunta, 'c', 'd', 'e', 'f', 'g', 'h'); } if (isset($_POST['exemplo'])) { $_SESSION['acertos'] = ($_POST['exemplo'] == $resposta ? ($acertos + 1) : $acertos); } echo ("Você até agora acertou {$acertos} perguntas"); ?> <form method="POST" action=""> <select name="exemplo"> <option value="">Selecione a Resposta</option> <?php foreach ($pergunta as $p) { ?> <option value="<?= $p ?>"><?= $p ?></option> <?php } ?> </select> <button type="submit">Enviar Resposta</button> </form>
  12. Omar~

    Como formatar uma string

    Não seria algo como isso? https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
  13. Omar~

    Hello Bar com som

    <audio id="exemplo"> <source src="arquivo_de_audio.wav" type="audio/x-wav"> </audio> <script> document.getElementById('exemplo').play(); </script> Use um arquivo pequeno, pois ao acessar a página o browser irá fazer o download automaticamente do arquivo, se ele for grande a página vai demorar para carregar, além também que o som vai demorar para tocar.
  14. Bom, eu não mecho com jQuery.... Então o que posso te ajudar é como diminuir em muito (mas muito mesmo) o uso de memória para realizar as tarefas tão simples e desejadas. Começando por observações: Isso aqui não é um array Para que ficar varrendo o documento toda hora em busca de um elemento, ainda mais com jquery que é extremamente lento para executar a busca? Isso é sempre inteiro a função para conversão aqui é não está fazendo nada a não ser consumir CPU Um conflito... Seu problema deve ser esse pois isso pode está reescrevendo. Além do mais o problema pode ser justamente que os dados em re-escrita etão sobrecarregando a memória. Mais ou menos no sentido Função diz que o X e outra função diz que Y daí o browser não entende o que é para fazer com a informação, fazendo uma função anular outra. Como disse não mecho com jquery então apresentarei duas maneiras de executar 1 usando apenas HTML (recomendo): 2 usando javascript (javascript não jquery)
  15. Omar~

    Erro diretório não encontrado

    Digamos que eu tenha 2 arquivos chamados exemplo_A.php e exemplo_B.php. Dentro do A eu quero incluir o B, mas o B está em outro diretório. Então o certo não seria eu indicar um url para buscar esse arquivo, uma vez que a url já é uma variante da aplicação e o php não gosta disso o que geralmente vai dar em erro mesmo. Então o correto é só indicar diretórios mesmos e nada de usar url's. include ('../outro_diretorio/arquivo_B.php'); E bingo! funcionou.... Porém devido a certas reescritas do apache não dar para buscar o arquivo dessa forma, então basta apenas que indique a partir de onde está o arquivo atual usando a contante __DIR__: include (__DIR__ . '/../outro_diretorio/arquivo_B.php');
  16. Tenta assim: /* Rola a página para o topo */ function rolarParaTopo () { var $tempo = -window.scrollY / (1000 / 50); var $intervalo = setInterval(function () { if (window.scrollY != 0) { window.scrollBy(0, $tempo); } else { clearInterval($intervalo); } }, 10); } /* * Rola a página para um elemento no HTML, exemplo: * Javascript * rolarPara(#alguma_coisa); */ function rolarPara(alvo) { document.querySelector(alvo).previousElementSibling.scrollIntoView(false); }; Você também pode criar um botão para ir ao topo assim: <a href="#" alt="">Subir para o topo</a>
  17. Omar~

    Comparar dois textos e pontuar erros

    Também, dê uma googlada usando como pesquisa: php diff compare github Você encontrará também diversos projetos no git-hub com arquiteturas de comparação aos quais indicam onde uma string não é igual a outra.
  18. Omar~

    Problema com __autoload

    Muito bom que resolveu..... Sim.... Entorto o nariz para qualquer coisa que promete entregar algo que não passou por meu controle de qualidade (Que não foi eu mesmo quem fez).
  19. Omar~

    Problema com __autoload

    Seguindo a arquitetura: __DIR__ //> No mesmo diretório que está o arquivo que contém a função __autoload DIRECTORY_SEPARATOR //> Separar diretório $dirName // Em qualquer dos diretórios listados em $cDir DIRECTORY_SEPARATOR //> Separar diretório $Class . '.class.php' //> aquivo de classe .class .php Então no mesmo local onde está a função deve haver os diretórios 'Conn', 'Helpers', 'Models' e dentro de um deles o arquivo Read.class.php O arquivo está lá nesse local e dar erro se implementado esses tais pdf e mpdf. É quase que certeza que em algum arquivo presente na composição desses aí existe um autoload funcionando que sobrescreve a sua função gerando conflito. Se for o caso é só apagar a função conflitante e usar a outra. Abra arquivo por arquivo que compõe pdf e mpdf e remova quaisquer includes e requires de classes que esses arquivo possam conter e use sua função. A propósito o método mágico __autoload está obsoleto nas últimas versões do PHP você deve usar a função spl_autoload_register agora. Exemplo de spl_autoload_register:
  20. Omar~

    mysqli_connect não conecta

    Além do que o Matheus disse, não sei quem instalou o sql na máquina e nem como instalou. Nesse caso em uma hospedagem na grande maioria dos casos justamente por medidas de segurança sobre o usuário root pode acontecer as algumas situações: Usuário root existe, mas não tem acesso nem a leitura do banco de dados. Usuário root existe, mas tem senha de acesso ao do banco de dados. Usuário root não existe. De qualquer forma se essa função fazer o que deveria fazer mysqli_errno() alertaria sobre quaisquer eventuais problemas de conexão o que inclui o caso do usuário. NOTA*
  21. Omar~

    mysqli_connect não conecta

    Não mecho com mysql, tente verificar se é erro mesmo: var_dump( mysqli_errno() ); Lógico que isso vem depois da conexão ser lançada e todos erros na aplicação devem ser habilitados e nenhum tipo de ofuscação deve ser usado exemplo: @$alguma_coisa = .....
  22. Omar~

    Ajuda inserir dados appendChild

    E onde está a função innerHTMLtransaction? O problema pode ser justamente nessa função. Em outro caso falta uma tag <td> já estamos manipulando uma tabela. Tente assim: addTransaction(transaction) { var tr = document.createElement('tr'), td = document.createElement('td'); td.innerHTML = transaction; tr.appendChild(td); this.transacaoContainer.appendChild(tr); } Por fim certifique-se que existe uma tag <table> com o classificador mytbody, do contrário aqui: Será uma propriedade indefinida, portanto não será um objeto válido.
  23. Omar~

    Separar numero usando explode

    Não entendi direito, mas se for separar cada caractere formando um array você pode está usando a função str_split: $separa = str_split('90'); var_dump( $separa ); // array(2): ['9', '0'] Mas não sei, mas desconfio que você esteja tentando fazer algo que a função number_format já faz.
  24. Omar~

    Percorrer array multdimensional sem index

    Rapaz!! Espero que ajude, veja que acessei qualquer valor para criar uma mensagem de console exibindo cada qual: var objeto = { 'Entradas': { 'Receitas Operacionais': { 0: 'Vendas', 1: 'Serviços' }, 'Receitas financeiras': { 0: 'Rendimentos' } }, 'Saidas': { 'Despesas comerciais': { 0: 'Comissões', 1: 'Combustivel', 2: 'Publicidade' } }, 'Despesas operacionais': { 0: 'Matéria Prima', 1: 'Fretes' } }; var objA = 0, objB = 0, objC = 0, subObjetoA = [], subObjetoB = [], mensagemTeste = ''; for (objA in objeto) { mensagemTeste = objA + ' = ['; subObjetoA = objeto[objA]; for (objB in subObjetoA) { subObjetoB = subObjetoA[objB]; if (typeof subObjetoB === 'object') { mensagemTeste += '\n\t' + objB + ' = ['; for (objC in subObjetoB) { mensagemTeste += '\n\t\t' + subObjetoB[objC] + ', '; } mensagemTeste += '\n\t],'; } else { mensagemTeste += '\n\t' + subObjetoB + ', '; } } mensagemTeste += '\n]'; console.log(mensagemTeste); } Não é por nada não eim, mas se vai usar javascript para compilar html está metendo os pés pelas mão, javascript só deve ser usado no html para manipulação de conteúdo já carregado, por intermédio de uma ação executada pelo usuário. E não para o carregamento.
  25. Estranho deve ser alguma configuração do apache que desconheço. Tente então modificar a arquitetura e não usar um arquivo html e sim php. De fato fica até mais simples e prático. <?php $dados = [ 'titlo' => 'titulo da página', 'texto' => 'um texto de teste' ]; $html = include ('estrutura.php'); echo $html; Aí nesse estrutura.php é que você transcreve a página <?php $renderiza = '<!DOCTYPE html>' . '<html lang="pt-BR">' . '<head>' . '<meta charset="UTF-8">' . '<title>' . $dados['titlo'] . '</title>' . '</head>' . '<body>' . '<p>' . $dados['texto'] . '</p>' . '</body>' . '</html>'; return ($renderiza);
×

Informação importante

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