Ir para conteúdo
Fórum Script Brasil

Frank K Hosaka

Membros
  • Total de itens

    1.623
  • Registro em

  • Última visita

Tudo que Frank K Hosaka postou

  1. Eu tenho uma tabela de produtos, onde existe um produto que é vinculado a outro. Por exemplo, tenho um produto chamado balas com 50 peças a R$ 5,00, logo o produto bala 1 peça sai por R$ 0,10. Eu usei o campo código do fornecedor para identificar um produto vinculado. No caso da bala, o código do fornecedor ficou assim {"codigo_base":1002,"conversao":50}, ou seja, o custo de uma bala é calculado pelos parâmetros gravados no json. A rotina é bem demorada, pois o PHP tem que olhar cada produto, se encontrar um json no código do fornecedor, ele vai ter que recalcular se houver divergência. O problema é que eu tenho que executar a mesma rotina mais uma vez, porque na primeira passagem ele vai acertar as divergências encontradas, e na segunda passagem ele vai confirmar que não existe nenhuma discrepância entre o produto vinculado e o principal. No meu caso, a rotina deveria ser executado apenas uma vez. Não há necessidade de executar a mesma rotina pela segunda vez. Como esse é processo demorado, chego a gastar até 2 minutos, eu só faço isso quando entra produto no estoque. No seu caso, aconselho a fazer o mesmo. Ao invés de pedir para o PHP fazer auditoria em milhares de registros do banco de dados a cada dois minutos, o melhor é executar só quando for necessário. Você vai ver que vai sobrar bastante tempo, que pode ser melhor utilizado, compartilhando as fofocas da semana no Facebook.
  2. Eu gostei do Bard. Eu estou estudando welcome.blade.php, onde encontrei essa função: app()->getLocale() O Bard me explicou que The app()->getLocale() method in Laravel returns the current locale of the application. The locale is used to determine which language and cultural settings should be used for the application. The default locale is set in the config/app.php file. Eu fui ver config > app.php e encontrei isso <?php use Illuminate\Support\Facades\Facade; return ['locale' => 'en']; Eu fiquei impressionado. Como é que eu vou simular um negócio desses no PHP? O Bard disse The Laravel class Facade is located in the Illuminate\Support\Facades namespace. You can find the source code for this class in the Laravel Framework repository on GitHub. E assim consegui chegar em framework/src/Illuminate/Support/Facades/Facade.php at 10.x · laravel/framework · GitHub Conclui que o Laravel não é apenas um projeto de 9.000 arquivos que você cria com o composer create-project laravel/laravel projeto, o projeto é apenas uma conexão com o GitHub. Apesar do Bard estar em fase experimental no Google, ele é bom demais. Em apenas duas consultas, ele mostrou que eu não aprendi nada de Laravel nesses dois últimos anos!
  3. Eu criei um novo projeto chamado breeze e coloquei debaixo da pasta wamp64/www/ Tentei executar pelo navegador assim: "localhost/breeze", mas ao invés da página de boas vindas, o navegador devolveu a estrutura dos arquivos. Peguei o arquivo index.php da pasta public, e coloquei no diretório raíz do breeze. Agora eu posso executar o laravel sem a ajuda do "php artisan serve".
  4. Até agora, eu não tive nenhum problema, depois de atualizar o PHP para 8.2.0, a não ser na hora de executar o Laravel no computador local. Recebi uma estranha mensagem, o de que o Carbon::setLastErros( ) encontrou coisa que ele não esperava. No Google, achei a solução nesse tópico: php - Laravel Carbon\Carbon::setLastErrors() - Stack Overflow, resumindo basta executar o comando composer update.
  5. <?php $mysqli=new mysqli("localhost","root","","laravel"); $query=$mysqli->query("select * from tbdiario order by docto desc"); $dataDoUltimoDocto=$query->fetch_assoc()['dia']; $dataDoPenultimoDocto=$query->fetch_assoc()['dia']; var_dump($dataDoPenultimoDocto);
  6. Muita coisa que eu consegui na base da tentativa e erro foi com a ajuda do w3schools.com, mas hoje eu selecionei a guia HTML, e lá havia um pequeno tutorial, bem básico mesmo. Um pouco mais para baixo já havia um exercício para resolver, ele pedia para você abrir uma notificação dentro de um <p>paragráfo</p>. Eu dei uma espiada na resposta, e a resposta é essa <p title="isso é uma notificação">paragráfo</p>. Mais adiante ele pede para fazer o HTML mostrar o seu texto do jeito que você escreve, tipo "o meu nome é .... Frank", isso é coisa que eu nunca consegui, mas espionado a resposta a solução é <pre> escreva do seu jeito</pre>. Ou seja, em menos de dez minutos, o w3schools.com viu que eu não sei nada de HTML e assim ele me convidou a fazer um curso. Tudo o que eu preciso fazer é abrir uma conta e começar o curso. O primeiro módulo tem 88 exercícios, eu já fiz 18. Eu gostei. Como eu não sei nada de HTML, eu sempre espiono a resposta. Mas ele só deixa passar para o exercício seguinte se eu conseguir lembrar o que eu vi na hora de espionar. É um curso engenhoso. O único problema é que o professor só fala inglês.
  7. O Marcelo_2 tem razão, o seu código está correto. O problema está no arquivo conexao.php ou no MySQL. Para testar o seu código, eu simplifiquei assim: <?php $conexao=new PDO("mysql:dbname=laravel;host=localhost","root",""); $email= "frank2hosaka@gmail.com"; $consulta= $conexao->prepare("select * from Usuario where Email= :EmailDigitado"); $consulta->bindParam(':EmailDigitado',$email); $consulta->execute(); if ($consulta->rowCount()>0){echo "Já possui cadastro";} else { $str_salvar=$conexao->prepare("insert into Usuario (Email) values (:Email)"); $str_salvar->bindParam(':Email', $email); if ($str_salvar->execute()){echo " Cadastrado salvo ";} else {echo "Houve erros";} }
  8. Eu não sei o que é um sku. Assim, inventei um assim: Produto.xml <?xml version="1.0" encoding="UTF-8"?> <skus> <sku1>01-001</sku1> <sku1b>01-001+BR</sku1b> <sku1a>01-001AG</sku1a> <sku2>01-002</sku2> <sku2b>01-002+BR</sku2b> <sku2a>01-002AG</sku2a> </skus> Para listar todos os sku no PHP, usei esse código: <?php $xml=simplexml_load_file('Produto.xml'); foreach($xml as $x){echo $x."<br>";} E o resultado foi esse: 01-001 01-001+BR 01-001AG 01-002 01-002+BR 01-002AG É exatamente o que você não queria. Para ajudar melhor você, eu preciso de um arquivo xml que trabalha com o sku.
  9. A linha 141 é esta instrução: $this->db->sql_freeresult($result); Eu acredito que sql_freeresult é um método definido dentro da classe phpbb\bb\driver\driver_interface, que não está definido dentro da classe listener, mas fora dela. Pela mensagem que você recebeu, a variável $result não contém nada do que ele esperava. Logo, o problema está na linha 139: $result = $this->db->sql_query($sql); A definição do $sql está na linha anterior. Não dá para testar diretamente no MySQL pois os nomes das tabelas estão mascarados em VARIÁVEIS DEFINIDAS PELO USUÁRIO (NOTIFICATIONS_TABLE E NOTIFICATION_TYPES_TABLE), mas você pode criar um arquivo de teste e obter o conteúdo dessas variáveis assim: teste.php <?php namespace sitesplat\badge\event; use sitesplat\badge\conditions\manager; use phpbb\controller\helper; use phpbb\template\template; use phpbb\db\driver\driver_interface; use phpbb\config\config; use phpbb\user; use phpbb\path_helper; use Symfony\Component\EventDispatcher\EventSubscriberInterface; echo "NOTIFICATIONS_TABLE ".NOTIFICATIONS_TABLE."<br>"; echo "NOTIFICATION_TYPES_TABLE".NOTIFICATION_TYPES_TABLE."<br>"; O problema é que tem mais duas tabelas nessa consulta que vem através da variável $badge_types_table, $badge_events_table, $badge_badges_table; ou seja, o problema não está exatamente na definição da classe listener, mas na definição de outras classes que não aparecem nessa listagem. Não dá para consertar um carro só olhando o farol.
  10. Hoje eu tive a coragem de atualizar o PHP para o 8.2.0 e o problema não é a versão, e sim a gramática; ao invés de $post, o correto é $_POST['post_category'], esse é um dos poucos comandos que o PHP não permite usar em minúscula e também obriga a usar o sublinhado como no $_GET, $_SESSION, para citar os que eu consigo lembrar no momento.
  11. Hoje decidi atualizar o WampServe. Desinstalei o servidor no Windows, pois eu tenho o backup de tudo. A nova instalação não deu nenhum problema. Tive que criar o meu banco de dados 'diario' e pedir para ele importar os dados do arquivo .sql Mas na hora de executar o VS Code, eu não conseguia mais executar o PHP. Eu vi um tutorial de como configurar as variáveis de ambiente do Windows. Lá são dois painés, em ambos você tem que informar em que pasta está o PHP, na variável path. Consegui executar o comando php artisan para colocar o laravel no ar, ou simplesmente localhost no navegador para ver o PHP. O problema é a mensagem do VS Code, ele reclamou que unable-to-load-schema-from-vscode-cannot-open. Encontrei um tutorial, e eu não vi como executar o tutorial. Por intuição, eu fui nas configuraçoes do VS Code, procurei schema, e ele mostrou 2 extensões. Desativei a opção JSON > Schema Download: Enable. A mensagem de erro desapareceu. Mas fiquei com um baita peso na consciência, e eu ativei a opção. Mas dessa vez, o VS Code não reclamou de coisa alguma. Mas eu vi que ele mudou o settings.json: { "files.autoSave": "afterDelay", "intelephense.diagnostics.typeErrors": false, "intelephense.diagnostics.undefinedTypes": false, "window.zoomLevel": 1, "workbench.startupEditor": "none", "git.ignoreMissingGitWarning": true, "workbench.editor.untitled.hint": "hidden", "css.lint.unknownAtRules": "ignore", "css.lint.unknownProperties": "ignore", "php.validate.executablePath": "C:/wamp64/bin/php/php8.2.0/php.exe", "json.schemas": [ ] }
  12. Eu também percebi que o Biehl teima em alterar a gramática do PHP, é difícil saber o que ele pretende fazer. Eu parto do princípio que ele não tem a menor ideia do que fazer, assim qualquer resposta que eu apresentar vai deixa-lo desgostoso. Mas para mim, sobra muita alegria, consegui montar um código que funciona! Bom dia.
  13. Nesse caso, usaria Fonte da Página de Exibição do Navegador, copiaria todo o código no editor de texto (melhor VS Code), e pegaria as informações mais relevantes, tudo na unha, assim: <h3>Desembargador Tadaaqui Hirose</h3> <h3>Promotora Marília Quites</h3> <h3>Luciana Bazanella</h3> </div> <div class="span3" data-aos="zoom-in"> <div class="bdayImage" style="background-image:url(https://intranet.pampa.com.br/aniversariantes/img/20180614105403.jpg)"></div> <h3>Promotor Anizio Pires Gavião Filho</h3> </div> <div class="span3" data-aos="zoom-in"> <div class="bdayImage" style="background-image:url(https://intranet.pampa.com.br/aniversariantes/img/20180614145446.jpg)"></div> <h3>João Patricio Hermann</h3> </div> <div class="span3" data-aos="zoom-in"> <div class="bdayImage" style="background-image:url(https://intranet.pampa.com.br/aniversariantes/img/20170608153058.jpg)"></div> <h3>Vilce Peluffo</h3>
  14. Eu também tenho um portal no Hostinger.com.br. Para acessar o meu banco de dados, uso o seguinte código PHP: <?php $mysqli=new mysqli("localhost","root","","laravel"); Para acessar o banco de dados do Bradesco, eles não permitem usar o PHP, o JS, o HTML. Eles têm aplicativos próprios. Ou seja, cada banco de dados tem um tipo de protocolo de segurança. No caso do PHP, JS, HTML, você pode acessar o banco de dados que você criou. Espionar o banco de dados de terceiros é difícil e já entra em confronto com o item X do Artigo 5o. da Constituição Federal, onde são invioláveis a intimidade, a vida privada, a honra e a imagem das pessoas, assegurado o direito a indenização pelo dano material ou moral decorrente de sua violação.
  15. Eu também tenho muita dificuldade para mexer com o PDO, eu prefiro usar o mysqli. Mas consultando aqui e ali, eu montei o seguinte código (ao invés de trabalhar com duas classes, eu só trabalhei com um, e defini a tabela teste assim CREATE TABLE `teste` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `nome` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `sexo` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `cidade` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci Como o id é auto incrementado, ele não aparece na hora de incluir um novo cadastro: <?php class Cadastro { private $db; public function __construct() { try{$this->db=new PDO ("mysql:host=localhost;dbname=laravel;","root","");} catch (PDOException $erro){ echo "Não Foi possivel conectar ao Banco: ".$erro->getMessage();} } public function cadastrar($nome,$sexo,$cidade){ $stmt=$this->db->prepare("insert into teste (nome,sexo,cidade) values (:nome,:sexo,:cidade)"); $stmt->bindParam(":nome",$nome); $stmt->bindParam(":sexo",$sexo); $stmt->bindParam(":cidade",$cidade); $stmt->execute();} } $teste=new Cadastro; $teste->cadastrar("Frank","Masculino","Diadema");
  16. Essa é uma pergunta que o Biehl repetiu mais de uma vez no fórum iMasters, e eu encontrei uma estranha resposta: index.php <?php $mysqli=new mysqli("localhost","root","","laravel"); $query=$mysqli->query("truncate tab_aprendiz"); $query=$mysqli->query("insert into tab_aprendiz (codigo) values (965),('kzf'),(483),('tkx'),('156')"); $sql = $mysqli->query("select * from tab_aprendiz where codigo"); while ($linha = mysqli_fetch_assoc($sql)) {echo $linha['codigo']."<br>";} echo "<input type=submit value=limparTela onclick=location.replace('index.php')>"; Esse é um clássico erro de digitação, mas não sei explicar porque ele funciona. Ele só exibe os dados numéricos. Mas se um dos dados não totalmente numéricos tiver um número na primeira posição, ai ele vai aparecer na lista. Nesse caso, o código acima não funciona. E o novo código terá que ser assim: <?php $mysqli=new mysqli("localhost","root","","laravel"); $query=$mysqli->query("truncate tab_aprendiz"); $query=$mysqli->query("insert into tab_aprendiz (codigo) values (965),('33f'),(483),('tkx'),('156')"); $sql = $mysqli->query("select * from tab_aprendiz where codigo REGEXP '^[0-9]+$' "); while ($linha = mysqli_fetch_assoc($sql)) {echo $linha['codigo']."<br>";} echo "<input type=submit value=limparTela onclick=location.replace('index.php')>";
  17. Ontem, dois rapazes da polícia militar me orientaram a ir na polícia civil para apresentar a minha suspeita do site https://www.consultapelaplaca.com.br. Mas eu não tenho a menor ideia de como falar com o delegado. A primeira coisa que ele vai perguntar quem é a vítima, e isso não sei responder. Para eu saber sobre débito de veículos, você precisa do RENAVAM e da placa para consultar pelo portal Consulta de débitos do veículo (fazenda.sp.gov.br), mas não é possível ver o nome, CPF do proprietário e o endereço dele. Eu entrei com a placa EUK2i93 e o portal da consulta pela placa e ele me passou várias informações, afirmando que o Corsa pertence a Fabiana Paula da Silva Veira, mas o relatório informa que não tem o CPF disponível. Eu achei isso muito fácil, nada na internet é tão fácil assim. Então, eu peguei a placa do carro do meu irmão, e o portal disse que eu tenho que pagar R$ 35,90. Isso me fez desconfiar que o portal da consulta pela placa tem dois banco de dados, um para qualquer um ver sem pagar nada e o outro que é federal. Ou seja, a informação é bem suspeita. Na hora de fazer o pix, o intermediário me passou o CPF 055.849.991-05, e o banco informou que o CPF pertence a Arthur Santana de Sousa. O intermediário explicou que a Fabiana está interessada em comprar um terreno lá em Recife. O final dessa história é só de lágrimas, boletim de ocorrência e pedindo para o banco contestar o pix. Eu não sei como falar com o delegado. Acredito que ele vai dizer que não é crime nenhum o portal consulta pela placa informar de quem é o carro, mesmo que a informação seja falsa. Crime é quem acredita na internet. -------------------------------- Chat do Bing, 06/07/2023: Olá, este é o Bing. Pelo que eu pesquisei, não é possível obter o nome do proprietário de um veículo só pela placa, por questões de segurança e privacidade12. Você pode obter informações sobre o veículo, como restrições, multas e histórico, mas os dados pessoais do dono são preservados. Para isso, você pode consultar o site do DETRAN do seu estado ou usar algum serviço especializado, mas pode haver custos envolvidos34. Espero ter ajudado.
  18. Eu pensei que era coisa do JQuery, não sabia que era nativo do JavaScript. Mas como nunca funcionou comigo, usei o modelo clássico da concatenação +. Esse detalhe das aspas inclinadas, isso eu não sabia mesmo.
  19. Achei estranho o VS Code reclamar que a função view ou redirect não está definido dentro de um código que usa a gramática do Laravel. No Google, achei uma solução que funciona. É demorado, mas funciona: ctrl + ship + p -> Index Workspace
  20. No PHP, você pode colocar uma $variavel dentro de um string, desde que você use aspas duplas assim: <?php $nome="Frank"; echo "meu nome é $nome"; O JavaScript também consegue usar o mesmo recurso, desde que você use aspas inclinadas assim: <script> nome=window.prompt('qual é o seu nome?') document.write(`Olá, ${nome}, seu nome tem ${nome.length} letras.`) </script> Listagem final: <script> nome=window.prompt('qual é o seu nome?') document.write(`Olá, ${ nome }, seu nome tem ${nome.length} letras.`) </script>
  21. <script> function alterar(){teste.value=teste.value.replace(',','.')} </script> <form onsubmit=alterar()> <input id=teste name=teste value=0,97> <input type=submit> </form> <?php if(isset($_GET['teste'])){echo "<br> Valor=".$_GET['teste'];}
  22. O kokoshneta do Laracasts passou um algorítimo em PHP em que ele cria um vetor, fazendo 150 palpites aleatórios, cada palpite varia de um 1 até 60, e mostra quais foram os palpites mais repetidos, e tudo isso em apenas 3 linhas! <?php for ($i = 0, $palpites = []; $i < 150; $i++) @$palpites[mt_rand(1, 60)]++; arsort($palpites); var_dump($palpites);
  23. Eu sempre esqueço de usar o comando use App/Model/Tabela; e o Laravel reclama que a tabela que uso na classe do Controller não está definida. O comando with é usado para chamar um relacionamento. Esse é modelo de Model com relacionamento: <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Carbon\Carbon; class tbpedido extends Model { use HasFactory; public $timestamps=false; protected $table="tbpedido"; protected $fillable=['ped','dia','vendido']; function details(){return $this->hasMany(tbpedido::class,'vendido','vendido');} function pessoas(){return $this->hasMany(tbpessoa::class,'codp','codp');} } Com esse Model, eu posso usar a tabela tbpedido, assim no Controller: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\tbpedido; use App\Models\tbsupervariavel; use Auth; class HistPedController extends Controller { Public Function historico (Request $request){ if($request->input("ped")){ $ped=$request->input("ped"); tbsupervariavel::where('codsuper',Auth::id())->update(['ped'=>$ped]); return redirect('orcamento');} } Ou seja, o with é usado junto com uma tabela e não no comando do view. A pergunta é: de onde você tirou esses códigos?
  24. Faz três anos que eu criei um vetor com 150 números, cada um estava no intervalo de 1 até 60. Para saber a frequência de cada número basta usar a função array_count_values($vetor). Para colocar a frequencia em ordem decrescente que é o problema, a função é rsort($vetorcontado). O problema é que a função coloca a frequencia em ordem decrescente, mas não mostra mais qual o número correspondente à frequencia. Finalmente, achei a solução: <?php $palpites=[]; for($controle=0;$controle<150;$controle++){ $palpites[]=mt_rand(1,60);} $contagem=array_count_values($palpites); rsort($contagem); foreach($contagem as $key => $value){ echo $palpites[$key]."=>".$value."<br>";}
  25. Encontrei essa dica para desbloquear o código JavaScript: jquery - Why does my JavaScript code receive a "No 'Access-Control-Allow-Origin' header is present on the requested resource" error, while Postman does not? - Stack Overflow Ele pede para mexer no arquivo node-red/settings.js - isso é coisa que tenho pavor de mexer. A minha sugestão é trabalhar com o PHP (atenção só pode ter uma página aberta para consultar a Receita Federal): <?php $cadastro=file_get_contents("https://www.receitaws.com.br/v1/cnpj/64725872000108"); $jcad=json_decode($cadastro); echo $jcad->nome."<br>"; echo $jcad->cep;
×
×
  • Criar Novo...