Ir para conteúdo
Fórum Script Brasil

Frank K Hosaka

Membros
  • Total de itens

    1.582
  • Registro em

  • Última visita

Tudo que Frank K Hosaka postou

  1. Apesar de eu conseguir ver a página do welcome.blade.php na tela do navegador, o Visual Studio Code mostra na tela de apuração a mensagem Class "Illuminate\Support\Facades\Route" not found. Pesquisei no Google como verificar onde errei, mas não achei a solução. Tudo indica que o melhor é fazer vista grossa para a mensagem. Por enquanto, o melhor dessa experiência é que eu conheci o Visual Studio Code da Microsoft, ele é bem melhor que o Notepad++, principalmente depois de instalar o plugin do depurador do PHP. Eu não preciso mais usar o navegador para encontrar os erros no código, o Visual Stuio Code já faz isso no momento em que você salva o arquivo. Outra coisa bacana que eu vi é que dá para abrir o navegador a partir do Visual Studio, eu ainda não descobri como, os tutoriais são rápidos demais, mas é com eles que vou estudando o Lavarel.
  2. Frank K Hosaka

    somatório

    Para você somar dois <input> é mais produtivo usar o JavaScript ao invés do PHP, pois o PHP não é capaz de enxergar o valor dos elementos. Mas se você está cansado do Facebook e não tem mais o que fazer, o PHP é um bom passatempo. A pergunta agora é: como passar o valor de dois <input> para o PHP. Até onde eu sei, o único método é usando a força do <form> assim: <form method=post> a:<input name=a><br> b:<input name=b><br> <input type=submit> </form> <?php if(isset($_POST['a'])){ $a=$_POST['a']; $b=$_POST['b']; echo "a soma deu ".$a+$b;} Esse é um péssimo exemplo de como somar dois valores pelo PHP. O usuário pode escrever 1,1 e 2,2 nos <inputs>, e o PHP vai retornar a mensagem non-numeric value encontered. Você vai ter o trabalho de explicar ao usuário que o PHP não suporta a anotação brasileira de usar a vírgula como separador decimal. O usuário pode escrever esposa e cunhado nos <inputs>, e o PHP vai retornar a mensagem Unsupported operand Types. Você vai ter o trabalho de explicar ao usuário que o PHP não é capaz de somar dois literais. O usuário também pode escrever 1 e 1 nos <input> e o PHP vai retornar "a soma deu 2", mas as caixas do input estarão vazios e o usuário vai perguntar o que aconteceu com as parcelas, por que eles não aparecem mais nas caixas do <input>. Enfim, o melhor é se conformar com o Facebook, e esquecer o PHP e o usuário.
  3. O PHP não foi feito para segurar a barra de menu enquanto você desce a tela. Quem faz esse serviço é a turma do CSS. O PHP trabalha nos bastidores para fornecer informações e não lá na frente para melhorar o visual.
  4. Eu não sou especialista em classes no PHP, mas acho estranho ter um $_REQUEST['url'] dentro de uma classe. Geralmente tem um um <form> que faz a solicitação pelo método POST ou GET e a solicitação é recebida por $_POST ou $_GET, já o $_REQUEST pega a solicitação, não importa quem mandou. Fiz uma adaptação do seu código assim: <?php session_start(); header('Content-Type: application/json; charset=utf-8'); //require_once 'Busca.php'; class Rest { public static function open($requisicao) { $url = explode('/', $_REQUEST['url']);}} $Rest=new Rest; $teste=$Rest->open("www.uol.com.br"); E a mensagem que recebi foi essa: Warning: Undefined array key "url" in C:\wamp64\www\astudy\astudy2.php on line 10 Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in C:\wamp64\www\astudy\astudy2.php on line 10 isso é bem diferente da mensagem que você recebeu. Ou seja, preciso do <form> que fez a solicitação bem como de todo o código que define a classe Rest. Grande parte da programação tem problema, mas ele não está exatamente na linha onde o PHP reclama, mas muito antes. Aqui fiz um teste só baseado na linha onde está o suposto problema: <?php if(isset($_REQUEST['url'])){ $url = explode('/', $_REQUEST['url']); var_dump($url);} ?> <form method=post> <input type=submit name=url value="https://forum.scriptbrasil.com.br/topic/213794-php-api-rest-php-no-azure/"> </form> e, nesse caso, não há nenhuma mensagem de erro, ele retorna isso: C:\wamp64\www\astudy\astudy2.php:4: array (size=6) 0 => string 'https:' (length=6) 1 => string '' (length=0) 2 => string 'forum.scriptbrasil.com.br' (length=25) 3 => string 'topic' (length=5) 4 => string '213794-php-api-rest-php-no-azure' (length=32) 5 => string '' (length=0)
  5. Não testei, mas acho que a solução está aqui: Conexão do MS Access e PHP - Stack Overflow em Português
  6. Com a ajuda do YouTube LARAVEL BÁSICO PARA INICIANTES - PARTE 1 de 3 - YouTube consegui abrir a pasta Usuários>frank>example-app com o Visual Studio Code, e de lá contemplar o código web.app routes>web.app ----------------------------------------------- <?php use Illuminate\Support\Facades\Route Route::get('/', function () { return view('welcome'); }); Também aprendi que não preciso do Ubuntu para ativar o servidor do Laravel, dá para fazer pelo prompt do Windows: C:\Users\frank\example-app>php artisan serv Seguindo o tutorial do YouTube, alterei return view('welcome') para return '<h1>olá mundo!</h1>, fui no navegador e digitei localhost:8000 e eu vi novamente a tela de boas vindas do Laravel. Eu esqueci de salvar o arquivo.
  7. Frank K Hosaka

    Id do Array

    $cadatroUsuarioEmpresa['user_id'] = $inputDadosCadastro['user_id']; Pelo código que você passou, não dá para dizer se a variável $inputDadosCadastro['user_id'] contém o valor que você afirma que foi gerado. Eu precisaria de mais informações para depurar todo o programa, para saber se a variável tem a informação que você precisa. Por outro lado, achei interessante essa parte do código: $cadatroUsuario = array(); $cadatroUsuario['user_email'] = $inputDadosCadastro['user_email']; $cadatroUsuario['user_password'] = md5($inputDadosCadastro['user_password']); $cadatroUsuario['user_level'] = 3; $cadatroUsuario['user_registration'] = date('Y-m-d H:i:s'); $addbanco->ExeCreate("ws_users", $cadatroUsuario); Para mim, você está tentando incluir um array na tabela ws_users, mas não dá para afirmar nada sem ver a classe que está vinculado à variável $addbanco. Eu simulei um teste aqui e consegui isso: <?php $mysqli= new mysqli("localhost","root","","astudy"); $cadastroUsuario = array(); $cadastroUsuario['email'] = 'rogerio@gmail.com'; $cadastroUsuario['nome']='Rogerio Ceni'; $jcadastro=json_encode($cadastroUsuario); $query=$mysqli->query("insert into tbusuario (jcadastro) values ('$jcadastro')"); Ou seja, o PHP e o MySQL não permitem que eu salve um array num campo da tabela, a menos que o array seja convertido num json e o campo da tabela também seja um json.
  8. Eu ainda não sei o que é o Laravel, mas ele é bastante comentado no forum do PHP. Para eu não ficar de fora, tentei instalar no meu PC. Encontrei vários tutoriais no Google, e como sempre o que o Google mostra não é nada do que eu vejo na minha tela. Eu tive que ver o YouTube, e ele disse que o Laravel está instalado quando você digita "localhost:8000" no navegador e vê o logotipo do Laravel. Não era o meu caso. Certamente, eu fiz muita besteira no meio do caminho. Eu vi um tutorial para usar o Ubuntu com o comando sudo php artisan serve e a mensagem que eu recebi é de que o composer estava usando a versão antiga do PHP, quando deveria usar a mais nova. O meu sistema é o Windows, mas no meio da confusão eu consegui instalar o Ubuntu dentro do Windows. Procurei outro tutorial para consertar o erro, encontrei um interessante para alterar a varável do ambiente do Windows. Não deu certo, mesmo reiniciando quinhentas vezes. Apelei para o Google, e encontrei um tutorial muito bacana. Já que não dá para resolver pelo Windows, o negócio é apelar para o Ubuntu. Nesse tutorial, o rapaz ensina a instalar o PHP dentro do Ubuntu: Ways to install Laravel 8.0 on Windows 11 | by Jayden Chua | CodeX | Medium - muita coisa eu já havia feito, só priorizei os comandos que instalam o PHP no Ubuntu. Consegui até alterar a versão a ser usada no Ubuntu. E assim tentei de novo: sudo php artisan serve, e como sempre apareceu outra mensagem, dessa vez assim PHP Fatal error: Uncaught Error: Class 'DOMDocument' not found. Outra vez pedi ajuda para o Google, e ele me deu esse endereço: Class 'DOMDocument' not found | PHP Composer: Dependências, Autoload e Publicação | Solucionado (alura.com.br) Finalmente, o php artisan disse que o servidor estava ativo na porta 8000. Traduzindo em português, isso significa que eu preciso deixar a janela do Ubuntu aberta. Enfim, eu não sei para que serve o Laravel, mas pelo menos eu sei o quanto as pessoas apanharam para instalar no PC. Mas estou contente em rever o Ubuntu, eu usei uma vez em 1993, e acabei perdendo o meu PC, e assim nunca mais eu queria saber de Linux. Eu acho que fiz muita besteira, acho que o Ubuntu não é necessário para usar o Laravel no Windows, mas foi com o Ubuntu que consegui botar o logotipo da Laravel na tela do navegador. Eu ainda não usei, pois eu morro de medo de ver novas mensagens de erro.
  9. Eu também tive esse problema. Eu brinquei com o header("HTTP/1.1 301 Moved Permanently"); e fiquei cinco anos sem poder usar o WampServer, o MySQL, o PHP, o Facebook, o Windows e até o celular. Foi uma época triste, e ninguém sabe como resolver esse problema. Eu tentei de tudo, fui procurar o tal do .htacess do Apache e não achei. Quando o assunto é servidor, quase tudo é voltado para o Linux e nada para o Windows, que é o meu caso. Pensei em até pular da ponte. Mas eu fiz a minha última tentativa desesperada. Pedi para o Microsoft Edge limpar todo o histórico, todos os cokies, tudo o que havia ajuntado nos últimos trinta anos. E deu certo. Consegui acessar o localhost, graças a Deus. O chato é que eu não lembrava mais da senha para acessar o fórum Script Brasil.
  10. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exemplo de inventário com MySQL, PHP, HTML e Bootstrap 5.2</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> <style> .direita{text-align:right} .tela{width:500px} </style> <?php function dec($num) {if (empty($num)) {$fmt="";} else {$fmt = number_format($num,2,',','.'); return $fmt;}} $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from vw_inventario limit 10"); $linha=$query->fetch_all(MYSQLI_ASSOC); print "<div class=tela><table class='table table-sm table-striped'><th>Produto<th>Preço<th>Quantidade<th>Un<th>Estoque"; foreach ($linha as $listar) { $nomeProd = $listar['prod']; $p_venda = dec($listar['custo']*1.3); $quantidade = dec($listar['qtd']); $un=$listar['un']; $subtotal = dec($listar['custo']*1.3*$listar['qtd']); print "<tr><td nowrap>$nomeProd<td class=direita>$p_venda<td class=direita>$quantidade<td>$un<td class=direita>$subtotal";} print "</table></div>";
  11. Frank K Hosaka

    Dúvida no Código

    <?php $array=array( array( "registro" => 5, "data" => "14/10/2020", "horario" => "12:13 - 13:13 - 18:13 - 8:13", "ponto" => array ( "nome" => "ANDERSON LUIZ", "diasTrabalho" => "SEG-SEX", "horarioTrabalho" => "10 AS 18H" )), array ( "registro" => 4, "data" => "13/10/2020", "horario" => "15:29 - 16:11", "ponto" => array ( "registro" => 4, "nome" => "CAIO SANTOS", "diasTrabalho" => "SEG A SEX", "horarioTrabalho" => "9 AS 15H" )), array ( "registro" => 4, "data" => "14/10/2020", "horario" => "20:15", "ponto" => array ( "registro" => 4, "nome" => "CAIO SANTOS", "diasTrabalho" => "SEG A SEX", "horarioTrabalho" => "9 AS 15H")), array ( "registro" => 1, "data" => "13/10/2020", "horario" => "12:43 - 14:55", "ponto" => array ( "registro" => 1, "nome" => "DANIEL SANTOS", "diasTrabalho" => "SEG A SEX", "horarioTrabalho" => "9 AS 13H" ))); // ordenar o array asort($array); // listar horário de entrada por colaborador foreach($array as $key) { $registro=$key['registro']; $nome=$key['ponto']['nome']; $data=$key['data']; $horario=$key['horario']; if(empty($controle)){ $controle=$nome; echo "Registro $registro $nome <br> &nbsp &nbsp $data:$horario <br>"; goto prossegue;} if($controle==$nome){ echo "<br> &nbsp &nbsp $data:$horario<br>";} else {$controle=$nome; echo "Registro $registro $nome <br> &nbsp &nbsp $data:$horario";} prossegue: } Resultado: Registro 1 DANIEL SANTOS 13/10/2020:12:43 - 14:55 Registro 4 CAIO SANTOS 13/10/2020:15:29 - 16:11 14/10/2020:20:15 Registro 5 ANDERSON LUIZ 14/10/2020:12:13 - 13:13 - 18:13 - 8:13
  12. Eu não consegui arranjar uma solução para o registro contábil do cartão de crédito. O regime de competência permite que eu faça o lançamento, desde que eu tenha um documento, do tipo email do Uber. O Uber diz que vai cobrar R$ 15,00 por uma viagem do Jabaquara para Diadema. O lançamento ficaria assim: 1/9/22 D Transporte C Contas a Pagar, R$ 15,00, Visa Uber Jabaquara Olhando o balancete de 09/2022, tenho algo do tipo Contas a Pagar R$ 30,00 - como é que vou saber quanto do cartão de crédito tem nessa conta? Eu ainda não tenho a menor idéia, mas eu fiz a seguinte gambiarra, dessa vez, usando o regime de caixa: 10/10/22 C Contas a Pagar, R$ 15,00, Visa 09-22 10/10/22 D Transporte, R$ 15,00, Visa 01-09 Uber É óbvio que esse valor não vai aparecer no balancete de 09/2022, mas ele já está disponível no balancete de 10/2022. Ou seja, ao invés de usar a Contabilidade como uma maquina do tempo para olhar o passado, o que me impede de fazer lançamentos futuros? Claro que isso é uma péssima solução, mas com essa gambiarra eu posso usar a Contabilidade para acompanhar os lançamentos do cartão de crédito.
  13. Frank K Hosaka

    mysqldump e php

    Encontrei o tutorial de como fazer dump do MySQL pelo PHP nesse endereço: Backup do banco de dados MySQL com PHP – Rafael Couto - eu ainda prefiro fazer pelo Workbench.
  14. Comigo deu tudo certo, só precisei colocar aspas na consulta $criancas = "SELECT * FROM tbpessoa WHERE DtNasc BETWEEN '$menos9anos' AND '$dataatual'"; Veja também o MySQL e confira se DtNasc foi configurado como DATETIME.
  15. Com os campos id, senha, ip e vip não há como usar o relógio do sistema para definir o vip para 1 depois de 30 dias. Mas já que o programa consegue alterar o vip de 1 para 5, por que não altera para 1, quando o jogador tiver chegado no 5?
  16. A minha sugestão é colocar isso no começo do index2.php session_start(); if(!isset($_SESSION["usuario"])){ header("location:index.php");exit;} Mas é preciso definir o $_SESSION["usuario"] no código valida_user.php, senão quem está devidamente cadastrado não vai conseguir entrar na página index2.php.
  17. Frank K Hosaka

    mysqldump e php

    O correto é usar o comando exportar do PHPMyAdmin ou do MySQL Workbench, e não o PHP.
  18. Consegui consertar: <?php $username = "Frank"; $password = "1234"; if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header('HTTP/1.0 401 Unauthorized'); echo 'Usuário não autenticou a conta e senha'; exit;} else { if($_SERVER['PHP_AUTH_USER'] != $username || $_SERVER['PHP_AUTH_PW'] != $password){echo "senha incorreta!";exit;}} echo "você está no estágio 2";
  19. Esse é um problema que enfrento há dois anos e não sei como resolver. O json_decode está retornando nulo para a $pagina porque ele entende que a $pagina não é um json válido. A pergunta que eu faço há dois anos é como tornar um texto no formato json se tornar válido no mundo do PHP. Como eu não entendo nada de programação, eu usei o famigerado método da tentativa e erro. Copiei a página http://transparencia.se.sesc.com.br/transparencia/api/licitacoes dentro do Notepad+. O Notepad+ ajuda bastante, pois ele avermelha as chaves { } e assim fica fácil separar as informações por parte e criar o arquivo astudy.php, assim astudy.php ------------------------------------ <?php $p001='{"pagina_total":3,"pagina_atual":1,"pagina_anterior":null,"pagina_proxima":2,"registro_total":21,"registro_atual":10}'; $teste=json_decode($p001);var_dump($teste); $p002='{"id":54,"identificacao":"Edital de Concorr\u00eancia N\u00b0 22\/000017","objeto":"Contrata\u00e7\u00e3o de empresa especializada para execu\u00e7\u00e3o das obras de revitaliza\u00e7\u00e3o da \u00e1rea de entorno das piscinas e recupera\u00e7\u00e3o do parque aqu\u00e1tico das unidades Sesc Praia e Sesc Beira Rio.","data_publicacao":"2022-08-19","data_abertura":"2022-09-06","local":"Sesc Caixeral Parna\u00edba-PI","telefone":"86 3217-2852","email":"licitasescpi@pi.sesc.com.br","processo":"N\u00b0 22\/000017","vencedores":[],"responsavel":"Supervis\u00e3o de Licita\u00e7\u00e3o","valor":"","modalidade":"Concorr\u00eancia","documentos":[{"descricao":"Edital de Concorr\u00eancia","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-edital-de-concorrencia-1661169326.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"Anexo IV","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-anexo-iv-1660909754.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"Anexo III","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-anexo-iii-1660909732.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"ANEXO II ","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-anexo-ii-1660909699.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"Anexo I","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-anexo-i-1660909679.pdf","tipo":null,"data":"2022-08-19 00:00:00"},{"descricao":"Aviso de Licita\u00e7\u00e3o","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/54\/54-aviso-de-licitacao-1660909627.pdf","tipo":null,"data":"2022-08-19 00:00:00"}],"classificados":[],"desclassificados":[]}'; $teste=json_decode($p002);var_dump($teste); $p003=`{"id":53,"identificacao":" Edital de Concorr\u00eancia RP N\u00b0 22\/000015","objeto":"Aquisi\u00e7\u00e3o de Materiais de Consumo Odontol\u00f3gico EPI'S para atender as demandas das clinicas odontol\u00f3gicas do Sesc\/PI.","data_publicacao":"2022-07-12","data_abertura":"2022-07-27","local":"Sesc AR\/PI","telefone":"86 3217-2852","email":"licitasescpi@pi.sesc.com.br","processo":"RP N\u00b0 22\/000015","vencedores":[],"responsavel":"Supervis\u00e3o de Licita\u00e7\u00e3o","valor":"","modalidade":"Concorr\u00eancia","documentos":[{"descricao":"Aviso de Resultado de Classifica\u00e7\u00e3o das Propostas","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-aviso-de-resultado-de-classificacao-das-propostas-1659095595.pdf","tipo":null,"data":"2022-07-28 00:00:00"},{"descricao":"Ata de Sess\u00e3o 01","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-ata-de-sessao-01-1658939463.pdf","tipo":null,"data":"2022-07-27 00:00:00"},{"descricao":"Edital de Concorr\u00eancia","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-edital-de-concorrencia-1657812850.pdf","tipo":null,"data":"2022-07-27 00:00:00"},{"descricao":"Aviso de Licita\u00e7\u00e3o","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-aviso-de-licitacao-1657797988.pdf","tipo":null,"data":"2022-07-12 00:00:00"},{"descricao":"MINUTA DO CONTRATO","arquivo":"http:\/\/transparencia.se.sesc.com.br\/uploads\/licitacao\/18\/53\/53-minuta-do-contrato-1658160342.docx","tipo":null,"data":"2022-02-27 00:00:00"}],"classificados":[],"desclassificados":[]}`; $teste=json_decode($p003);var_dump($teste); Para montar a variável $p003 eu tive que improvisar. O texto tem aspas simples e duplas ao mesmo tempo, e desconfio que é isso é que faz o PHP entender que o json não é válido. Para colocar o texto na variável eu usei as aspas inclinadas (é o acento agudo), e isso NÃO deu certo, o PHP insiste em reclamar que o $p003 é nulo, ou seja, não é um json válido. O resultado ficou assim: C:\wamp64\www\astudy\astudy.php:3: object(stdClass)[1] public 'pagina_total' => int 3 public 'pagina_atual' => int 1 public 'pagina_anterior' => null public 'pagina_proxima' => int 2 public 'registro_total' => int 21 public 'registro_atual' => int 10 C:\wamp64\www\astudy\astudy.php:6: object(stdClass)[2] public 'id' => int 54 public 'identificacao' => string 'Edital de Concorrência N° 22/000017' (length=37) public 'objeto' => string 'Contratação de empresa especializada para execução das obras de revitalização da área de entorno das piscinas e recuperação do parque aquático das unidades Sesc Praia e Sesc Beira Rio.' (length=194) public 'data_publicacao' => string '2022-08-19' (length=10) public 'data_abertura' => string '2022-09-06' (length=10) public 'local' => string 'Sesc Caixeral Parnaíba-PI' (length=27) public 'telefone' => string '86 3217-2852' (length=12) public 'email' => string 'licitasescpi@pi.sesc.com.br' (length=27) public 'processo' => string 'N° 22/000017' (length=13) public 'vencedores' => array (size=0) empty public 'responsavel' => string 'Supervisão de Licitação' (length=26) public 'valor' => string '' (length=0) public 'modalidade' => string 'Concorrência' (length=13) public 'documentos' => array (size=6) 0 => object(stdClass)[3] public 'descricao' => string 'Edital de Concorrência' (length=23) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-edital-de-concorrencia-1661169326.pdf' (length=100) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 1 => object(stdClass)[4] public 'descricao' => string 'Anexo IV' (length=8) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-anexo-iv-1660909754.pdf' (length=86) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 2 => object(stdClass)[5] public 'descricao' => string 'Anexo III' (length=9) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-anexo-iii-1660909732.pdf' (length=87) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 3 => object(stdClass)[6] public 'descricao' => string 'ANEXO II ' (length=9) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-anexo-ii-1660909699.pdf' (length=86) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 4 => object(stdClass)[7] public 'descricao' => string 'Anexo I' (length=7) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-anexo-i-1660909679.pdf' (length=85) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) 5 => object(stdClass)[8] public 'descricao' => string 'Aviso de Licitação' (length=20) public 'arquivo' => string 'http://transparencia.se.sesc.com.br/uploads/licitacao/18/54/54-aviso-de-licitacao-1660909627.pdf' (length=96) public 'tipo' => null public 'data' => string '2022-08-19 00:00:00' (length=19) public 'classificados' => array (size=0) empty public 'desclassificados' => array (size=0) empty C:\wamp64\www\astudy\astudy.php:9:null Fiz mais uma tentativa, tentei substituir todas as aspas simples por duplas. O Notepad+ não fez! Então, pedi para substituir todas as aspas simples por @, e depois o @ por aspas duplas. Também não deu certo. Estudando mais um pouco a variável $p003, eu percebi que o problema não é as aspas, mas é que havia um aspas que não deveria estar lá, assim EPI'S para atender. Eu arranquei na unha, e agora sim eu consegui converter o $p003 em json. O PHP é o melhor programa do mundo, quando funciona.
  20. Eu faria assim: <input type=checkbox name=aceito onclick=btncadastrar.disabled=false>Li e estou de Acordo.<br><br> <input type=submit id=btncadastrar name=btnCadUsuario value=Cadastrar disabled><br><br>
  21. Eu acredito que o problema está nessa linha: <script type="text/javascript" src="https://www.google.com/jsapi"></script> Para montar o gráfico, você precisa ter uma conexão com a internet, chegar até o Google e de lá usar o API jsapi. Desconfio que o sistema do seu trabalho não permite a conexão com a internet.
  22. astudy.php -------------------------------- <?php $participantes = array("1 - Rafael", "2 - João", "3 - Maria", "4 - Pedro", "5 - Patricia", "6 - Camila", "7 - Roberto", "8 - Rafael",); $numParticipantes = sizeof($participantes); $chances = round((1 / $numParticipantes) * 100); echo "- Temos no total <b>".$numParticipantes."</b> participantes;<br>"; echo "- Cada participante teve <b>".$chances."%</b> de chance de ganhar;<br><br>"; $sorteado[1] = $participantes[rand(0,$numParticipantes - 1)]; for ($i = 1; $i < 2; $i++) { $sorteado[2] = $participantes[rand(0,$numParticipantes - 1)]; if ($sorteado[2] == $sorteado[1]) {--$i;}} //for ($i = 1; $i < 2; $i++) { // $sorteado[3] = $participantes[rand(0,$numParticipantes - 1)]; // if ($sorteado[3] == $sorteado[1] || $sorteado[3] == $sorteado[2]) {--$i;}} echo "<b>Ganhadores:</b> <br>"; echo $sorteado[1] . "<br>"; echo $sorteado[2] . "<br>"; $mensagem="os sorteados foram $sorteado[1] e $sorteado[2]"; // <------------------ file_put_contents("sorteio.txt",$mensagem); // <------------------ echo "<p><input type=button value='SORTEAR !' onclick=document.location.reload(true)>" ?> astudy2.php -------------------------------------------------- <?php echo file_get_contents("sorteio.txt");
  23. Ontem eu conheci o <datalist> e gostei dele. Ao invés de trabalhar com dois arquivos, um HTML com Jquery e outro PHP, o <datalist> resume tudo numa só página PHP. Eu não tenho certeza, mas o Autocomplete do Jquery dá a impressão que ele executa a consulta no MySQL toda vez que o usuário tecla a caixa de busca. O Autocomplete do Jquery lista "Limao" se você escrever "limão" na caixa, esse não é o caso do <datalist>, mesmo assim o resultado é satisfatório, uma vez que o <datalist> é capaz de listar "banana" quando você digita "nana". No código abaixo eu fiz de tudo para evitar de colocar o botão de confirmação, mas não consegui. Não sei como fazer o <form> submeter assim que você seleciona o item. <?php $mysqli=new mysqli("localhost","root","","diario"); if (isset($_POST['inpproduto'])){ echo "Produto ".$_POST['inpproduto'];echo "<input type=submit onclick=location.replace('astudy.php')>";exit;} $query=$mysqli->query("select * from tbprod order by prod"); ?> <!DOCTYPE html> <html> <meta charset="UTF-8"> <title>Autocomplete Textbox in HTML5 PHP and MySQL</title> <label for="inpproduto">Produto</label> <form method=post> <input type="text" list="produto" id="inpproduto" name="inpproduto" size=45 autofocus onclick=submit()> <datalist id="produto"> <?php while($row=$query->fetch_assoc()) { $prod=$row['prod'];?> <option><?=$prod?></option> <?php } ?> </datalist> </form>
  24. O tutorial que encontrei na internet vem com quatro arquivos e seleciona um país pela letra. Eu reduzi tudo para dois arquivos, e ele busca o produto e também traz o preço de venda. O interessante no código é que ele mostra como usar o código PHP na hora de enfrentar o dilema das aspas simples e aspas duplas. A dica é simplesmente sair fora do código PHP e usar o máximo de HTML. Essa é uma solução engenhosa que eu não consegui compreender nesses dois últimos anos. Faz tempo que ouço falar de Jquery e Ajax, mas só hoje é que consegui fazer eles funcionarem. O meu sonho é mandar um json do PHP para o JavaScript, mas ainda estou apanhando bastante. Esse autocomplementar do Jquery Ajax é fora de série, ele vai ajudar bastante a melhorar o meu projeto. O código que segue é apenas um esboço, falta melhorar muita coisa, ele ainda não é prático. astudy.php ----------------------------------------------- <html> <head> <!-- algoritmo baseado em https://phppot.com/jquery/jquery-ajax-autocomplete-country-example/ --> <head> <style> body{width:610px;} .frmSearch {border: 1px solid #a8d4b1;background-color: #c6f7d0;margin: 2px 0px;padding:40px;border-radius:4px;} #listaproduto{float:left;list-style:none;margin-top:-3px;padding:0;width:390px;position: absolute;} #listaproduto tr{padding: 10px; background: #f0f0f0; border-bottom: #bbb9b9 1px solid;} #listaproduto tr:hover{background:#ece3d2;cursor: pointer;} #search-box{padding: 10px;border: #a8d4b1 1px solid;border-radius:4px;} </style> <script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script> <script> $(document).ready(function(){ $("#cxbusca").keyup(function(){ $.ajax({ type: "POST", url: "astudy2.php", data:'tecla='+$(this).val(), success: function(data){ $("#cxsugestao").show(); $("#cxsugestao").html(data); $("#cxbusca").css("background","#FFF");}});});}); function selectCountry(prod,venda) { $("#cxbusca").val(prod); avenda.innerHTML=venda; $("#cxsugestao").hide();} </script> </head> <body> <table class=frmSearch><tr><th>Produto<th>Venda <tr><td><input id="cxbusca" placeholder="Produto" size=40><td><a id=avenda></a> </table> <div id="cxsugestao"></div> </div> </body> </html> astudy2.php --------------------------------------------- <?php $mysqli=new mysqli("localhost","root","","diario"); if(!empty($_POST["tecla"])) { $query=$mysqli->query("select * from tbprod where prod like '%".$_POST['tecla']."%' order by prod limit 100"); if(!empty($query)) { echo "<table id='listaproduto'>"; foreach($query as $row) { $prod=$row['prod']; $venda=$row['custo']*1.3 ?> <tr onClick="selectCountry('<?=$prod?>','<?=$venda?>')"> <?php echo "<td>$prod<td>$venda"; } echo "</table>"; } }
  25. Eu criei o seguinte código <?php echo "<h2>Esfiha de carne a R$ 1,69 pelo App Habib's<h2> <p><h2>Esfiha de carne a R$ 2,74 sem o App Habib's<h2> <p><h2>Não cobramos taxa de serviço se for retirar<h2> <p><h2>A taxa de serviço é de 10% se for consumir no estabelecimento<h2>";?> e criei dois arquivos. Um chamei de astudy.html e o outro chamei de astudy.php. O resultado foi um desastre:
×
×
  • Criar Novo...