Robson Lopes
Members-
Total de itens
16 -
Registro em
-
Última visita
Reputação
0 ComumSobre Robson Lopes
-
-
TABELA DE AGENDAMENTOS, INICIO E FIM JÃO 08:00 - 08:45 ZÉ 09:00 - 09:30 Lulu quer marcar cabelo e pergunta quais horários disponíveis: Faz um loop nos horários de início (08:00, 8:15, 8:30, 8:45 ... ) e consulta na tabela de agendamentos: CHECAR cada horário de inicio + 15 min (cabelo) tem INICIO <= 08:00 e fim >= 08:15 (INDISPONIVEL) etc tem INICIO <= 08:45 e fim >= 09:00 (DISPONIVEL) etc Eu faria mais ou menos assim, mas tem que expandir as verificações de disponível e indisponivel para pegar outras combinações de agendamento.
-
<?php $produtos = array('Coca-Cola','Pastel','Espetinho'); $quantidade = array(5,2,3); foreach ($quantidade as $key => $x) { for ($i=0; $i < $x; $i++) { echo $produtos[$key]; echo "<BR>"; } }
-
Como eu faço para pegar emails respondidos pelos clientes e salvar no banco de dados?
Robson Lopes respondeu ao tópico de marlone em PHP
É possível, você precisa usar as funções imap para se conectar na conta de e-mail e pegar o que o e-mail respondido. Não é um código pronto para isso, mas é parte de um código no meu sistema para você ter um começo. set_time_limit(60*30); $email = imap_open('{imap.email.com.br/imap/ssl/novalidate-cert}INBOX', "email@email.com", 'senha'); $emails = array(); if(is_resource($email) === TRUE) { $headers = imap_headers($email); $numero_mensagens = imap_num_msg($email); for($i = $numero_mensagens; $i > 0; $i--) { $r = imap_header($email, $i); if($r->subject == 'Undelivered Mail Returned to Sender') { $r = imap_body($email, $i); $emails[$this->get_string_between($r, '<', '>')] = true; } } imap_close($email); } foreach($emails as $e => $a) { echo "'"; echo $e; echo "',"; } -
Pode postar o que é enviado no seu $_POST ? É só colocar print_r($_POST); exit; antes da primeira linha e pegar o que aparece na tela.
-
Breve ideia de como posso desenvolver um codigo
Robson Lopes respondeu ao pergunta de luigiferrari em Perguntas e respostas rápidas
É só você tirar o notebook da tabela de usuários. Cria uma tabela só para os notebooks. Crie uma segunda tabela para guardar a relação usuario-notebook. Você pode guardar a data inicial e a data final que o notebook ficou com cada usuário, motivo do fim da permanencia do usuario com o notebook etc. -
Download dentro de loop não vai funcionar. Você deve usar a opção de zippar e baixar tudo no final. Segue trecho do meu código para fazer download em zip de uma pasta (na qual deve gravar os arquivos antes). Está dentro de classe, é só tirar os private e os $this-> se não usar classes no seu código. //PASSE O CAMINHO DA PASTA COM OS ARQUIVOS E O CAMINHO DO ZIP A SER CRIADO. private function addzip($source, $destination) { $files_to_zip = glob($source . '/*'); $this->create_zip($files_to_zip, $destination); } private function create_zip($files = array(), $dest = '', $overwrite = false) { if(file_exists($dest) && !$overwrite) { return false; } if(($files)) { $zip = new ZipArchive(); if($zip->open($dest, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) { return false; } foreach($files as $file) { $zip->addFile($file, basename($file)); } $zip->close(); return file_exists($dest); } else { return false; } } COMO USEI PARA GERAR O ZIP E BAIXAR, APÓS TER A PASTA COM OS ARQUIVOS; $this->addzip(APP.DS.'webroot'.DS.'nfes'.DS.'zip_'.$cnpj.str_replace('-', '', $in.$fi), APP.DS.'webroot'.DS.'nfes'.DS.'zip_'.$cnpj.str_replace('-', '', $in.$fi).'.zip'); header("Content-Type: application/octet-stream"); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"zip_".$cnpj.str_replace('-', '', $in.$fi).".zip\""); echo readfile(APP.DS.'webroot'.DS.'nfes'.DS.'zip_'.$cnpj.str_replace('-', '', $in.$fi).'.zip');
-
Puxando arquivo da pasta sem banco de dados
Robson Lopes respondeu ao pergunta de Jack Oliveira em Perguntas e respostas rápidas
echo '<a download href='.$pasta.$arquivo.'>'.$arquivo.'</a><br />'; Coloque o atributo download no link. -
Consumir API via PHP
Robson Lopes respondeu ao pergunta de felipeoli7eira em Perguntas e respostas rápidas
Você poderia usar também o fsockopen, mas na prática as opções mais usadas são o curl e file_get_contents mesmo. -
sql server Sintaxe incorreta próxima à palavra-chave 'where'
Robson Lopes respondeu ao pergunta de RICARDOVS em Perguntas e respostas rápidas
Nossa! Prefiro dividir em várias querys, mas em uma olhada rápida vi que parece estar faltando fechar um parentese após "TOC.GRUPO<>:ADIANTAMENTOS". WHERE FIN.CODTIPOPER= TOC.CODTIPOPER) /*< REMOVER*/ AND TOC.GRUPO<>:ADIANTAMENTOS ) /*< ADICIONAR*/ -
Quando os dados de um foreach forem outro array, você precisa fazer outro foreach dentro dele. Um foreach dentro de outro, quantos forem necessários para pegar as informações que você quer. foreach($json as $dados) { foreach($dados as $dados2) { ... } }
-
Claro que tem! Você precisa retirar todos os seus textos do HTML e colocar dentro de um array php. Por exemplo: $SITE_PT_BR = array ( ‘entrar’ => ‘Clique aqui para fazer login’, ); Crie arrays alternativos para outros idiomas, mas mantenha os mesmos indices. $SITE_EN = array ( ‘entrar’ => ‘Click here to login’ ) De acordo com a escolha de idioma do usuário, você usa o conteudo de um array ou de outro. $SITE = $SITE_PT_BR; if($idioma_usuario == ‘en’) { $SITE = $SITE_EN; } No html, você exibe o texto correspondente. <a href=””><?php echo $SITE[‘entrar’]; ?></a> Obviamente essa é uma solução rústica se o site for grande, provavelmente você vai achar alguma framework ou biblioteca para ajudar nisso, mas a base do funcionamento é essa.
-
Transforme o JSON em ARRAY e use PRINT_R para mostrar na tela todo o conteúdo. Localize onde está o "distance" (ele não está dentro "card-header") e percorra os ARRAYS normalmente para obte-lo. <?php $json = '{"card-header":{"raceId":"1706057","races":{"95049":{"meeting_abandoned":0,"track":"Kilkenny","races":[{"raceId":"1706057","raceDate":"2019-07-03","raceTime":"8:12"},{"raceId":"1706058","raceDate":"2019-07-03","raceTime":"8:27"},{"raceId":"1706059","raceDate":"2019-07-03","raceTime":"8:43"},{"raceId":"1706060","raceDate":"2019-07-03","raceTime":"9:02"},{"raceId":"1706857","raceDate":"2019-07-03","raceTime":"9:18"},{"raceId":"1706858","raceDate":"2019-07-03","raceTime":"9:34"},{"raceId":"1706859","raceDate":"2019-07-03","raceTime":"9:52"},{"raceId":"1706860","raceDate":"2019-07-03","raceTime":"10:07"},{"raceId":"1706861","raceDate":"2019-07-03","raceTime":"10:23"},{"raceId":"1706862","raceDate":"2019-07-03","raceTime":"10:41"}],"track_id":"50","tv_id":"","tv_name":""}},"courseId":95049,"country":"IRE","trackAbbrName":"K\'kenny"},"card-title":{"postPick":"6-5-3","napNum":"","raceSisStatusTopicD5":"GREYHOUNDS\/2019-07-03\/KILKENNY\/08:12\/#SIS_STATUS","infoTopicD5":"GREYHOUNDS\/2019-07-03\/KILKENNY\/08:12\/OUTRIGHT WINNER\/#INFO\/PREFERRED_BOOKMAKER","priceTopicD5":"GREYHOUNDS\/2019-07-03\/KILKENNY\/08:12\/OUTRIGHT WINNER\/PREFERRED_DOG\/PREFERRED_BOOKMAKER","testingPriceTopic":"GREYHOUNDS\/2019-07-03\/KILKENNY\/08:12\/OUTRIGHT WINNER\/PREFERRED_DOG\/PREFERRED_BOOKMAKER","distance":480,"raceGrade":"A9","raceTypeDesc":"Flat","raceDatetime":"1562137920","raceHour":"08","raceMin":"12","reserved":"","tvId":"","bagsCode":"S","raceTitle":"Race 1"},"card-tabs":{"raceId":"1706057","raceDate":"2019-07-03 08:12","distance":"480","raceStatus":0,"raceTitle":"Welcome To Kilkenny Track A9 525","bagsCode":"S","trackName":"KILKENNY","trackCde":"KILK","rpTrackShortName":"Kilky","trackId":"50","country":"IRE","typeDesc":"Flat","raceGrade":"A9","selTrapNum":"6","tvId":"","dangerTrapNum":"5","fcastAltTrapNum":"3","napNum":"","raceDateDate":"2019-07-03","raceDateTime":"08:12"},"card":{"dogs":[{"dogId":"528848","trackId":"50","trapNum":"1","dogName":"Flexible Pango","dogColor":"BK","dogSex":"B","forecastComment":"Been battered around lately, due some luck","chanceOfWin":30.72,"trainerName":"M Kennedy","trainerLocation":"","forecast":"5\/1","topSpeed":"93","wideYn":"","handicapMetre":"","diffusionName":"FLEXIBLE_PANGO","spotlightComment":"Been battered around lately, due some luck","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"1Sep15","brt":"30.57","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Farloe Tango","dam":"Flexible Dora","birthMonYY":"Sep15","dateOfSeason":"","shortForm":"53355"},{"dogId":"532977","trackId":"50","trapNum":"2","dogName":"Bradys Choice","dogColor":"BK","dogSex":"B","forecastComment":"Finding trouble, not showcasing ability as a result","chanceOfWin":30.78,"trainerName":"M Fortune","trainerLocation":"","forecast":"5\/1","topSpeed":"91","wideYn":"","handicapMetre":"","diffusionName":"BRADYS_CHOICE","spotlightComment":"Finding trouble, not showcasing ability as a result","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"11Jan18","brt":"30.67","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Ballymac Eske","dam":"Marinas Blue","birthMonYY":"Jan18","dateOfSeason":"","shortForm":"T5666"},{"dogId":"528978","trackId":"50","trapNum":"3","dogName":"Littlest Hobo","dogColor":"WBK","dogSex":"B","forecastComment":"Learning twists and turns of track, may still run well","chanceOfWin":30.42,"trainerName":"D Fogarty","trainerLocation":"","forecast":"4\/1","topSpeed":"99","wideYn":"","handicapMetre":"","diffusionName":"LITTLEST_HOBO","spotlightComment":"Learning twists and turns of track, may still run well","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"1May17","brt":"30.31","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Sidarian Blaze","dam":"Miss Precedent","birthMonYY":"May17","dateOfSeason":"","shortForm":"532T3"},{"dogId":"532964","trackId":"50","trapNum":"4","dogName":"Amwhatiam","dogColor":"BE","dogSex":"B","forecastComment":"Luck tends to even itself out, due a change of it","chanceOfWin":30.51,"trainerName":"S O\'Donnell","trainerLocation":"","forecast":"7\/2","topSpeed":"96","wideYn":"","handicapMetre":"","diffusionName":"AMWHATIAM","spotlightComment":"Luck tends to even itself out, due a change of it","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"12Sep17","brt":"30.4","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Superior Product","dam":"Aclamon Jill","birthMonYY":"Sep17","dateOfSeason":"","shortForm":"TTT64"},{"dogId":"528832","trackId":"50","trapNum":"5","dogName":"Heyisntthatright","dogColor":"BK","dogSex":"B","forecastComment":"Five alive? Must be paw perfect to avoid a bang","chanceOfWin":30.33,"trainerName":"M Bergin-Flynn","trainerLocation":"","forecast":"7\/2","topSpeed":"100","wideYn":"","handicapMetre":"","diffusionName":"HEYISNTTHATRIGHT","spotlightComment":"Five alive? Must be paw perfect to avoid a bang","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"15Aug17","brt":"30.13","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Barefoot James","dam":"Hey Ruby","birthMonYY":"Aug17","dateOfSeason":"","shortForm":"44336"},{"dogId":"533139","trackId":"50","trapNum":"6","dogName":"Kilbreedy Hulk","dogColor":"BK","dogSex":"D","forecastComment":"Being backed with good reason, leading player","chanceOfWin":30.29,"trainerName":"F Hickey","trainerLocation":"","forecast":"9\/4","topSpeed":"99","wideYn":"M","handicapMetre":"","diffusionName":"KILBREEDY_HULK","spotlightComment":"Being backed with good reason, leading player","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"21Oct17","brt":"30.23","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Farloe Blitz","dam":"Garryglass Ros","birthMonYY":"Oct17","dateOfSeason":"","shortForm":"T6326"}]}}'; $json = json_decode($json, TRUE); print_r($json['card-title']['distance']);
-
Eu faço assim e dá certo. Minha aplicação é MVC, então, no Controller está assim: header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=exportar_canais_vendas_lojas_emissao_{$inicio}_{$fim}.xls"); e na View está assim: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <meta name="generator" content="LibreOffice 5.1.2.2 (Windows)"/> <meta name="created" content="00:00:00"/> <meta name="changed" content="2016-10-24T15:30:52.002000000"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> body,div,table,thead,tbody,tfoot,tr,th,td,p { font-family:"Liberation Sans"; font-size:x-small } a.comment-indicator:hover + comment { background:#ffd; position:absolute; display:block; border:1px solid black; padding:0.5em; } a.comment-indicator { background:red; display:inline-block; border:1px solid black; width:0.5em; height:0.5em; } comment { display:none; } </style> </head> <body> <table cellspacing="0" border="0"> <tr> <td>Mês/Ano</td> <?php foreach($lojas as $loja) { echo '<td>Internet '.$loja['Loja']['nome'].' R$</td>'; echo '<td>Itens:</td>'; echo '<td>Televendas Ativo '.$loja['Loja']['nome'].' R$</td>'; echo '<td>Itens:</td>'; echo '<td>Televendas Receptivo '.$loja['Loja']['nome'].' R$</td>'; echo '<td>Itens:</td>'; echo '<td>Balcão '.$loja['Loja']['nome'].' R$</td>'; echo '<td>Itens:</td>'; echo '<td>Pessoa Jurídica '.$loja['Loja']['nome'].' R$</td>'; echo '<td>Itens:</td>'; echo '<td>IFOOD '.$loja['Loja']['nome'].' R$</td>'; echo '<td>Itens:</td>'; echo '<td>RAPPI '.$loja['Loja']['nome'].' R$</td>'; echo '<td>Itens:</td>'; echo '<td>UBEREATS '.$loja['Loja']['nome'].' R$</td>'; echo '<td>Itens:</td>'; } ?> </tr> <?php foreach($categorias as $c => $v) { echo '<tr>'; echo '<td>'.$c.'</td>'; foreach($lojas as $l) { echo '<td>'.str_replace('.', ',', $l['reais'][1][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['itens'][1][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['reais'][14][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['itens'][14][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['reais'][15][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['itens'][15][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['reais'][16][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['itens'][16][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['reais'][0][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['itens'][0][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['reais'][18][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['itens'][18][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['reais'][19][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['itens'][19][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['reais'][20][$c]).'</td>'; echo '<td>'.str_replace('.', ',', $l['itens'][20][$c]).'</td>'; } echo '</tr>'; } ?> </table> </body> </html> Outra alternativa muito boa é gerar em CSV se o relatório for simples sem formatações. Pois csv abre em qualquer lugar.
-
Você precisa instalar uma extensão no seu servidor para conectar com Oracle, pois não é nativo do php fazer conexão com esse banco de dados. Siga as instruções do site da Oracle https://www.oracle.com/technetwork/pt/articles/dsl/instalacao-do-php-instant-client-2106518-ptb.html.
-
A página de login ainda está em HTTP? Se sim, teste redirecionar para HTTPS antes do usuário fazer o login (para criar a sessão no HTTPS). Mantenha todo o site em HTTPS. Na minha aplicação foi feito assim e não tive esse problema quando mudei para HTTPS.