Ir para conteúdo

POWERED BY:

Omar~

Members
  • Total de itens

    1327
  • Registro em

  • Última visita

  • Dias vencidos

    15

Tudo que Omar~ postou

  1. Omar~

    Editar site por area administrativa

    Veja se não existe um caractere binário invisível antes da declaração da variável. (caso tenha usando Crtl+C & Ctrl+V aqui do fórum com certeza deve ter). Nesse caso escreva o código a mão, ou use um editor capaz de interpretar esses caracteres. Verifique se você fechou o código anterior com um ponto-e-virgula. unexpected T_VARIABLE Diz que o PHP não espera aquela variável agora pois ainda não terminou de executar uma instrução anterior. Então quando ver isso, normalmente não está relacionado exatamente a instrução atual e sim a alguma coisa anterior.
  2. Omar~

    Variações / cor / tamanho

    Então seria uma cor distinta quando for P ou M ou G? <?php function defineCor($valor) { switch (strtolower($valor)) { case 'p': $cor = 'ff0000'; break; case 'm': $cor = '359107'; break; case 'g': $cor = '3b7fe7'; break; default: $cor = '000000'; break; } return ('#' . $cor); } ?> <div style="color:<?= defineCor('M') ?>">lorem ipsum dolor sit amet</div> Se for uma cor para cada registro, aí você tem que registrar essa cor junta a própria tabela seja lá qual for o que é para ter cor.
  3. Omar~

    Limitar palavras

    Repassei o que fiz e na lógica tudo funcionaria como previsto, então testei para realmente ver... E não é que funcionou como esperado! O resultado: Em caminho de...
  4. Omar~

    Limitar palavras

    Eu não testei mas deve funcionar: <?php function limitarPalavras($texto, $quantidade) { $textoArray = explode(' ', $texto, ($quantidade + 1)); if (count($textoArray) > $quantidade) { unset($textoArray[$quantidade]); } return (implode(' ', $textoArray) . '...'); } Então você chama a função informando por parâmetro "$texto" o texto que é para limitar a quantidade de palavras e como segundo parâmetro "$quantidade" você informa quantas palavras quer. Exemplo: $palavra = "Em caminho de paca tatu caminha dentro?"; echo limitarPalavras($palavra, 3); O que eu fiz, simplesmente quebrei o texto em um array separando cada palavra pelo espaço entre elas, mas a quantidade de índices desse array deve ser a quantidade que informamos +1 porque sempre o primeiro índice de um array é zero. Então se a quantidade de índices gerados pelo explode for maior que a quantidade, remove-se esse índice sobrando. Por fim com a o implode juntamos nosso array quebrado novamente em uma string.
  5. Omar~

    Variações / cor / tamanho

    Que tamanhos que categoria? O que você cadastra mesmo? Cor do que? Para o que? Ninguém vai ter se você não disser do que se trata Explica direito e não de forma branda/leviana para que nós possamos ter pelo menos uma mínima ideia do que de fato você está tentando alcançar. Porque o que você disse não diz coisa com coisa alguma...
  6. Realmente não existe outra alternativa a não ser a proposta inicial. Obrigado pela ajuda @Motta
  7. Estou com a tarefa de elaborar uma leitura no banco de dados e não estou conseguindo achar uma solução para a instrução de leitura. Basicamente tenho uma tabela que de produtos, nela tenho uma coluna para registrar o vendedor e outra para registrar o comprador assim associar esses valores com a tabela de usuários. Digamos assim: SELECT produto.id, produto.vendedor, produto.comprador, usuarios.id, usuarios.nome FROM produto INNER JOIN usuarios ON produto.vendedor = usuarios.id Com isso tenho a informação do vendedor na tabela de usuários, mas como faria para obter os dados do comprador também? Uma forma seria executar dois joins na tabela de usuários porém acho que assim me parece mais gabiarra do que o jeito mais coeso de se fazer (e na verdade foi gabiarra sim porque não sei como proceder) Tipo assim: SELECT produto.id, produto.vendedor, produto.comprador, a.id AS a_id, a.nome AS a_nome, b.id AS b_id, b.nome AS b_nome FROM produto INNER JOIN usuarios AS a ON produto.vendedor = a.id INNER JOIN usuarios AS b ON produto.comprador = b.id Tem outro jeito? Como?
  8. Achei interessante e um desafio, mas antes de fato tentar fazer veio um problema. Existe um limite na quantidade de caractere que um número pode chegar? Exemplo: Se tivesse-mos 123456789, lógico que a cada numero passado é maior que o anterior, mas na condição que 123456 é maior que 789, por isso achei que não conseguiria inventar alguma coisa para sanar esse problema. Sem botar a mão na maça primeiro eu quebraria o numero em um array, e através de um while compararia cada índice com o próximo se for maior aumentaria o valor de uma variável ou a re-escreveria com o novo número sempre comparando com o próximo até cessar o loop. Se tudo desse certo como na teoria condiz eu estaria com o maior numero em sequencia, o problema seria o limite máximo de caractere que a a varável do resultado pode alcançar.
  9. Omar~

    password_verify

    Rapaz só tem um jeito de você fazer a coisa andar. 1º - Você tem que salvar a senha do usuário durante seu cadastro usando o password_hash 2 º - Como o login é e-mail e senha você verifica somente se existe o e-mail, se existir aí você traz os dados desse e-mail, na precisão precisa da senha que está salva lá quando o usuário se cadastrou. 3º - Com essa senha obtida pelo e-mail aí você compara o valor salvo no banco de dados com a digitada usando o password_verify E a propósito: NUNCA/ JAMAIS/ EM HIPÓTESE ALGUMA!!! Ofusque alguma coisa! E ainda pior você fez cometeu erro gravíssimo em uma super global.... Nada deve ser ofuscado e nunca super-globais devem ser acessadas diretamente.
  10. @Motta Meio estrando não é? De fato sempre quando precisei fazer algo semelhante, fazia duas querys e unificava os resultados em um único array no PHP. Mas a questão que acho poderia existir outra forma é: Uma vez que já fiz um JOIN na tabela de usuários, poderia existir algum comando "que desconheço" para relacionar as duas colunas diferentes para um único JOIN.
  11. Omar~

    Editar site por area administrativa

    Sim pode ser feito com um banco de dados, basta apenas que saiba registrar e ler dados. Porém textos design das páginas e uma porção de coisas pode ser executada por arquivos apenas mudando seus parâmetros. É muito comum na área de desenvolvimento para terceiros colocar-mos alguma coisa de mudança de configuração, como alterar dados de acesso a banco de dados o já mencionado acima e uma infinidade de coisas de forma a facilitar o manuseio da aplicação pelo cliente, pois normalmente ele não sabe programar por isso ele nos contratou, e apenas com alguns cliques ele possa gerenciar toda a aplicação. Mas não acho sensato um amador se entregar nisso, pois requer muita atenção pois um simples erro pode custar muito dinheiro para o cliente que vai com certeza processar-lo pela perda (recentemente um conhecido meu foi preso por causa disso mesmo). No entanto é bom que comece a fazer coisas básicas pessoalmente para ir se acostumando. Vamos então supor que tenha-mos textos para serem exibidos que podem ser editados. Irei usar um arquivo XML pois pode guardar muita informação e na teoria funciona como banco de dados (MAS NUNCA USE UM ARQUIVO DESSES PARA GUARDAR DADOS DE ACESSO!!!) <?xml version="1.0" encoding="UTF-8"?> <textos> <texto_a>Algo escrito para ser mostrado</texto_a> <texto_b>Outra coisa</texto_b> </textos> Aí caso queiramos mostrar alguma coisa desse arquivo: <?php $lerXML = simplexml_load_file('arquivo.xml'); echo ($lerXML->texto_a); Mas de nada adianta se não pudermos editar não é mesmo? Então criamos um arquivo que será responsável por re-escrita do arquivo original. <?php $escrita = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" . "<textos>" . "<texto_a>{$texto_a}</texto_a>" . "<texto_b>{$texto_b}</texto_b>" . "</textos>"; return $escrita; Nada mais que um arquivo php que tem escrito os padrões do arquivo original que vamos alterar Então para alterar-mos o arquivo bastamos criar as variáveis usadas no arquivo acima. Incluir ele e re-escrever outro XML com o que vamos modificar salvando em cima do outro assim substituindo o anterior. <?php $texto_a = 'Estou mudando o texto A do arquivo XML'; $texto_b = 'Estou mudando o texto B do arquivo XML'; $saida = include ('escrita.php'); // O arquivo php de re-escrita $salvar = 'arquivo.xml'; // O arquivo XML que é para salvar $escrever = fopen($salvar, 'w') or die('Não é possível gerar o arquivo.' . '<br />Verifique as permissões de acesso as pastas e arquivos no servidor'); fwrite($escrever, $saida); fclose($escrever); Se então acessarmos aquele arquivo que fizemos a leitura do XML vemos que o texto foi alterado. Porém se não queira-mos mudar tudo fazemos a leitura do arquivo XML comparamos as informações diferentes e setamos valores iguais ou diferentes nas variáveis conforme o que de fato foi alterado. No mais é o básico se formulários HTML e receber essas informações e processar-las no back-end para ser usadas.
  12. Bem simples de resolver se você tem mesmo acesso aos arquivos hospedados. A mensagem é clara e diz que o usuário sql palms não tem permissão de acesso devido a senha incorreta. Veja alguma documentação desse prestashop e ver em qual arquivo armazena os dados de acesso ao banco de dados. Acesse os arquivos na hospedagem e faça o download desse arquivo. Modifique os dados manualmente nesse arquivo, conforme os novos dados de acesso ao sql. Envie esse arquivo modificado para a hospedagem substituindo o que lá está com dados inválidos.
  13. Já de cara sem olhar a fundo podemos ver.... Quando isso aqui não estiver vazio entramos na condicional.... Então a variável $idclient será o valor do input não vazio... Aí nessa condição para ser válida $idclient deve ser vazio:
  14. Bom, uploads podem ser feitos de inúmeras formas. Aqui eu presumo que é um usuário logado que está tentando enviar arquivos, então preparei um exemplo genérico sobre o assunto, espero que seja algo como isso. Começando pelo html, um formulário de envio simples, e padrão para envio. Mas a pegada está no javascript controlando o que é selecionado antes de submeter o formulário. Aí no arquivo que vai receber os você faz Sei lá cara seu código também envia arquivos, então eu acho que a questão mesmo era salvar no banco de dados. Como desconheço a estrutura de sua tabela e quais dados realmente é para salvar, então a ajuda é mínima. Mas o esquema é esse aí mesmo cabe você adaptar a sua realidade.
  15. Rapaz está difícil entender o que de fato você está tentando fazer.... Se você já enviou os arquivos, porque uma nova função para enviar arquivo? Sei lá tenta isso aqui: https://github.com/Spell-Master/sm-web/tree/master/javascript/FileTransfer Assim você pode está sempre enviando arquivos sem sair da página atual. A propósito umas observações:
  16. Omar~

    submit sem refresh

    Primeiro isso aqui... Altere para... // Substituir ofuscação que só vai gerar problemas, por valor neutro quando dados não existem $nome = (isset($_POST['nome']) ? $_POST['nome'] : ''); E para envio sem recarregar: https://github.com/Spell-Master/sm-web/tree/master/javascript/AjaxRequest
  17. Omar~

    array retornar elementos

    https://forum.imasters.com.br/topic/587732-dizer-se-tem-ou-não-dados-repetidos-no-array/ E não é a mesma coisa?
  18. Omar~

    dizer se tem ou não dados repetidos no array

    Sem reinventar a roda, a função para isso é array_unique
  19. Omar~

    Problemas com variáveis PHP

    Estranho, segundo o input o índice fileimg deveria existir, então pode ser erro no formulário. Rode esse código: <form method="POST" enctype="multipart/form-data"> <input type="file" name="nome_do_input" /> <button type="submit">Enviar</button> </form> <?php $arquivo_enviado = (isset($_FILES['nome_do_input']) ? $_FILES['nome_do_input'] : false); if ($arquivo_enviado) { echo "<pre>"; var_dump($arquivo_enviado, $_FILES); echo "</pre>"; } Algumas ponderações: Para validar a extensão e dados do arquivo use a class finfo. Antes de querer checar o tamanho do arquivo, obtenha se o tamanho condiz com a configuração do seu servidor, para obter esse informação use "ini_get('upload_max_filesize')". Mas você pode alterar o tamanho máximo no PHP.ini
  20. Omar~

    Segurança dos formulário

    Desde sempre foi possível manipular o HTML de um formulário, hora que também sempre foi possível enviar dados por POST ou GET mesmo sem passar por sua aplicação. Se você pode impedir que alguém altere o html ou envie dados? A resposta é simples, e é não, você não pode impedir nada disso. (Se renderizou o HTML, entregou para o usuário é dele e ele pode manipular da forma que bem entender, desde o html, js, mídias etc...) O que você pode e "DEVE FAZER" é sempre tratar qualquer tipo de informação que venha de um ambiente externo principalmente se alguma dessas informações vão se usadas em um banco de dados. Lógico que o tipo e como vai ser tratada algum dado que entra depende de quão sensível ele é e qual sua finalidade. Exemplo se o tipo de dado que tenho que validar é um INTEGER e a informação que entrou além de números inteiros entrou alguma string ou flutuante, posso simplesmente lançar um erro ao invés de continuar meu código. Se vou por exemplo salvar uma string no banco de dados e essa string contém caracteres suspeitos como algarismos, chaves etc. Posso lançar um erro ou limpar essa string antes de acessar o database. No geral é isso, sempre validar se o tipo de dado é o que vai ser usado, uma limpeza de string aqui e alí, junto a PDO você garante 90% de segurança, só não se consegue 100% porque nada é realmente inviolável. Uma regra que valide seus dados? Depende como disse do que vai ser feito, e sim você pode criar uma regra/manha/truque como disse acima. Mas lembre-se que quanto mais filtros você passa mais seguro vai está e menos usabilidade sua aplicação irá ter. Proteger excessivamente só vai deixar a coisa devagar.
  21. Omar~

    Filtro de busca

    Sabia que se você usar as ferramentas corretas uma parte do problema é resolvido? Ao invés de usar um input checkbox use o radio que serve para esse tipo de situação. Bom, não de para eu entender o real problema, mas o que me aparenta é que você precisa envia um cabeçalho HTTP como POST. Se for esse o caso:
  22. Omar~

    Conversão de JPEG e PNG para WEBP com imagewebp

    Você está destruindo a imagem criada na variável $image? Pode ser um problema de cache. Já tive um problema similar e era apenas que eu não estava limpando a memória. Mas tente criar uma nova imagem já aplicando as correções grb, então você copia essa imagem para corrigir eventuais problemas de dimensionamento. Só então com essa cópia você cria o arquivo webp Mais ou menos isso: <?php $arquivo = 'imagem.jpg'; $imagem = imagecreatefromjpeg($arquivo); $imgX = imagesx($imagem); $imgY = imagesy($imagem); $novaImagem = imagecreatetruecolor($imgX, $imgY); imagealphablending($novaImagem, false); imagesavealpha($novaImagem, true); imagecopyresampled($novaImagem, $imagem, 0, 0, 0, 0, $imgX, $imgY, $imgX, $imgY); imagewebp($novaImagem, 'imagem.webp', 100); imagedestroy($imagem); // Importante para limpar o cache echo ("<img src=\"imagem.webp\" alt=\"\" />");
  23. Omar~

    DATA-HORAs

    Informação indispensável para saber como manipular datas. Mas o caminho é mais ou menos esse: <?php $dataDeTermino = strtotime('2021-10-30 14:00:00'); if ($dataDeTermino < strtotime(date('Y-m-d H:i:s'))) { echo ("Terminou, apague o registro nessa condição SE ELE EXISTE! "); }
  24. Omar~

    [Resolvido] Múltiplos checkbox

    Pouca informação para poder ajudar. Começando pelo menos relevante: Como é esse processo? Em que tipo de coluna é salvo essa informação? O mais relevante: A função explode cria um array com onde acada índice vai existir conforme o delimitador é definido. Como você está resgatando cada índice para pode definir o valor de um input, assim setar-lo como checado? Ver se te ajuda: <?php $string = 'valorA, valorB, valorC'; $array = explode(', ', $string); var_dump($array); ?> <hr /> Usando a função "in_array" <p><input type="checkbox" value="valorA" <?= (in_array('valorA', $array) ? 'checked=""' : null) ?>/>valorA</p> <p><input type="checkbox" value="valorX" <?= (in_array('valorX', $array) ? 'checked=""' : null) ?>/>valorX</p> <p><input type="checkbox" value="valorB" <?= (in_array('valorB', $array) ? 'checked=""' : null) ?>/>valorB</p> <p><input type="checkbox" value="valorC" <?= (in_array('valorC', $array) ? 'checked=""' : null) ?>/>valorC</p> <p><input type="checkbox" value="valorY" <?= (in_array('valorY', $array) ? 'checked=""' : null) ?>/>valorY</p> <hr /> Ou comparando arrays <?php $inputs = ['valorA', 'valorX', 'valorB', 'valorC', 'valorY']; $marcado = ''; foreach ($inputs as $valor) { foreach ($array as $checked) { if ($checked == $valor) { $marcado = 'checked=""'; } } echo ("<p><input type=\"checkbox\" value=\"{$valor}\" {$marcado} />{$valor}<p/>"); $marcado = ''; }
  25. Omar~

    DATA-HORAs

    Sem a estrutura da tabela fica difícil ajudar. De qualquer forma também é possível comparar datas/horários uma vez que alguém alguma hora irá acessar a aplicação e a tabela será lida. Se houver algum registro que foge da data/horário estipulado esse registro pode ser apagado antes que o HTML seja renderizado para o usuário.
×

Informação importante

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