Jump to content

POWERED BY:

Search the Community

Showing results for tags 'php'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Calendars

  • Comunidade iMasters

Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Web Development
    • HTML e CSS
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets and other environments
    • WordPress
    • Mobile
    • Agile
    • Desenvolvimento de Games
    • Banco de Dados
    • Design and UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • iMasters's pub

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 423 results

  1. violin101

    PHP - Capturar ID do SELECT

    Caros amigos, saudações. Desculpa postar minha dúvida, fiz várias pesquisa mas não tive sucesso. Como faço para capturar o ID do SELECT selecionado e passar para base_url ? Exemplo: após selecionar o ID passar para <?php echo base_url();?>estoque/ajuste/adicionar/ <== passar o ID aqui. <div class="col-md-6"> <label for="tipoDepart" class="control-label">Departamento:</label> <select name="tipoDepart" id="tipoDepart" style="width:100%;" class="form-control"> <option value="">Selecione um Departamento</option> <?php foreach ($dprts as $dp) { echo '<option value="'.$dp->idDepartamento.'">'.$dp->departamento.'</option>'; } ?> </select> </div> <div class="col-md-6"> <div class="card card-entrad"> <div class="card-header"> <label class="card-tlentr">Entrada - Estoque</label> </div> <div class="card-body"> <div style="text-align:center;"> <a href="<?php echo base_url();?>estoque/ajuste/adicionar/" <== COMO PASSO O ID SELECIONADO AQUI, PARA ABRIR A PÁGINA COM O ID DO DPTO ? class="btn btn-cinza">Adicionar</a> </div> </div> </div> </div> Observação: preciso capturar e passar o ID para gerar TABELA referente a cada departamento. Grato, Cesar
  2. Caros amigos, saudações. Tem como passar para o Formulário um Campo vindo via AJAX no formato moeda ? Tenho uma rotina onde o usuário escolhe através de uma Lista na modal de Produtos e o sistema informa o formulário os seguintes campos: código | descrição | espécie | estoque atual. o estoque atual preciso passar nesse formato, para validação de quantidade: 15.00 ou 15,00. ou seja: converter de: 15 para: 15.00 com casas decimais tem como fazer isso ? Grato, Cesar
  3. Caros amigos, saudações. Tem como passar para o Formulário um Campo vindo via AJAX no formato moeda ? Tenho uma rotina onde o usuário escolhe através de uma Lista na modal de Produtos e o sistema informa o formulário os seguintes campos: código | descrição | espécie | estoque atual. o estoque atual preciso passar nesse formato, para validação de quantidade: 15.00 ou 15,00. tem como fazer isso ? Grato, Cesar
  4. daemon

    Colocar barra sem ter a pasta

    Boa tarde, tenho o domío na raiz: teste.com.br Gostaria de criar uma barra /categoria. No caso fica teste.com.br/categoria/ Tem como eu fazer este url sem criar a pasta categoria ?
  5. daemon

    lendo RSS com PHP + Imagem

    Estou com uma dúvida, Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites. Eu consigo pegar o tópico e a descrição, porém gostara de mostrar a imagem que esta na pagina do link. É possível eu colocar na minha index o url, e aparecer uma preview da imagem que esta no link ? Igual o google: https://news.google.com/topics/CAAqKggKIiRDQkFTRlFvSUwyMHZNRGx1YlY4U0JYQjBMVUpTR2dKQ1VpZ0FQAQ?hl=pt-BR&amp;gl=BR&amp;ceid=BR%3Apt-419 No caso eu importo o tópico e descrição, porém não consigo deixar essa imagem na pagina principal.
  6. Caros amigos, saudações. Estou com uma dúvida: Como consigo fazer uma rotina no sistema onde possa fazer de forma automática trazer o resultado de entrada de produtos a cada 3 meses, por exemplo: Produtos --- Entrada --- Meses Prod_A -------- 100 ------ 01/2024 Prod_A -------- 120 ------ 03/2024 Prod_A -------- 105 ------ 04/2024 ========================= Prod_B -------- 105 ------ 02/2024 Prod_B -------- 120 ------ 03/2024 Prod_B -------- 130 ------ 04/2024 ========================= ETC Como consigo mostrar para o usuário esse movimento de entrada a cada 3 meses ? Grato, Cesar
  7. Caros amigos, saudações. Peço desculpa em recorrer a ajuda dos amigos, pois está sendo um mistério para mim, configurar o meu sistema para Impressão de XML e NFe. Quando acrescento as linhas no início do Controller: use NFePHP\NFe\Make; use NFePHP\NFe\Tools; use NFePHP\NFe\Danfe; etc, etc. e chamo a libraries assim em alguma função: $nfe = new Make(); e etc. <== o sistema acusa que não consegue achar fiz as alterações necessárias no autoload /* |-------------------------------------------------------------------------- | Composer auto-loading |-------------------------------------------------------------------------- | | Enabling this setting will tell CodeIgniter to look for a Composer | package auto-loader script in application/vendor/autoload.php. | | $config['composer_autoload'] = TRUE; | | Or if you have your vendor/ directory located somewhere else, you | can opt to set a specific path as well: | | $config['composer_autoload'] = '/path/to/vendor/autoload.php'; | | For more information about Composer, please visit http://getcomposer.org/ | | Note: This will NOT disable or override the CodeIgniter-specific | autoloading (application/config/autoload.php) */ $config['composer_autoload'] = './vendor/autoload.php'; o meu composer.json está assim: { "description": "The CodeIgniter framework", "name": "codeigniter/framework", "type": "project", "homepage": "https://codeigniter.com", "license": "MIT", "support": { "forum": "http://forum.codeigniter.com/", "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki", "irc": "irc://irc.freenode.net/codeigniter", "source": "https://github.com/bcit-ci/CodeIgniter" }, "require": { "php": ">=5.3.7", "mpdf/mpdf": "^7.1", "nfephp-org/sped-nfe": "^5.0", "nfephp-org/sped-da": "^1.0" }, "suggest": { "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, "autoload": { "psr-4": { "Libraries\\": "application/libraries" } } } após instalar a NFePhp através do composer, o caminho da pasta NFePhp está assim: nome_do_meu_sistema |____ application |______vendor |________nfephp-org |__________sped-common |__________sped-da |__________sped-gtin |__________sped-nfe Como consigo trazer os comando/libraries da NFe para poder utilizar no projeto. Grato, Cesar
  8. violin101

    PHP - Update MySql - bloquear duplicidade

    Caros amigos, saudações. Estou com uma dúvida e não estou conseguindo resolver. Tenho uma tabela onde o usuário lança a Entrada de Produtos <=== até aqui tudo bem. O problema que estou encontrando é: - após lançar os itens e se por alguma necessidade precisar fazer devolução, gostaria de alterar o STATUS do lançamento do PRODUTO de 1 para 2, ou seja: lançou: 101 - Caneta ------- 10 x 1.50 = 15,00 status = 1 102 - Lápis --------- 10 x 1.50 = 15,00 status = 1 103 - Borracha ---- 10 x 1.50 = 15,00 status = 1 104 - Apontador - 10 x 1.50 = 15,00 status = 1 Se precisar DEVOLVER os itens 102 e 103 o Status de 1 passa para 2, ou seja: 101 - Caneta ------- 10 x 1.50 = 15,00 status = 1 102 - Lápis --------- 10 x 1.50 = 15,00 status = 2 103 - Borracha ---- 10 x 1.50 = 15,00 status = 2 104 - Apontador - 10 x 1.50 = 15,00 status = 1 Obs.: como consigo filtrar o CódigoProduto + NúmeroLançamento, para não ocorrer o erro de alterar todos. O problema que estou enfrentando, quando dou o Comando para Alterar, o Sistema Altera todos os produtos lançados que estiver na base de dados, ou seja, onde tiver 102 e 103, o sistema altera. o meu código: CONTROLLER /*Salva o Detalhe do Lançamento*/ protected function save_detalhe($prods,$qtde,$vlrunit,$vlrtotal,$notaLct,$numlcto,$codslct){ for ($i=0; $i < count($prods); $i++) { $data = array( 'cod_prod' => $prods[$i], 'qtd_prod' => $qtde[$i], 'vlr_unit' => $vlrunit[$i], 'vlr_total' => $vlrtotal[$i], 'status' => 2, 'devitens' => 2, 'n_nf' => $notaLct, 'lancamentos_idlcto'=> $numlcto, ); //Função para Salvar os Detalhes do lançamento $this->devolucao_model->save_detalhe($data); //Função para Atualizar a Quantidade de Produto no Estoque $this->update_produto($prods[$i],$qtde[$i],$vlrunit[$i],$vlrtotal[$i]); //Função para Alterar Devolução do Item $this->upd_itens($prods[$i],$notaLct[$i],$codslct[$i]); } } /*<=== até aqui tudo certo, como deve ser feito*/ /* * O Problema está aqui * para não ocorrer duplicidade de Lançamento, * o sistema altera o Status do 1º. lançamento */ protected function upd_itens($idprds,$notaLct,$codslct){ $data = array( 'devitens' => 2, ); $this->devolucao_model->update_itens($idprds,$data); } MODEL: //Altera o Campo Devolução do Item Lançado //Altera todos os código de produto que encontrar public function update_itens($idprds,$data){ $this->db->where("cod_prod",$idprds); return $this->db->update("lctos_itens",$data); } Grato, Cesar
  9. Caros amigos, saudações. Estou com uma dúvida e não consigo entender, fiz várias pesquisas e tentativas antes de recorrer aos amigos. Tenho uma CLASS e quando chamo dentro de um CONTROLLER o sistema acusa que não acha o caminho da CLASS. Como consigo fazer para o sistema localizar/chamar a CLASS dentro do Controller ? a classe está assim: <?php namespace Servicos; use NFePHP\NFe\Make; use NFePHP\NFe\Tools; error_reporting(E_ALL); ini_set('display_errors', 'On'); class NFeServicos{ public function __construct($config, $empresas){ //codes... } } Controller: <?php defined('BASEPATH') OR exit('No direct script access allowed'); use NFePHP\Common\Certificate; use NFePHP\DA\NFe\Danfe; use Servicos\NFeServico; //chamo a class class NotaFiscal extends CI_Controller { public function gerarXml() { $id = $this->input->post('idLct'); $this->load->model('estoque/lancamentos_model', '', true); $venda = $this->lancamentos_model->getById($id); $nfe = new NFeServico(); //<o erro acontece aqui, não localiza. } } Grato, Cesar
  10. belann

    Criação de projeto laravel

    Olá! Não estou conseguindo criar um projeto laravel está dando o seguinte erro: In Factory.php line 654: The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl ex tension, you can disable this error, at your own risk, by setting the 'disable-tls' option to true. Já baixei a versão openssl 3.3.1 e instalei no diretório ext do php, mas não sei se tem que configurar alguma coisa no php.ini.
  11. violin101

    PHP - Agradecimento e uma Dúvida

    Caros amigos, saudações. Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. Minha dúvida: - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA. Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal ? Grato, Cesar
  12. violin101

    PHP - Abrir e Fechar janela

    Caros amigos, saudações. Estou com uma pequena dúvida. Estou escrevendo um Sistema que tem vários Módulos. O módulo principal tem: Estoque | Compras | Expedição | Vendas Minha dúvida: como faço após Acessar o Módulo Principal e Escolher o Módulo que quero trabalhar, eu possa fechar o Módulo aberto por exemplo: Estoque, sem alterar o Módulo principal e outros se estiver aberto ? Grato, Cesar
  13. Bom dia, Há alguns dias que venho instalar o apache, o php, mysql e o phpmyadmin manualmente e sem obter sucesso. Até consegui rodar o php, porém, quando vou baixar a úitima versão do MYSQL, não tem todos os pacotes nele instalados, inclusive no completo, só encontro o Router. Alguém pode me dizer o porquê que isso está ocorrendo? Desde já agradeço a ajuda de vocês, que será bem vinda! No aguardo! Uso a versão 8.3.9 do PHP Meu SO é o Windows 10 32 bits
  14. Caros amigos, saudações. Por favor, me perdoa em postar mais uma dúvida minha. Através de ajuda e orientação dos membros do Grupo, tenho conseguido resolver muitos problemas que tenho encontrado. Gostaria de saber dos amigos do grupo, se tem algum vídeo aula, orientando a Instalação das Biblioteca para Emissão de Nota Fiscal Eletrônica. Tenho feito várias busca e tenho encontrado a maioria das vezes tudo em LARAVEL. Sei que para instalar as Biblioteca, precisa do Composer, até aqui tudo bem. Minha dúvida: após fazer o download da sped-nfe e sped-da, essas biblioteca devem ser gravada em qual pasta ? ---- na C:\ ou dentro da pasta do Sistema ? quando dou o comando: COMPOSER INSTALL esse comando já instala todas as bibliotecas, ou 1 por 1 ? Grato, Cesar
  15. Caros amigos, saudações. Estou com uma dúvida e gostaria do auxílio dos amigos. Gostaria de após o usuário digitar o Número do Pedido/Orçamento o Sistema Importa todos os Dados para a Entrada/Venda de Produtos. Exemplo: Pedido n.102 com os itens: 10 un Produto X - vr_unit: 5.00 05 un Produto Y - vr_unit: 3.00 03 un Produto Z - vr_unit: 1.50 Importar para Entrada/Venda Venda n.1001 |__> como importo os dados do Pedido n.102 de uma só vez ? Grato, Cesar
  16. violin101

    PHP - Orientação referente Tabela HTML

    Caros amigos, saudações. Tenho uma tabela em HTML, que me traz as informações de parcelamento corretamente. Preciso fazer uma validação, mas quando tento somar a coluna que traz valor, a soma faz errada. Como devo fazer para SOMAR a coluna mostrando as casas decimais ? a tabela está assim: success: function(parcelas) { const tbody = $("#tbparcs tbody"); tbody.empty(); // Limpa a tabela antes de adicionar novas linhas parcelas.forEach(function(parcela) { let html = "<tr>"; html += "<td width='20%' height='10'style='text-align:center;'><input type='date' name='dtaprc[]' class='form-control d-none' value='"+dateSQL(parcela.data_vencimento)+"'><span>"+parcela.data_vencimento+"</span></td>"; <!--Quero somar essa coluna --> html += "<td width='50%' height='10' style='text-align:center;'><input type='text' name='vlrprc[]' class='form-control d-none' value='"+parcela.valor_parcela+"' oninput='formatNumber(this)'><span>"+parcela.valor_parcela+"</span></td>"; html += "<td width='15%' height='10' style='text-align:center;'>"+ "<button onclick='editarCelulaParcelamento(this)' type='button' class='btn btn-primary btn-editar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "<i class='fa fa-edit'></i></button>"+ "<button type='button' data-save class='btn btn-success btn-salvar-parc' style='margin-right: 1%; padding: 1px 5px;' title='Salvar'>"+ "<i class='fa fa-save'></i></button>"+ "</td>"; html += "</tr>"; tbody.append(html); somarparcelas(); }); } a função para somar a coluna está assim: //Função somar Total da Tabela function somarparcelas(){ parcelastotal = 0; //Preenche o INPUT do parcelastotal $("#tbparcs tbody tr").each(function(){ parcelastotal = parcelastotal + parseFloat($(this).find("td:eq(1)").text()); }); $("input[name=parcelastotal]").val(parcelastotal.toFixed(2)); } //o problema que estou encontrando está no parseFloat. //o parseFloat traz: 12 e não 12.57 Grato, Cesar
  17. violin101

    PHP - Orientação referente Tabela HTML

    Caros amigos, saudações. Tenho uma tabela em HTML, que me traz as informações de parcelamento corretamente. Preciso fazer uma validação, mas quando tento somar a coluna que traz valor, a soma faz errada. Como devo fazer para SOMAR a coluna mostrando as casas decimais ? a tabela está assim: success: function(parcelas) { const tbody = $("#tbparcs tbody"); tbody.empty(); // Limpa a tabela antes de adicionar novas linhas parcelas.forEach(function(parcela) { let html = "<tr>"; html += "<td width='20%' height='10'style='text-align:center;'><input type='date' name='dtaprc[]' class='form-control d-none' value='"+dateSQL(parcela.data_vencimento)+"'><span>"+parcela.data_vencimento+"</span></td>"; <!--Quero somar essa coluna --> html += "<td width='50%' height='10' style='text-align:center;'><input type='text' name='vlrprc[]' class='form-control d-none' value='"+parcela.valor_parcela+"' oninput='formatNumber(this)'><span>"+parcela.valor_parcela+"</span></td>"; html += "<td width='15%' height='10' style='text-align:center;'>"+ "<button onclick='editarCelulaParcelamento(this)' type='button' class='btn btn-primary btn-editar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "<i class='fa fa-edit'></i></button>"+ "<button type='button' data-save class='btn btn-success btn-salvar-parc' style='margin-right: 1%; padding: 1px 5px;' title='Salvar'>"+ "<i class='fa fa-save'></i></button>"+ "</td>"; html += "</tr>"; tbody.append(html); somarparcelas(); }); } a função para somar a coluna está assim: //Função somar Total da Tabela function somarparcelas(){ parcelastotal = 0; //Preenche o INPUT do parcelastotal $("#tbventas tbody tr").each(function(){ parcelastotal = parcelastotal + parseFloat($(this).find("td:eq(1)").text()); }); $("input[name=parcelastotal]").val(parcelastotal.toFixed(2)); } //o problema que estou encontrando está no parseFloat. //o parseFloat traz: 12 e não 12.57 Grato, Cesar
  18. Olá amigos, saudações. Após ajuda dos amigos do forum, consegui uma Rotina que estava precisando. Infelizmente após gerar o parcelamento com suas datas de vencimento, quando SALVA no MySql o campo data salva assim 0000-00-00, mesmo contendo datas de vencimentos. Como consigo salvar no campo vencimento as DATAS corretamente ? O Código fico assim: Controller function adicionar() { if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'aLancamento')) { $this->session->set_flashdata('error', 'Você não tem permissão para adicionar lançamento.'); redirect(base_url()); } //Recebe via POST Dados do Lançamento $codEmpr = $this->input->post('idEmp'); $dataLct = $this->input->post('dtaentr'); $notaLct = $this->input->post('num_nf'); //Recebe via POST os Produtos - Entrada de Lançamentos $id_prds = $this->input->post("id_prds"); $qtde = $this->input->post("qtde"); $estoq = $this->input->post("estoq"); $vlrunit = $this->input->post("vlrunit"); $vlrtotal = $this->input->post("vlrtotal"); //Recebe via POST os Parcelamento $dtaprc = $this->input->post("dtaprc"); $vlrprc = $this->input->post("vlrprc"); $idFrnc = $this->input->post('idfornecedor'); $this->load->library('form_validation'); $this->data['custom_error'] = ''; if ($this->form_validation->run('lancamentos') == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' .validation_errors(). '</div>' : false); } else { $data = array( 'dtalcto' => date('Y-m-d'), 'dtaentr' => $this->input->post('dtaentr'), 'num_nf' => set_value('num_nf'), 'tipo_lcto' => 1, 'id_user' => $this->session->userdata('id'), //pega o ID do Usuário logado 'id_empresas' => $this->input->post('idEmp'), //pega o ID do Empresa logado 'fornecedor_idfornecedor' => $this->input->post('idfornecedor') ); if ($this->lancamentos_model->add('lancamentos', $data) == true) { //Função para Pegar o Último ID do lançamento $numlcto = $this->lancamentos_model->lastID(); //Função para Salvar os Itens do lançamento $this->save_detalhe($id_prds,$qtde,$vlrunit,$vlrtotal,$numlcto); //Função para Salvar Parcelamento $this->save_parcelas($notaLct,$dtaprc,$vlrprc,$idFrnc); //Converte o ID em String $strlcto = strval($numlcto); $strEmpr = strval($codEmpr); $pegEmpr = str_pad($strEmpr, '3', '0', STR_PAD_LEFT); $mostra = 'E-'.$pegEmpr.'.'.$strlcto; //Chama a Função para Alterar o ID do lançamento $this->update_lctos($numlcto,$strlcto,$strEmpr); //Função para Salvar Histórico do Produto $this->save_hist($dataLct,$qtde,$estoq,$mostra,$notaLct,$id_prds,$codEmpr); $this->session->set_flashdata('success', '<h4>Lançamento nº.'.$mostra.' - adicionado com Sucesso.</h4>'); redirect(base_url() . 'admin/lancamentos/visualizar/'.$numlcto); } else { $this->data['custom_error'] = '<div class="form_error"><p><h4>Atenção!!! Ocorreu um erro ao tentar adicionar.</h4></p></div>'; } } $this->load->view('estilo/header', $this->data); $this->load->view('admin/lancamentos/adicionarLancamento'); } //Função para Salvar os Parcelamentos protected function save_parcelas($notaLct,$dtaprc,$vlrprc,$idFrnc){ for ($i=0; $i < count($vlrprc); $i++) { $data = array( 'nunNotafiscal' => $notaLct, 'dataVencimento' => $dtaprc[$i], //aqui salva 0000-00-00 'valorParcela' => $vlrprc[$i], 'id_fornecedor' => $idFrnc, 'id_user'=> $this->session->userdata('id'), ); //Função para Salvar os Detalhes do Parcelamento $this->lancamentos_model->save_parcelas($data); } } public function geraParcelamento() { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $dataInicial = new DateTime($_POST['dataInicial']); $intervalos = explode('/', $_POST['intervalos']); $valorTotal = floatval($_POST['valorTotal']); function gerarParcelas($dataInicial, $intervalos, $valorTotal) { $datasParcelas = []; $quantidadeParcelas = count($intervalos); $valorParcela = floor($valorTotal / $quantidadeParcelas * 100) / 100; $valorUltimaParcela = $valorTotal - ($valorParcela * ($quantidadeParcelas - 1)); for ($i = 0; $i < $quantidadeParcelas; $i++) { if ($i == $quantidadeParcelas - 1) { $valorAtualParcela = $valorUltimaParcela; } else { $valorAtualParcela = $valorParcela; } $dataVencimento = clone $dataInicial; $dataVencimento->modify("+{$intervalos[$i]} days"); $datasParcelas[] = [ 'data_vencimento' => $dataVencimento->format('d/m/Y'), 'valor_parcela' => number_format($valorAtualParcela, 2, ',', '.') ]; } return $datasParcelas; } $parcelas = gerarParcelas($dataInicial, $intervalos, $valorTotal); header('Content-Type: application/json'); echo json_encode($parcelas); } } Models //Salva Parcelamento public function save_parcelas($data){ $this->db->insert("faturamento",$data); } View //Esta função tras correto o parcelamento function gerarParcelas() { const dataInicial = $('#dtaentr').val(); const intervalos = $('#formaPgto').val(); const valorTotal = $('#subtotal').val(); $.ajax({ url: '<?=base_url()?>admin/lancamentos/geraParcelamento', type: 'POST', dataType: 'json', data: { dataInicial: dataInicial, intervalos: intervalos, valorTotal: valorTotal }, success: function(parcelas) { const tbody = $("#tbparcs tbody"); tbody.empty(); // Limpa a tabela antes de adicionar novas linhas parcelas.forEach(function(parcela) { let html = "<tr>"; html += "<td width='10%' height='10'><input type='hidden' name='dtaprc[]' value='"+parcela.data_vencimento +"'>"+parcela.data_vencimento +"</td>"; html += "<td width='32%' height='10'><input type='hidden' name='vlrprc[]' value='"+parcela.valor_parcela+"'>"+parcela.valor_parcela+"</td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-primary btn-editar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "<span class='fa fa-edit'></span></button>"+ "<button type='button' class='btn btn-success btn-salvar-parc' style='margin-right: 1%; padding: 1px 5px;' title='Salvar'>"+ "<span class='fa fa-save'></span></button>"+ "</td>"; html += "</tr>"; tbody.append(html); }); } }); }
  19. Jack Oliveira

    Instalador

    Ola estou fazendo um instalador de banco de dados em parte funciona Mas quando uso o <<<HTML HTML; Ele fica com estas informações no top 7.4 ao 8.38.0.28512MOnOnOnOffOffOnOffOffOnOnOnOnOnprogress-bar-success <?php $MeuHtml = <<<HTML <!DOCTYPE html> <html> <head><meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Instalação {$autor}</title> <link rel="icon" href="{$urlApi}api/allinstall/assets/icone.png?v={$versao}" sizes="32x32"> <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> <link rel="stylesheet" href="{$urlApi}api/allinstall/assets/css/app.css?v={$versao}"> <style type="text/css"> .license { background-color: #FFF; height: 400px; width: 100%; margin: 10px; } .form-control{ margin-bottom: 5px; } #primary{background: #FF6403} .paper-card{background: #272c33} .card{background: none;} .sw-theme-circles>ul.step-anchor:before{background-color: #30363d} .sw-theme-circles>ul.step-anchor>li>a{border: 3px solid #30363d} .sw-theme-circles>ul.step-anchor>li>a{background: #f5f5f5; min-width: 50px; height: 50px; text-align: center; -webkit-box-shadow: inset 0 0 0 3px #fff!important; box-shadow: inset 0 0 0 3px #fff!important; text-decoration: none; outline-style: none; z-index: 99; color: #999; background: #fff; line-height: 2; font-weight: bold;} .sw-theme-circles>ul.step-anchor>li{margin-left: 15%;} .card-header{border-bottom: 0} .table-striped tbody tr:nth-of-type(odd){background-color: #30363d;} .table-bordered{border: 1px solid #30363d;} .table-bordered td, .table-bordered th { border: 1px solid #30363d; } </style> </head> <body class="light loaded"> <div id="app"> <main> <div id="primary" class="p-t-b-100 height-full"> <div class="container"> <div class="row"> <div class="col-lg-8 mx-md-auto paper-card"> <div class="text-center"> <img class="img-responsive" src="{$urlApi}api/allinstall/assets/{$imagem}?v={$versao}"> <p><strong><H3>Instalação {$projeto} | V: {$versao}</H3></strong></p> </div> HTML; if (!isset($_GET['step']) || $_GET['step'] == '1') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li><a href="#step-2y">2</a></li> <li><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <h6><b>Configurações do Servidor</b></h6><br> <table class="table table-condensed table-bordered table-striped"> <tr> <th>Função / Extensão</th> <th>Config. Necessária</th> <th>Config. Atual</th> <th width="50px">Status</th> </tr> <tr> <td>Versão do PHP</td> <td> HTML; echo $php7. ' ao '.$php8; $MeuHtml .= <<<HTML </td> <td> HTML; echo phpversion(); $MeuHtml .= <<<HTML </td> <td> HTML; if(phpversion() >= $php7 && phpversion() <= $php8) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> HTML; $MeuHtml .= <<<HTML <tr> <td>Memória do PHP</td> <td>128MB</td> <td> HTML; echo $mem = ini_get('memory_limit'); $MeuHtml .= <<<HTML </td> <td> HTML; if($mem >= 128) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>cURL</td> <td>On</td> <td> HTML; if(function_exists('curl_init')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('curl_init')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Allow URL fopen</td> <td>On</td> <td> HTML; if(ini_get('allow_url_fopen')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(ini_get('allow_url_fopen')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>File Get Contents</td> <td>On</td> <td> HTML; if(function_exists('file_get_contents')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('file_get_contents')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Sessão Auto Start</td> <td>Off</td> <td> HTML; if(ini_get('session_auto_start')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('session_auto_start')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Safe Mode</td> <td>Off</td> <td> HTML; if(ini_get('safe_mode')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('safe_mode')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Short Open Tags</td> <td>On</td> <td> HTML; if(ini_get('short_open_tag')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(ini_get('short_open_tag')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Magic Quotes GPC</td> <td>Off</td> <td> HTML; if(ini_get('magic_quotes_gpc')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('magic_quotes_gpc')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Register Globals</td> <td>Off</td> <td> HTML; if(ini_get('register_globals')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('register_globals')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>PHPMail</td> <td>On</td> <td> HTML; if(function_exists('mail')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('mail')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { $i = $i + 1; echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>MySQLi</td> <td>On</td> <td> HTML; if(extension_loaded('mysqli')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('mysqli')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>ZIP</td> <td>On</td> <td> HTML; if(extension_loaded('zip')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('zip')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>MBString</td> <td>On</td> <td> HTML; if(extension_loaded('mbstring')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('mbstring')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>XML</td> <td>On</td> <td> HTML; if(extension_loaded('libxml')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('libxml')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> </table> <hr> <h6><b>Diretórios e Permissões de Arquivos</b></h6><br> <table class="table table-condensed table-bordered table-striped"> <tr> <th>Diretório</th> <th style="width: 40px">Status</th> </tr> <tr> <td>database</td> <td> HTML; if(is_writable('database')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> </table> <hr> <h6><b>Pontuação / Compatibilidade</b></h6><br> <div class="progress"> <div class="progress-bar progress-bar-striped progress-bar-animated HTML; echo ProgressBar(substr(VerificaPontuacao($i,'16'),0,4)); $PontPorce = VerificaPontuacao($i,'16'); $pont100 = substr(VerificaPontuacao($i,'16'),0,4); $MeuHtml .= <<<HTML " role="progressbar" aria-valuemax="100" style="width: {$PontPorce}%;"> <strong>{$pont100} / 100</strong> </div> </div> <center> <br> <button class="btn btn-primary" onclick="document.location.href='{$URL}?step=1';">Verificar</button> <button class="btn btn-primary" onclick="document.location.href='{$URL}?step=2';">Próximo</button> </center> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '2') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body "> <iframe src="{$urlApi}api/allinstall/termos.php{$Frame}" class="license" frameborder="0" scrolling="auto"></iframe> <form action="setup.php"> <input type="hidden" name="step" value="3"> <label><input type="checkbox" required=""> Sim, eu aceito</label> <center> <br> <a href="javascript:history.back()"><button class="btn btn-primary">Voltar</button></a> <button class="btn btn-primary" type="submit">Próximo</button> </center> </form> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '3') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li class="active"><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <form method="post" action="?InstallDB"> <h6><b>1. MySQL - Configuração do Banco de Dados</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">MySQL Host:</label> <div class="col-sm-9"> <input class="form-control" name="dbhost" value="localhost" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Usuário MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbuser" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbpass"> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Banco MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbname" required> </div> </div> <h6><b>2. Configuração Comum</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Site:</label> <div class="col-sm-9"> <input class="form-control" name="nomesite" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">URL do Site:</label> <div class="col-sm-9"> <input class="form-control" name="urlsite" value="{$urlsite}" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">URL de Instalação:</label> <div class="col-sm-9"> <input class="form-control" name="siteurl" value="{$siteurl}" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Extensão:</label> <div class="col-sm-9"> <select class="form-control" name="extensao" required> <option value=""> Selecionar Extensão </option> <option value="1"> MYSQLI </option> <option value="2"> PDO </option> </select> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Define TimeZone:</label> <div class="col-sm-9"> <select class="form-control" name="timezone" id="timezone"> HTML; foreach ($timezones as $timezone) : echo '<option value="'.$timezone.'" '.$timezone === $current_timezone ? 'selected' : ''.'> '.$timezone.' </option>'; endforeach; $MeuHtml .= <<<HTML </select> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">E-mail:</label> <div class="col-sm-9"> <input class="form-control" name="email" required> <em>Mesmo e-mail cadastrado em nosso Site.</em> </div> </div> <h6><b>3. Configuração do Administrador</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Usuário:</label> <div class="col-sm-9"> <input class="form-control" name="usuario" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Login:</label> <div class="col-sm-9"> <input class="form-control" name="login" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha:</label> <div class="col-sm-9"> <input class="form-control" type="password" name="senha" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha[confimação]:</label> <div class="col-sm-9"> <input class="form-control" type="password" name="senhaconfirm" required> </div> </div> <center> <a class="btn btn-primary" href="javascript:history.back()">Voltar</a> <button class="btn btn-primary">Próximo</button> </center> </form> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '4') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li class="active"><a href="#step-3y">3</a></li> <li class="active"><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <div> <h4><b>Instalação realizada com sucesso!</b></h4> <p>Agora você poderá utilizar o seu {$projeto}, em caso de dúvidas entre em contato com o suporte: <b>{$emailautor}</b></p> </div> <center> <form action="{$URL}?step=4" method="post"> <button type="submit" name="realizar_login" class="btn btn-primary">Realizar Login</button> </form> </center> </div> </div> HTML; } if (isset($_POST['realizar_login'])) { // Deletar os arquivos @unlink('setup.php'); @unlink($URL); @unlink('termos.php'); @unlink('database/BD.sql'); @unlink('controller/setup.php'); // Redirecionar para a página de login ou outra página desejada header('Location: login.php?finish'); exit; } $MeuHtml .= <<<HTML <div class="box-footer"> <center> Todos os Direitos Reservados {$autor} </center> </div> </div> </div> </div> </div> </main> </div> <script src="{$urlApi}api/allinstall/assets/js/app.js"></script> </body> </html> HTML; echo $MeuHtml;
  20. Pessoal, saudações. Por favor, me perdoa em recorrer ao auxílio dos amigos, mas infelizmente estou com uma dúvida e não estou conseguindo resolver. Preciso de ajuda, para criar uma rotina onde o sistema possa Gerar/Calcular vencimentos com períodos variados, ou seja: 00/30/60/90 28/42/56 etc Como faço para o Sistema entender que os PERÍODOS VARIADOS, seja a quantidade de parcelas e vencimentos ? Observação: peço desculpa se postei minha dúvida na postagem errada. Grato, Cesar
  21. Jack Oliveira

    DRAP AND DROP

    Ola pessoal, boa noite a todos Bom é o seguinte tenho um codigo html onde selecione um modelo de site para poder criar na base selecionada, ele criar ate então, mas ele esta pegando somente o index.html Mas quero que ele salva junto ao novo projeto o css, js, img, images, assets e fonts, quando faço os ajuste para que pega tudo isso ele me da erro ao salvar Vou mostra parte do html onde faz a seleção dos modelos <!-- new page modal--> <div class="modal fade" id="new-page-modal" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <form id="newPageForm" method="POST" action="save.php"> <div class="modal-content"> <div class="modal-header"> <h6 class="modal-title text-primary fw-normal"><i class="la la-lg la-file"></i> Nova página</h6> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"> </button> </div> <div class="modal-body text"> <div class="mb-3 row" data-key="type"> <label class="col-sm-3 col-form-label"> Modelo <abbr title="O conteúdo deste modelo será usado como ponto de partida para o novo modelo"> <i class="la la-lg la-question-circle text-primary"></i> </abbr> </label> <div class="col-sm-9 input"> <div> <select class="form-select" name="startTemplateUrl"> <option value="themes/modelo-branco/branco-template.html">Modelo em branco</option> <option value="themes/modelo1/index.html">Modelo 1 de L2</option> <option value="themes/modelo2/index.html">Modelo 3 de L2</option> <option value="themes/modelo3/index.html">Modelo 3 de L2 </option> </select> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Nome da página</label> <div class="col-sm-9 input"> <div> <input name="title" type="text" value="Minha página" class="form-control" placeholder="Minha página" required> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Nome do arquivo</label> <div class="col-sm-9 input"> <div> <input name="file" type="text" value="my-page.html" class="form-control" placeholder="index.html" required> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Salvar na pasta</label> <div class="col-sm-9 input"> <div> <input name="folder" type="text" value="my-pages" class="form-control" placeholder="/" required> </div> </div> </div> </div> <div class="modal-footer"> <button class="btn btn-secondary btn-lg" type="reset" data-bs-dismiss="modal"><i class="la la-times"></i> Cancelar</button> <button class="btn btn-primary btn-lg" type="submit"><i class="la la-check"></i> Criar página</button> </div> </div> </form> </div> </div> A ideia aqui é salvar tudo que tiver depois do themes/demo1/ quando ele salva so salva my-pasta/index.html e quando for salva ele salva dentro de um pasta Projetos/MeuSite1 Projetos/MeuSite2 e assim vai Este é o save.php <?php define('MAX_FILE_LIMIT', 1024 * 1024 * 2);//Tamanho máximo de arquivo HTML de 2 megabytes define('ALLOW_PHP', false);//verifique se o html salvo contém tag php e não salve se não for permitido define('ALLOWED_OEMBED_DOMAINS', [ 'https://www.youtube.com/', 'https://www.vimeo.com/', 'https://www.twitter.com/' ]);//carregar URLs apenas de sites permitidos para oembed function sanitizeFileName($file, $allowedExtension = 'html') { $basename = basename($file); $disallow = ['.htaccess', 'passwd']; if (in_array($basename, $disallow)) { showError('Nome de arquivo não permitido!'); return ''; } //sanitize, remova o ponto duplo .. e remova os parâmetros get, se houver $file = preg_replace('@\?.*$@' , '', preg_replace('@\.{2,}@' , '', preg_replace('@[^\/\\a-zA-Z0-9\-\._]@', '', $file))); if ($file) { $file = __DIR__ . DIRECTORY_SEPARATOR . $file; } else { return ''; } //permitir apenas extensão .html if ($allowedExtension) { $file = preg_replace('/\.[^.]+$/', '', $file) . ".$allowedExtension"; } return $file; } function showError($error) { header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500); die($error); } function validOembedUrl($url) { foreach (ALLOWED_OEMBED_DOMAINS as $domain) { if (strpos($url, $domain) === 0) { return true; } } return false; } $html = ''; $file = ''; $action = ''; if (isset($_POST['startTemplateUrl']) && !empty($_POST['startTemplateUrl'])) { $startTemplateUrl = sanitizeFileName($_POST['startTemplateUrl']); $html = ''; if ($startTemplateUrl) { $html = file_get_contents($startTemplateUrl); } } else if (isset($_POST['html'])){ $html = substr($_POST['html'], 0, MAX_FILE_LIMIT); if (!ALLOW_PHP) { //if (strpos($html, '<?php') !== false) { if (preg_match('@<\?php|<\? |<\?=|<\s*script\s*language\s*=\s*"\s*php\s*"\s*>@', $html)) { showError('PHP não permitido!'); } } } if (isset($_POST['file'])) { $file = sanitizeFileName($_POST['file']); } if (isset($_GET['action'])) { $action = htmlspecialchars(strip_tags($_GET['action'])); } if ($action) { //ações do gerenciador de arquivos, excluir e renomear switch ($action) { case 'rename': $newfile = sanitizeFileName($_POST['newfile']); if ($file && $newfile) { if (rename($file, $newfile)) { echo "Arquivo '$file' renomeado para '$newfile'"; } else { showError("Erro ao renomear arquivo '$file' renomeado para '$newfile'"); } } break; case 'delete': if ($file) { if (unlink($file)) { echo "Arquivo '$file' excluído"; } else { showError("Erro ao excluir arquivo '$file'"); } } break; case 'saveReusable': //bloco ou seção $type = $_POST['type'] ?? false; $name = $_POST['name'] ?? false; $html = $_POST['html'] ?? false; if ($type && $name && $html) { $file = sanitizeFileName("$type/$name"); if ($file) { $dir = dirname($file); if (!is_dir($dir)) { echo "$dir pasta não existe\n"; if (mkdir($dir, 0777, true)) { echo "$dir pasta foi criada\n"; } else { showError("Erro ao criar pasta '$dir'\n"); } } if (file_put_contents($file, $html)) { echo "Arquivo salvo '$file'"; } else { showError("Erro ao salvar arquivo '$file'\nAs possíveis causas são falta de permissão de gravação ou caminho de arquivo incorreto!"); } } else { showError('Nome de arquivo inválido!'); } } else { showError("Faltam dados de elementos reutilizáveis!\n"); } break; case 'oembedProxy': $url = $_GET['url'] ?? ''; if (validOembedUrl($url)) { header('Content-Type: application/json'); echo file_get_contents($url); } else { showError('URL inválida!'); } break; default: showError("Ação inválida '$action'!"); } } else { //salvar pagina if ($html) { if ($file) { $dir = dirname($file); if (!is_dir($dir)) { echo "$dir pasta não existe\n"; if (mkdir($dir, 0777, true)) { echo "$dir pasta foi criada\n"; } else { showError("Erro ao criar pasta '$dir'\n"); } } if (file_put_contents($file, $html)) { echo "Arquivo salvo '$file'"; } else { showError("Erro ao salvar arquivo '$file'\nAs possíveis causas são falta de permissão de gravação ou caminho de arquivo incorreto!"); } } else { showError('O nome do arquivo está vazio!'); } } else { showError('O conteúdo HTML está vazio!'); } } Espero que possam entender o que preciso aqui.... fico no aguardo! quando eu tento mudar a forma de salva no php, ele me da erro de que não foi salvo, e volta ao orginal como esta ai acima ele salva, talvez eu esteja escapando alguma coisa que não estou vendo....
  22. Tenho uma tabela chamada "item" com os seguintes campos: id, name, active. Nela tem cadastrado vários itens. No campo "active" eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo active. E outra tabela chamada "product" com os seguintes campos (id, name) com os seguintes registros: 1, Produto A 2, Produto B 3, Produto C E uma terceira tabela chamada "product_item" com os seguintes campos (productID, itemID). No campo productID eu coloco o id de um produto da tabela "product" e no campo "itemID" eu coloco o id do produto da tabela "item". Exemplo: 1, 1 1, 3 1, 4 2, 3 2, 4 Sendo assim o produto A da tabela 'product" comtem os itens casa, cama e moto. Eu preciso fazer uma busca da seguinte maneira:  Eu escolho um registro da tabela "item", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "product" que contenham a palavra "casa" e que os demais itens estejam ativos no siste. Ou seja, que contenham um "S" no campo "active"  Eu consegui fazer isso da seguinte maneira: SELECT P.id, P.name, GROUP_CONCAT(I.name ORDER BY I.name) AS items FROM product P JOIN product_item PI ON P.id = PI.productID JOIN item I ON I.id = PI.itemID AND I.active = 'S' WHERE P.id NOT IN ( SELECT PI.productID FROM product_item PI JOIN item I ON I.id = PI.itemID WHERE I.active IS NULL ) AND P.id IN ( SELECT PI.productID FROM product_item PI JOIN item I ON I.id = PI.itemID WHERE I.name = 'mesa' ) GROUP BY P.id, P.name; O problema que eu estou tendo é o seguinte: Quando eu jogo este código para o banco de dados onde eu já tenho os registros cadastrado o php fica lendo uma eternidade e não lista os produtos. Usando código no banco de dados que eu fiz para testes ele funciona perfeitamente pois nele tem poucos registros. No banco de dados principal a tabela "item" tem 11.196 registros. A tabela "product" tem 88.214 registros e a tabela "product_item" tem 518.378 registros. Eu acredito que, devido o banco de dados ser muito grande, ele não consegue listar. Alguém sabe de algum meio de resolver isso?
  23. ILR master

    Data igual do facebook

    Fala galera, tudo bem? Tenho o seguinte codigo: class Data { public static function ExibirTempoDecorrido($date) { if(empty($date)) { return "Informe a data"; } $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década"); $duracao = array("60","60","24","7","4.35","12","10"); $agora = time(); $unix_data = strtotime($date); // check validity of date if(empty($unix_data)) { return "Bad date"; } // is it future date or past date if($agora > $unix_data) { $diferenca = $agora - $unix_data; $tempo = "atrás"; } else { $diferenca = $unix_data - $agora; $tempo = "agora"; } for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) { $diferenca /= $duracao[$j]; } $diferenca = round($diferenca); if($diferenca != 1) { $periodos[$j].= "s"; } return "$diferenca $periodos[$j] {$tempo}"; } } Funciona redondinho se o valor retornado for de algumas horas, mas... Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha if($diferenca != 1) { $periodos[$j].= "s"; } Quero que modre: 2 meses atrás e não 2 mess atrás. Espero que tenham entendido. Valeu
  24. Caros amigos, saudações. Apenas uma pequena dúvida. Precisei realizar uma alteração de Validação de usuário/empresa. Antes essa linha de código estava assim: <input type="hidden" id="idEmps" name="idEmps" value="<?php echo $emprsa->idEmpresas; ?>" /> Precisei colocar [0] para poder localizar a Empresa Logada. <input type="hidden" id="idEmps" name="idEmps" value="<?php echo $emprsa[0]->idEmpresas; ?>" /> Agora, o sistema dá erro e não grava. minha dúvida: qual a função do [0] e como consigo corrigir ? Grato, Cesar
  25. First

    Sistema de Login

    Olá a todos! Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código? <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form> Desde já obrigado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.