Jump to content

Omar~

Members
  • Content count

    786
  • 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

6 Followers

About Omar~

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

Informações Pessoais

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

Recent Profile Visitors

3737 profile views
  1. Omar~

    DataGrid com opção de movimentar (reposicionar)

    Estou desenvolvendo uma aplicação ao qual justamente tenho setores são listados na página, havendo a possibilidade do administrador controlar a ordem que esses setores vão ser exibidos. Minha lógica para fazer o tal foi: Ter uma coluna X tipo (int) na tabela justamente para armazenar a ordem de exibição. Ao criar novo registro consulto a tabela e vejo quantos registros existem, assim obtenho o último número a ser exibido (isso pode ser feito através da função count), com esse valor somo com ($valor += 1) e salvo o novo registro X esse passando a ser o último. Ao editar nada mais faço que consultar alternando os valores entre eles, exemplo (se o N°3 vai ser Nº2, é fazer um updade no registro cujo seja número 2 ser 3 e o 3 ser 2). Em resumo nada mais é que alterar os valores através de update.
  2. Omar~

    Erro ao enviar a mensagem!

    Primeiro devo falar que seu código está completamente exposto a ataques. if(!$result) Se a variável não existe ou se não for nula entra nessa condição.
  3. Omar~

    Erro na exibição da imagem php

    O erro pode está justamente aqui: Não seria?: <?= substr($ultimos['imagens'], 0, -4); ?> Só que também deve-se ficar atento se a string realmente condiz com o nome da imagem que possa está na pasta img
  4. Impossível alguém lhe responder pois não teremos como saber como é o comportamento de sua classe de upload. Mas sim é possível. Veja isso talvez lhe ajude: https://github.com/Spell-Master/sm-web/tree/master/exemplos/corte-e-salvamento-de-imagens Pois essa aplicação de desenvolvi faz justamente isso, pós o upload com sucesso entra em ação o script para ajustar o corte da imagem.
  5. Omar~

    Dúvidas sobre sequencia de div's em CSS

    Provavelmente, o elemento ao qual anexou uma cor de fundo não possui tamanho, logo não verá seu background pois seu tamanho é 0X0 pixel's. Também devemos lembrar sobre a questão de cache do browser, ao qual pode não está definindo novas propriedades. Ambos casos podem ser averiguados usando a ferramenta de inspeção. Mais uma coisa, não que isso atrapalhe ou mesmo der problema mas essa definição não deveria existir. O correto seria: * {padding:0; margin:0} /* Tudo por padrão não possui espaçamentos */ body, ul {background: #e2e2e2} ul{list-style: none} O escopo da página não é uma lista logo a estilização de lista não é válida, causando um "warnning" na depuração do CSS. Já a tag <ul> "lista desordenada" pode receber list-style.
  6. Omar~

    Ajuda em Laço de Repetição com PHP

    <?php $string = '11223344556677889900'; $separa = str_split($string, 2); echo '<pre>'; var_dump($separa); echo '</pre>'; $string = '11, 22, 33, 44, 55, 66, 77, 88, 99, 00'; $separa = explode(", ", $string); echo '<pre>'; var_dump($separa); Aí complica, pois temos que repensar muito na forma de gerar os números. Mais detalhes em: https://forum.imasters.com.br/topic/580228-combinação-letra-e-numeros-com-apenas-uma-repetição/?tab=comments#comment-2272548 Podemos tentar alternativas, nesse caso os números que serão gerados são pré definidos a não gerandos pelo rand, pois para isso requer funções de checagens se o número atual já existe e tal. Assim sendo optei por criar um array com todos os números possíveis para serem gerados tipo: $numeros_validos = ['01', '02', '03 ......]; Porém criar isso "na unha" é demorado usamos o php então para criar esse array <?php $numeros_validos = []; for ($i = 1; $i < 100; $i++) { // Total de 99 números gerados 1,2,3.... até 99, essencial começar pelo 1 para não gerar o número zero $numero = ($i < 10 ? "0{$i}" : "{$i}"); // caso seja 1,2,3... fazemos com que os números sejam 01,02,03... $numeros_validos[$i] = $numero; } Como nosso array é 01,02,03... até o 99. O pulo do gato para gerar o sorteio será misturar esses índices, como não há números repetidos no array não teremos números repetidos no sorteio. De acordo com meus cálculos existe um provabilidade de 1,50% de gerar cartelas com o mesmos números e apenas de 0,15% de seguirem a mesma sequência.
  7. Omar~

    Tag <video> não funciona no Chrome

    A correta utilização seria: <video controls="controls" autoplay="autoplay"> <source src=" ENDEREÇO DO ARQUIVO " type=" MIME-TYPE "> </video> Porém o youtube não deixa que seus conteúdos sejam exibidos por hotlink, o motivo disso eu não sei. De qualquer forma se você usar iframe vai obter o resultado desejado.
  8. Omar~

    Ajuda em Laço de Repetição com PHP

    Seria bom se eu tivesse/soubesse como é sua estrutura SQL da tabela para dar um exemplo melhor. Mas seguindo suas informações deduzo aproximadamente como é a tabela, no meu exemplo a criei assim, lógico inserindo o conceito do exemplo: DROP TABLE IF EXISTS `cartelas`; CREATE TABLE `cartelas` ( `c_id` int(9) NOT NULL AUTO_INCREMENT COMMENT 'identificador único', `c_user` int(9) COMMENT 'identificador do usuário', `c_reference` int(9) COMMENT 'código de referencia', -- `c_quantidade` int(9) COMMENT 'quantidade de cartelas', -- Não entendi o porque disso então apenas é comentário `c_status` ENUM('0','1') COMMENT '0 = sem paragamento, 1 = pago', `c_value` int(2) COMMENT 'valor da cartela', `c_numero` int(2) COMMENT 'número da cartela gerada', PRIMARY KEY (`c_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; No HTML preferir substituir o input por um seletor que dar mais praticidade ao usuário e já de cara podemos fazer um limitação pelo HTML (Lógico que isso pode ser manipulado por pessoas má intencionadas, porém no back-end trataremos disso também) <form method="post"> <p>QUANTIDADE DE JOGO</p> <select name="qtd_cartela"> <option value="">Quantidade de cartelas</option> <option value="1">1 cartela</option> <option value="2">2 cartelas</option> <option value="3">3 cartelas</option> <option value="4">4 cartelas</option> <option value="5">5 cartelas</option> <option value="6">6 cartelas</option> </select> <input type="submit" value="Gerar Cartela" /> </form> No caso meu são no máximo seis cartelas, tente limitar ao número mais baixo o possível, pois usaremos um loop para registrar dados, e se o loop for muito extenso pode travar o servidor. Entramos então na parte back-end Em primeiro eu estabeleci conexão com o banco de dados: $host = '127.0.0.1'; // IP do banco de dados $db = 'bingo'; // Nome do banco de dados $usuario = 'root'; // usuário que tem permissão de manipular o banco $senha = ''; // senha do usuário que tem permissão .... try { $dsn = "mysql:host={$host}; dbname={$db}"; $options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8']; $con = new PDO($dsn, $usuario, $senha, $options); } catch (PDOException $erro) { die('Erro na conexão: ' . $erro->getMessage()); } Um ponto que devemos ficar atento é o índice $userlogin['user_id'], ao qual deduzo que seja um índice de cessão, nesse caso devemos ficar atento a esses dados pois eles provém da máquina do usuário, ao qual podem ser manipulados e inserido códigos. Temos que prever o sql injection pois esse é o único dado que vamos registrar ao qual nosso sistema não irá gerar. $user_id = htmlentities($userlogin['user_id']); Sobre a parte de gerar o código de cada cartela continua a mesma coisa como disse no outro post. Registamos então os dados varrendo o array $cartela e usando o objeto de conexão PDO, a cada volta uma query será lançada, por isso a importância de limitar. Infelizmente não consigo pensar em outra alternativa para não ter que fazer o que deseja. $sql = $con->prepare( 'INSERT INTO cartelas ( c_user, c_reference, c_status, c_value, c_numero ) VALUES ( :user, :reference, :status, :value, :numero )' ); foreach ($cartela as $value) { $sql->execute([ 'user' => $value['user_id'], 'reference' => $value['cod_reference'], 'status' => $value['status_cartela'], 'value' => $value['valor_cartela'], 'numero' => $value['numero_cartela'], ]); } Para mostrar o dados é simples então, temos o array $cartela ao qual vamos varrer também assim como foi feito para registrar no banco, a única diferença é que vamos mostrar os dados. E aqui todo o código do exemplo junto:
  9. Omar~

    Ajuda em Laço de Repetição com PHP

    Hora se você quer registrar cada sorteio em cada tabela basta lançar a query a cada volta do loop. Porém isso requer uma depuração minuciosa, limitando a quantidade de voltas que o loop vai dar, muita atenção para evitar loop's infinitos. No caso você pega o valor vindo de POST para delimitar a quantidade de cartelas, esse valor deve ser tratado e limitado para evitar milhares de voltas no loop. Do contrário poderá causar uma sobrecarga do servidor. As demais questões sobre mostrar o valores nada mais que irá apresentar os dados gerados dentro do loop, o que nos remete a isso: Você cria o array ARR dentro do loop, de fato ele terá seus dados gravados em memória, porém como no casso $arr só possui um índice a cada volta do loop ele é recriado com novos valores. Quando temos que resgatar valores abstratos que foram gerados em loops temos que optar o arrays-multi dimensionais para não reescrever dados. $arr[INDICE] = [ ... valores do array nesse índice Com isso pós o loop teremos um array com todas informações geradas pelo loop.
  10. Omar~

    Ajuda em Laço de Repetição com PHP

    Bom, se a questão é gerar vários números que seriam cartelas e cada cartela tenha seu número aleatório, é só seguir a mesma lógica usando-se de dois loop's para isso. Fazendo então que cada cartela seja um índice de array. <?php $totalNumber = 25; $total = ''; //$qtd = $bingo['qtd_cartela']; $qtd = 3; $cartela = []; for ($j = 0; $j < $qtd; $j++) { for ($i = 0; $i < $totalNumber; $i++) { $numberGenerator = rand(1, 90); $total .= $numberGenerator; } $cartela[$j] = $total; $total = ''; } echo '<pre>'; var_dump($cartela);
  11. Omar~

    Framework para html

    Convenhamos, para que pegar algo que não é sua estrutura para compor parte de sua estrutura html? Porque pelo que dar para entender é que você quer pegar parte do html alheio e anexar ao seu. De fato não sei exatamente o que pretende, se o arquivo está em qualquer diretório de sua aplicação o include como mencionei irá funcionar sim, se for algo externo deve ficar atento pois isso irá abrir um falha de segurança ao qual o XSS pode rodar sem problemas (por isso include externo já vem bloqueado por segurança). Em todo caso utilizar-se de classes para compor o html quando repetições forem corriqueiras é a melhor alternativa. <?php /* Isso seria um arquivo de classe */ class exemplo { public function digaOla() { $html = '<div class="ola_mundo">'; $html .= '<p>Olá mundo</p>'; $html .= '</div>'; return ($html); } } /* Isso seria um arquivo separado ao qual quero um divisor e um parágrafo com o texto olá mundo assim como a classe mostra */ $html = new exemplo(); echo ($html->digaOla()); echo ($html->digaOla()); echo ($html->digaOla()); Para permitir include externo vá no arquivo PHP.INI e altere essa configuração: allow_url_include = Off Porém como disse você estará metendo os pés pelas mãos abrindo breja de ataque XSS. Será necessário permissão do servidor ao qual está tentando puxar o arquivo.
  12. Omar~

    Centrralizar e Alinhar DIVS

    CSS * {margin:0; padding:0} .centralizar_internos { text-align: center } .coluna { display: inline-block; /* Isso irá alinhar lado a lado */ vertical-align: top; /* Isso irá alinhar ao topo */ margin: 0 10px; /* margem de zero ao cima e baixo e 10px esquerda e direita */ width: 250px; /* Tamanho fixo para melhor responsabilidade */ height: 350px; border: 2px solid #656565; border-radius: 15px; background-color: #373737 } /* Alterando características em telas cujo a resolução máxima é 600 pixels */ @media (max-width: 600px) { .coluna { margin: 0; /* Removendo as margens */ width: 98% /* Definindo nova largura */ } } HTML <div class="centralizar_internos"> <div class="coluna"> <img src="./img/programacao.png" alt="a propiedade 'alt' é obrigatório em imagens!!!" /> <h1>Softwares</h1> <p>Possuimos diversos Softwares para a sua empresa.</p> </div> <div class="coluna"> <img src="./img/bancodedados.png" alt="a propiedade 'alt' é obrigatório em imagens!!!" /> <h1>Banco de Dados</h1> <p>Organimazanos todos seus dados e configuramos oque precisa.</p> </div> <div class="coluna"> <img src="./img/mobile.png" alt="a propiedade 'alt' é obrigatório em imagens!!!" /> <h1>Desenvol. Mobile</h1> <p>Fazemos o aplicativo ideal para a sua Empresa.</p> </div> <div class="coluna"> <img src="./img/rede.png" alt="a propiedade 'alt' é obrigatório em imagens!!!" /> <h1>Estrutura de Rede</h1> <p>Fazemos toda o mapiamento da rede e implantação.</p> </div> </div>
  13. Omar~

    Framework para html

    Basta que informe o caminho para o arquivo, exemplo: include ('pasta/pasta/arquivo.php'); Vale lembrar que uma boa técnica para prever perca de diretório com inclusão basta informar onde está o arquivo a partir de onde está o arquivo atual. Digamos então que estamos na pastaA que está dentro da pastaB que se encontra no mesmo diretório que está a pastaC ao qual lá dentro existe o arquivo para incluir. Então a inclusão sem risco de erro seria: include (__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'pastaC' . DIRECTORY_SEPARATOR . 'arquivo.php'); Uma outra forma mais prática e mais eficaz de trazer repetições de estruturas é criar uma ou mais classes as quais seus métodos criam o html.
  14. Omar~

    Digitar só números 2

    Bom esse seria um recurso mais simples ao input <input type="text" pattern="([0-9]+)$" required /> Ou seja se o input for inserido qualquer coisa que não seja número ao tirar o focus sobre o input o browser já acusa que está errado e nem formulários serão submetidos enquanto o input não estiver correto. Mas entramos em outro cenário, onde o usuário irá digitar qualquer coisa no input e nada acontecerá, a menos que ele insira números. Ou somente números serão escritos dentro do input. <input type="text" onkeypress="gerenciar_input(this, numeros)" onblur="clearTimeout()" /> <script> function gerenciar_input(a, b) { ipt = a; obj = b; setTimeout('mascara()', 1); } function mascara() { ipt.value = obj(ipt.value); } function numeros(v) { v = v.replace(/\D/g, ''); return v; } </script> Isso nada mais que fará uma análise a cada caractere inserido, se não for número é imediatante removido em 1 micro-segundo. Obs.: Se for algo crucial de nada adianta sem uma verificação back-end.
  15. O problema está aqui, porque de fato nada é perdido dentro do disco e sim sobre escrito. Meu conselho é que não manoseie o HD e leve a uma empresa especializada sobre tal afim (Esse tipo de serviço e extremamente caro) assim como disse o @Lord Enigm@. Quanto mais você manusear o hardware menor serão as chances de recuperação de dados.
×

Important Information

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