Jump to content

Omar~

Members
  • Content count

    585
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by Omar~

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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
  6. 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:
  7. 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.
  8. 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.
  9. 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?
  10. 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.
  11. 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.
  12. echo ("<script>setTimeout(window.location='painel.php', 5000);</script>"); Ou escapar do código php ?> <script>setTimeout(window.location='painel.php', 5000);</script> <?php
  13. Omar~

    AUTO INCREMENTAR E CADASTRAR NO BANCO DE DADOS PHP

    Isso vai na estrutura da tabela. Qual é a coluna "AUTO_INCREMET"? Poste a estrutura para pode-mos ajudar melhor Qualquer coisa veja um básico CREATE TABLE IF NOT EXISTS `uma_tabela_qualquer` ( `identificador` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `um_texto` VARCHAR(23) NOT NULL DEFAULT '', PRIMARY KEY (`identificador`) ) ENGINE=MyISAM AUTO_INCREMENT=1000; Isso quer dizer que qualquer campo auto increment da tabela sempre vai começar pelo 1000 Mas então... Porque não começar pelo 1? Existe alguma necessidade por começar pelo índice maior?
  14. Não deu para ver em detalhes os erros, só deu para perceber que o php dar erro ao tentar processar índices de array que não foram definidas, no casso arrays super-globais GET ou POST (não deu para ver qual é). Isso acontece porque o arquivo que processa não recebeu esses dados e logo está tentando usar eles. Então no que posso ajudar no momento é lhe dando dicas. Tudo deve ser tratado antes de salvamento, o que inclui a verificação de sua existência Exemplo: E por aí vai, fazendo todo e qualquer tipo de verificação dos dados antes de querer usar-los, Lógico que isso é um exemplo genérico, pois o tratamento de um input vai muito mais além, na prática é possuir um método de uma classe para fazer a verificação, justamente para não ficar recriando toda uma sequência de código para cada entrada de um post como exemplo, assim sendo podemos convocar o método de verificação apenas passando por parâmetro o dado que queremos verificar. Antes da manipulação de dados confirme sua existência, um truque é depurar antes de começar. Exemplo como eu faço: Digamos então que eu vá salvar dados de um formulário. Vou lá crio o form com os inputs e tudo mais (SEM FORMATAÇÃO CSS o design é a última coisa que se deve pensar em fazer por ser a coisa mais simples). Então vou enviar os dados para o arquivo salva.php. Antes de começar a escrever o salva.php coloco isso nele. var_dump($_POST); isso se eu estiver a enviar dados do tipo post se for get usa-se $_GET. O php vai me informar corretamente todos os dados que eu enviei, basta que eu der um CTRL + C no resultado na tela que eu terei corretamente todos os inputs, assim previno erros de digitação que normalmente geram (Notice: Undefined index) Tenha bom senso na identação e lógica programacional. Fica muito mais simples para você ou outra pessoa dar manutenção no sistema no futuro. (A falta do conceito das boas práticas é o que mais me estressa quando sou contratado para consertar aplicações "é cada coisa bizarra que chega em minhas mãos") Veja algumas incoerências de seu arquivo: Isso não está errado. A condição diz se o servidor enviar um get faça, mas.... Dentro dessa condição está Se já existe o post porque verificar se o método de envio é post? Mas o tratamento inicial não era get? Por fim: E como vai fazer o updade se não não informar qual registro é para atualizar? Você deveria capturar no caso o ID através de um select no formulário e repassar esse valor para o arquivo que vai salvar os dados, lógico que o método update deve ter a condicional na entrada de parâmetros. Obs.: A PDO não faz updade se realmente não houver modificações em dados. Na simples explicação é como se a biblioteca fizesse a leitura comparasse os dados, se estão iguais, nada acontece.
  15. Não apresenta erro?! Estranho... deveria mostrar erro nessa linha: Em seu método você passa por parâmetro $titulo, $categoria, $arquivo E adiciona esses valores ao statements, o que até aí tudo bem, mas... id = :id 'id' => $id Em nenhum momento a variável $id é criada "que deveria está dentro do escopo no método", enfim, acredito que a coluna id seja INT e AUTO_INCREMENT por isso não dar erro, quando a PDO envia o valor envia NULL e o sql trata de corrigir o erro por naturalidade devido as propriedades da coluna. Daí acredito eu que na verdade o sql pega o último registro insere +1 e registra os novos dados.
  16. Vamos lá... digamos assim: mysql_connect('HOST', 'BASE', 'SENHA'); // Alerta dessa linha porque usa mysql $email = $_POST['alguma_coisa'] ? $_POST['alguma_coisa'] : ''nada; if ($email) { // <- Erro nessa linha mesmo que a var existe e possui um valor qualquer } Erro pelo fato que o código foi morto no momento do alerta cancelando todo restante das definições. Mesmo que esse não é o motivo do erro (Linha 33), mas poderia ser pelo que disse acima... Então vamos ao erro em questão dessa linha 33: name="e-mail" / $_POST['email'] Ou seja em nenhum momento o arquivo recebeu dados da array super global post como índice email e sim e-mail. No mais a questão do banco de dados procure estudar a respeito pois existem muitos conteúdos (a maioria uma porcaria) mas existem conteúdos bons espalhados na web Para lhe dar uma direção de começo sugiro que dê uma lida nesse tópico: https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/ No resto é pesquisar para aprender, e é de grande aproveito fazer algum curso com empresas sérias, mesmo que tenha que pagar alguns trocados por isso. A melhor alternativa é procurar escolas/empresas que ensinam a arte de programar de forma correta.
  17. Esquecer o tutorial que viu e também Usar mysqli ou melhor usar PDO.
  18. Omar~

    CSS Animation - DIV from top:200px to top:0px

    Seu problema, além de erros no CSS era que você estava orientando os efeitos de forma errada. Só uma coisa que fiquei curioso. Essa div ela tem que acompanhar a rolagem da tela (ficar fixa)? Se sim troque a propriedade da div de position: relative; para position: fixed; Veja se é esse o resultado final que espera.
  19. Omar~

    Script não funcionando totalmente

    Não sou fã de jquery (Na verdade detesto essa coisa). Mas vamos lá. Em sua função você tem 2 eventos disparados com o click. Um no documento outro no elemento, porque se disparar os dois não vai dar certo mesmo, o correto e mais eficaz seria ter um único evento de gatilho no documento. Então checar se o elemento alvo do click que disparou o evento é o do botão, então o restante da função é ativa, do contrário outra coisa deve acontecer. Você diz que se clicado em qualquer outra parte o "menu" deve desaparecer, então nesse termo se aplica as condições já mencionadas pelo colega, você tem que saber se o menu está ativo antes de remover-lo. Veja um exemplo na prática, para ver como é simples essa questão: Sugiro que dê uma lida nessas documentações: https://developer.mozilla.org/pt-BR/docs/Web/API/Element/className https://developer.mozilla.org/pt-BR/docs/Web/API/Element/classList
  20. Omar~

    PHP não está conectando com o Banco de Dados

    Ver se isso ajuda: https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/
  21. Omar~

    Opções de Antivirus

    Eu uso o Kaspersky a mais de 10 anos, e nesse período "NUNCA" minhas máquinas windows com ele instalado foram infectadas por qualquer tipo de ameaça. Já enquanto a outros, em máquinas de meus amigos de volta e meia eles me chamam para formata-las devido a infecção. Só que o Kaspersky além de pago o preço é bem salgado. Então nos termos de software free eu recomendaria o Avast por se mais eficiente. Obs.: Não fazendo propaganda mas, a versão paga do avast também é excelente.
  22. Omar~

    Aparecendo o erro : Undefined índex: Id

    Usando isset() Não sei como você está usando esse valor mas de do jeito que for a condicional é sempre a mesma: Exemplos: <?php if (isset($_SESSION['id'])) { // Se for definido $_SESSION['id'] isso acontecerá } // Caso não exista nem erro terá // ************* // // Outro exemplo $variavel = (isset($_SESSION['id']) ? $_SESSION['id'] : 'Outra coisa'); // Ou seja se definido $_SESSION['id'] $variavel será o valor, caso não será uma string "Outra coisa" // então de um jeito ou de outro sempre vai existir a condicional // ************* // // Outro exemplo if (isset($_SESSION['id']) && $_SESSION['id'] == 1) { } // Nesse termo a $_SESSION['id'] tem que exsitir e deve ser de valor "1" // Caso não se enquadre na condição, erro não existirá E assim vai pode ser feito de diversas formas dependendo do resultado final a se obter. Leia a documentação a respeito: http://php.net/manual/pt_BR/function.isset.php
  23. Omar~

    Confirmar se visualizou a imagem

    Dar sim, pois se cada elemento de seletor class mySlides possuir um id você pode obter esse valor logo assim: x[myIndex-1].style.display = "block"; var identificador = x[myIndex-1].id; // Esse seria o ID do atual .mySlides Nesse caso então para enviar para um salvamento em banco de dados, você pode optar por executar um ajax requisitando o arquivo que vai fazer o registro no banco informando esse valor objeto_HttpRequest.open('GET', 'arquivo_que_salva.php?valor=' + identificador, true); Nesse caso tem que criar a estrutura do protocolo pois só informei como fazer o envio. Pois o "arquivo_que_salva.php" sempre vai receber $_GET['valor']; que é o id passado pela função javascript Só que desaconselho isso... Porque? Na sua função você tem: setTimeout(carousel, 1000); Ao qual a cada 1 segundo ele troca de imagem, então a cada 1 segundo será uma query executada, agora imagine se 1.000 pessoas estiverem acessando. Isso são 1000 querys por segundo (coitado do seu servidor), sem contar que alguém pode abrir o inspetor e alterar o javascript para setTimeout(carousel, 1); executando uma query a cada 1ms Mas sei lá, se fosse para eu fazer iria tentar da forma que falei.
  24. Omar~

    Undefined index PHPExcel

    $objPHPExcel é o objeto da intância de uma classe. Isso pode ocorrer pelo fato do objeto não ter sido declarado ou o arquivo da classe para esse objeto não foi incluída include('AlgumaClasseQueNaoSeiQual.php'); $objPHPExcel = new AlgumaClasseQueNaoSeiQual();
  25. Omar~

    Erro na exibição de variavel php

    <?php $cont_pag = []; // Criar array $cont_pag $cont_top = []; // Criar array $cont_top $pagina = 'conteudo da pagina'; $topo = 'Topo da pagina'; for ($i = 1; $i > 3; $i++) { // Que estranho esse loop qual o obtivo nele? $cont_pag[$paginas] = $pagina; $cont_top[$paginas] = $topo; } //Exibição do conteudo for ($i=1; $i <= 3; $i++){ // Esse loop está correto echo $cont_top[$i]; echo $cont_pag[$i]; }
×

Important Information

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