Ir para conteúdo

POWERED BY:

Williams Duarte

Members
  • Total de itens

    3967
  • Registro em

  • Última visita

  • Dias vencidos

    47

Tudo que Williams Duarte postou

  1. Williams Duarte

    Apagando foto do registro e da pasta

    Você tem que selecionar o path da foto antes de efetuar o update. $result = $sqli->query("select foto clientes where id_cliente = $id_cliente"); $obj = $result->fetch_object(); $path = './fotos/'. $obj->foto; $sql = $sqli->query("update clientes set foto = '$nome_imagem' where id_cliente = $id_cliente"); .... if ($sqli->error) { echo "<p>Erro ao atualizar.</p>" . $sqli->error; } else { if (file_exists($path)) { unlink($path); } // vai forçar o recarregamento da imagem nova $fotoNova = '?' . microtime(true); }
  2. Williams Duarte

    Como criar subdomínios automáticos a partir de um formulário

    Em desenvolvimento ou em um Droplet "nuvem", você pode alterar o VirtualHost, colocando no ServerAlias, um * "coringa" como subdominio. ServerAlias example.com *.example.com <VirtualHost *:80> ServerName domain.com ServerAlias *.domain.com VirtualDocumentRoot /var/www/public </VirtualHost> http://httpd.apache.org/docs/2.4/vhosts/name-based.html Se for usar em hospedagens com CPanel ou outro, você pode criar um subdomínio * apontando para a pasta necessária (você precisará especificar o caminho no campo Raiz do documento ) outro detalhe é especificar o DNS Obs.: No ambiente de desenvolvimento, especifique os hosts no arquivo local, no linux é em /etc/hosts, no Windows C: » Windows » System32 » Drivers » etc PS.: O subdominio que você cadastrou no banco de dados, é só para encontrar o workspace daquele usuario, o restante ficará no automatico.
  3. Williams Duarte

    Problemas ao enviar anexo com PHPMailer

    Entenda o contexto do que eu disse! Nem aqui no Fórum Imasters e, nem no StackOverflow em portugues entenderia, ja que você citou o StackOverflow. Seu problema não é a biblioteca como já disse, mas sim entender Padrões de Projeto. Comece estudando Facade Vai deixar seu codigo mais limpo e esconde a complexidade $facade = new EmailFacade(); $facade->email(getPost('email')) ->attach('...') ->send(); getPost() Com a função, __call, __callStatic() você abstrai todos os metodos de um Serviço "que usa o PHPMailer", mas se parou de funcionar, atualize o biblioteca que envia o email, ou mude para outra. Exemplo com __call e __callStatic <?php class MethodTest { public function __call($name, $arguments) { // Note: value of $name is case sensitive. echo "Calling object method '$name' " . implode(', ', $arguments). "\n"; } /** As of PHP 5.3.0 */ public static function __callStatic($name, $arguments) { // Note: value of $name is case sensitive. echo "Calling static method '$name' " . implode(', ', $arguments). "\n"; } } $obj = new MethodTest; $obj->runTest('in object context'); MethodTest::runTest('in static context'); // As of PHP 5.3.0 ?> Se não forem cobertos por testes, fica dificil mesmo. Praticamente todos os metodos de uso do PHPMailer já foram cobertos por testes, sendo assim, faça uso de testes para cobrir os seus. Mais em: https://phpunit.de/ Senão entender sobre, vai sempre depender de videos aulas, como esta acima, que ao meu ver, vale como aprendizagem, mas tenha em mente que tem um alto acoplamento e baixa coesão. Tornando seu código de dificil manutenção. Para uso de dados sensiveis, um padrão ja bastante difundido e o "environment" .env Existe um pacote para isto https://github.com/vlucas/phpdotenv
  4. Williams Duarte

    Problemas ao enviar anexo com PHPMailer

    O problema acredito não ser no PhpMailer! Pois não sabemos oque este código acima faz. Se você abstraiu as funções do PHPMailer para outra layer. Só Deus e você sabe oque fez, nem aqui e nem no SoPT entenderá. Lá no Stack ja iria ser fechada ou negativada, por nao ser clara e fora do escopo do PHPMailer.
  5. Williams Duarte

    include - Exibir select correspondente

    Vocẽ pode também pode utilizar Closures, vai deixar seu código mais organizado. <?php function createSelect($name) { return function ($data) use ($name) { $html ='<select name="'. $name .'" size="3" required>'; foreach ($data as $value) { $html .='<option>' . $value . '</option>'; } $html .= '</select>'; return $html; }; } $create = createSelect('cores'); $data = $create(array("verde" , "amarelo" , "azul")); print( $data ); $create = createSelect('carros'); $data = $create(array("gol" , "fiat" , "palio")); print( $data ); Bons estudos @Biel.
  6. Williams Duarte

    Dúvida quanto onoffswitch-label

    Há quatro possibilidades de deixar ativado automaticamente. 1 - Se tem acesso ao banco, ja deixa ativado como default 2 - Verique o codigo onde recebe os dados e seta para ativo. 3 - Passe um campo no formulário do tipo hidden com o valor true 4 - Passe um campo do tipo ckeckbox/select, com o valor true Independente de qual forma passar, vai ter que descobrir como esta o nome no banco.
  7. Williams Duarte

    include - Exibir select correspondente

    Crie uma função fábrica e da um include nas paginas que necessita! Porque o que vejo é repitação de códigos e nada mais, existe outros paradigmas de programação, além do procedural, funcional é uma delas! <?php function createSelect($data, $name) { $html ='<select name="'. $name .'" size="3" required>'; foreach ($data as $key => $value) { $html .='<option>' . $value . '</option>'; } $html .= '</select>'; return $html; } $dados = array("verde" , "amarelo" , "azul" ); print(createSelect($dados, 'cores')); $dados = array("gol" , "fiat" , "palio" ); print(createSelect($dados, 'carros')) output <select name="cores" size="3" required> <option>verde</option> <option>amarelo</option> <option>azul</option> </select> <select name="carros" size="3" required> <option>gol</option> <option>fiat</option> <option>palio</option> </select> Você pode controlar inumeras coisas, passando uma queryString pela url. Ou seja nada é impossivel.
  8. Melhor ler a própria documentação para entender sobre os Linters, especificamente no Netbeans, particularmente prefiro o xDebug. E linteres, só uso Eslint para javascript, e xDebug no PhpStorm, porque além de depurar o código corrige com as melhores práticas. Não fica só apontando tipo o VsCode com o Typescript. Tempos atrás era deste jeito, aponta os erros e você tem que se virar pra descobrir os types que a comunidade já tinha criado. Não sei agora com a evolução da linguagem. Abaixo uma forma de resolver seu problema com o Netbeans. https://stackoverflow.com/questions/19767894/warning-do-not-access-superglobal-post-array-directly-on-netbeans-7-4-for-ph
  9. Se seu aplicativo precisar reagir a pedido do tipo post, use o seguinte: if(strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') { // if form submitted with post method // validate request, // manage post request differently, // log or don't log request, // redirect to avoid resubmition on F5 etc }
  10. Williams Duarte

    Alerta Sonoro de Pedidos

    Melhor fazer isto com javascript, utilizando socket Aqui tem um exemplo muito bom com php
  11. Williams Duarte

    Gerar PDF de dados vindo do Mysql

    https://github.com/dompdf/dompdf
  12. Williams Duarte

    Problema com projeto PHP

    Crie um novo arquivo info.php, com as informações abaixo : info.php <?php // Mostra todas as informações, usa o padrão INFO_ALL phpinfo(); // Mostra apenas informações dos módulos. // phpinfo(8) mostra um resultado identico. phpinfo(INFO_MODULES); ?> e rode diretamente pela url http://localhost:8080/info.php Se imprimir na tela as configurações do php, versão etc, não tem erro em seu php Sobre isto aqui Você espera duas variaveis no mesmo ternario, "fat e val" isset($_GET["fat"])?$_GET["val"]:1 Correto $fat = $f = isset($_GET["fat"]) ? $_GET["fat"] : 1; O ternario testa se a var $_GET['fat'] foi iniciada, e retorna o valor, senao retorna false ou seja true === true retorna true else false. Se que testar mais de uma variavel, faça outro ternario. Coloque nos seus codigos php, para reportar erros: <?php ini_set('display_errors', true); error_reporting(E_ALL);
  13. Williams Duarte

    Login incorreto

    $query = "SELECT * FROM users WHERE user_name='$user_name' AND user_pass='$user_pass'"; $results = mysqli_query($db_sys, $query); faz um debug nesta variavel $results print_r($results); exit(); e poste aqui o que retorna!
  14. Williams Duarte

    Problemas com a Biblioteca GD

    Habilite os erros do PHP, unica forma de encontrar o mesmo. https://www.melhorhospedagemdesites.com/dicas-e-ferramentas/mostrar-erros-php/
  15. Williams Duarte

    Problema com projeto PHP

    Bom, seu php nao há problemas, mas sim estes envio por get, em nenhum momento a string foi passada. Mas volto a repetir, postar imagens nao resolve. Tem que postar o código para que possamos copiar o codigo e corrigir. Veja em Factoria.php, você espera por fat e val e um ternario? Ja mostra o primeiro o erro.
  16. Williams Duarte

    Problema com projeto PHP

    Print não é código. Se está aprendendo, começa a saber diferenciar código <> de print de tela. Isto abaixo, é um código adicionado em code "<>" deste editor aqui no fórum. <?php echo "Olá Mundo!"; ?> E pelo que vi você tem 03 arquivos php, se quer ajuda, leia as regras do forum. Orientações 2. Use a Tag CódigoSempre que postar códigos, adicione-o entre as tags [ code ] e [ /code ] (sem os espaços), para facilitar a leitura.Você também pode usar o Botão Code (símbolo "<>"), ao lado do Botão Imagem, no editor de textos do fórum.
  17. Williams Duarte

    Caixa de dialogo que aparece quando marca uma palavra

    tooltips
  18. Williams Duarte

    Nao consigo mostrar resultado do formulario.

    Use a função isset $opt1 = isset($_POST["perg1"]) ? $_POST["perg1"] : "";
  19. Williams Duarte

    criar array com itens adicionais de cada ITEM

    Você tem que adicionar um novo indice a cada entrada de itens, depois no indice de itens, os de igredientes. Fiz uma lógica rápida, usando Session e ArrayPush Note que: add_itens(Array de Produdos, Indice do Produto); add_extra( Indice do Produto, Adicionais e Id); <?php $produto = [ 'Copo 300ml', 'Copo 500ml', 'Copo 700ml', ]; $fruta = [ ['Morango', '1.00'], ['Banana', '1.00'], ['Uva', '1.00'], ]; $complementos = [ ['Ninho', '1.00'], ['Coco Ralado', '1.00'], ['Castanha', '1.00'], ]; $cobertura = [ ['Chocolate', '1.00'], ['Leite condensado', '1.00'], ['Morango', '1.00'], ]; $adicionais = [ ['Nutella', '1.00'], ['Bis', '1.00'], ['KitKat', '1.00'], ]; $_SESSION = []; function add_itens($produto, $item) { array_push($_SESSION, ['item' => $produto[$item]]); } function add_extra($produto, $item) { array_push($_SESSION[$produto], ['ingredientes' => $item]); } add_itens($produto, 1); add_extra(0, $fruta[2]); add_extra(0, $cobertura[1]); add_itens($produto, 2); add_extra(1, $fruta[1]); add_extra(1, $adicionais[1]); print_r($_SESSION); Saida Array ( [0] => Array ( [item] => Copo 500ml [0] => Array ( [ingredientes] => Array ( [0] => Uva [1] => 1.00 ) ) [1] => Array ( [ingredientes] => Array ( [0] => Leite condensado [1] => 1.00 ) ) ) [1] => Array ( [item] => Copo 700ml [0] => Array ( [ingredientes] => Array ( [0] => Banana [1] => 1.00 ) ) [1] => Array ( [ingredientes] => Array ( [0] => Bis [1] => 1.00 ) ) ) ) Bom trabalho!
  20. Williams Duarte

    Problema com projeto PHP

    Sem ver o código fica dicil, o erro mostra que é de required.
  21. Williams Duarte

    Relacionamentos Laravel

    Veja o que retorna: use App\Arquiteto; $arquiteto = Arquiteto::with('clientes')->first(); dd($arquiteto->clientes);
  22. Williams Duarte

    Problema com projeto PHP

    Envia como Post e não Get E posta o código de que recebe o Formulario.php Outro coisa, crie um arquivo qualquer.php e coloque dentro o seguinte, em seguida execute pelo browser. <?php // Mostra todas as informações, usa o padrão INFO_ALL phpinfo(); // Mostra apenas informações dos módulos. // phpinfo(8) mostra um resultado identico. phpinfo(INFO_MODULES); ?> Se estiver tudo okay com php, o problema é seu codigo.
  23. Williams Duarte

    Relacionamentos Laravel

    Por convenção, o Laravel espera que suas tabelas sejam todas em inglês, para que reconheça os parametros automaticamente. Mas se está em portugues, tem que passar manualmente. $this->hasMany('App\Cliente', 'foreign_key', 'other_key'); Como ficaria seu código public function clientes() { return $this->hasMany(Cliente::class, 'arquiteto_id', 'id'); }
  24. Williams Duarte

    Criando uma seleção no banco de dados quando produto estiver vencendo

    Frequentemente deixo algumas Schedules rodando! docker run -d image_name '*/30 * * * * ___cmdstring___' Se é uma recorrencia mensal, que vence daqui 7 dias, jogo em uma fila e disparo a cobrança. Um dia antes do vencimento, vejo quem ainda no pagou e disparo um outro aviso. 3 dias depois outro, nao pagou, dispara um aviso de bloqueio após alguns dias , isto você controla em flags no DB Se a recorrencia é trimestral, semestral ou anual, não faz diferença na consulta, o importante é declarar no select, qual é o intervalo. SELECT DATE_ADD( CURDATE(), INTERVAL 7 days ); SELECT DATE_ADD( CURDATE(), INTERVAL 1 days ); E fazer o filtro. Obs, você tem que ter outros Jobs analisando cadastro etc, para nao ter erro nas cobranças, mas tudo depende das regras de negocios.
×

Informação importante

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