Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

santans

Gerador de paginas web

Recommended Posts

Desejo saber como crio um gerador PHP de paginas html.

Por exemplo quando alguém cria um perfil no meu site, o gerador criaria uma pagina no sistema a partir de uma pagina pre molde já feita.

no caso seria para um e-comerce.

Outro exemplo quando eu cadastro um produto e é gerada uma pagina para este tal produto.

Se houver algum sistema mais simples para me indicarem fiquem a vontade.

Nota: Não sou um programador experiente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, com php é simples desde-que saiba como salvar os registros em ordem em um banco de dados.

48 minutos atrás, santans disse:

a partir de uma pagina pre molde já feita

Nada mais é que criar a página com o layout e tudo mais, sem as informações de qualquer perfil.

Então ao acessar a página você busca os dados daquele usuário e preenche os campos com as informações daquele perfil.

 

Não tem uma forma fácil de explicar, espero que tenha compreendido, é criar uma pagina base onde os dados são colocados de acordo com os resultados de um consulta realizada.

Veja uma página assim para perfil de usuários, de um site que fiz:

Spoiler

<?php
require_once (__DIR__ . '/../../system/runtime.php');
$str = new StrClean();
$get = GlobalFilter::filterGet();
if (isset($get->action)) {
    $get->b = $get->action;
}
try {
    if (!isset($get->b)) {
        include (__DIR__ . '/default.php');
    } else {
        $profile = $str->clearUrl($get->b);
        $select = new Select();
        $select->selectQuery("register", "hash = :datauser", "datauser={$profile}");
        if ($select->selectError()) {
            throw new ConstException($select->selectError(), ConstException::SYSTEM_ERROR);
        } else if (!$select->selectCount()) {
            throw new ConstException('Dados inexistentes.', ConstException::NOT_FOUND);
        } else {
            $userData = $select->selectResult()[0];
            ?>
            <script src="lib/javascript/cidades-estados.js"></script>
            <div id="profile-data">
                <div class="font-large text-grey align-right margin-bottom-min page-title">
                    <?= ($userData->name == @$session->user->name) ? 'Meu Perfil' : 'Dados de ' . $str->longText($userData->name, 30); ?>
                </div>
                <div class="floating">
                    <div class="col-33 float-left">
                        <div class="profile-photo">
                            <?php if (empty($userData->photo)) { ?>
                                <img src="lib/images/perfil.jpg" alt="perfil" class="image-photo-big shadow" />
                            <?php } else { ?>
                                <img src="lib/uploads/<?= $userData->photo ?>?rand=<?= time(); ?>" class="image-photo-big" />
                                <?php
                            }
                            if (isset($session->user) && $session->user->id == $userData->id) {
                                ?>
                                <button class="btn-default button-block" onclick="maincore.modalGet('includes/upload_photo.inc.php', 'Foto', true);">Enviar Foto/Logo &nbsp; <i class="fa fa-picture-o"></i></button>
                            <?php } else if (isset($session->user) && $session->user->level >= 2) { ?>
                                <button class="btn-danger button-block text-white" onclick="maincore.modalGet('confirm/erase-photo.php?action=<?= $userData->hash; ?>', 'Apagar Foto', true)">Remover Foto &nbsp; <i class="fa fa-trash-o"></i></button>
                            <?php } ?>
                        </div>

                    </div>
                    <div class="over-not maximize-b font-default profile-desc">
                        <div class="row-pad">
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Nome</span>: <?= $userData->name ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">E-Mail</span>: <?= $userData->mail; ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Telefone</span>: <?= $userData->contact; ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Data de Registro</span>: <?= $str->invertDate($userData->joindate); ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Cidade</span>: <?= empty($userData->citie) ? 'Não Informado' : $userData->citie ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Estado</span>: <?= empty($userData->country) ? 'Não Informado' : $userData->country ?></div>
                            </div>
                            <div class="col-99 over-text">
                                <div class="input-line"><span class="bold">Endereço</span>: <?= empty($userData->district) ? 'Não informado' : $userData->district ?></div>
                            </div>
                            <?php if (isset($session->user) && ($session->user->id == $userData->id || $session->user->level >= 2)) { ?>
                                <div class="col-49 over-text">
                                    <div class="input-line"><span class="bold">Data de Revogação</span>: <?= $str->invertDate($userData->expire_date); ?></div>
                                </div>
                                <div class="col-49 over-text">
                                    <div class="input-line"><span class="bold">CPF/CNPJ</span>: <?= $userData->cpnj; ?></div>
                                </div>
                            <?php } ?>
                        </div>
                        <?php if (isset($session->user)) { ?>
                            <div class="floating margin-top">
                                <?php if ($session->user->id == $userData->id || $session->user->level >= 2) { ?>
                                    <div class="box-fluid-49b float-left padding-top-min">
                                        <div class="font-medium text-white">
                                            <button class="btn-info button-block" onclick="maincore.ajaxGet('profile-data', 'modules/includes/profile_edit.inc.php?action=<?= $get->b ?>&action_b=<?= $userData->hash ?>&rand=<?= time() ?>', null);">Editar Perfil &nbsp; <i class="fa fa-paste"></i></button>
                                        </div>
                                    </div>
                                    <?php
                                }
                                if (($session->user->id != $userData->id && $userData->level >= 2) || ($session->user->level >= 2 && $session->user->id != $userData->id)) {
                                    ?>
                                    <div class="box-fluid-49b float-left padding-top-min">
                                        <div class="font-medium text-white">
                                            <button class="btn-dark button-block" title="Enviar mensagem para <?= $userData->name ?>" onclick="maincore.ajaxGet('profile-data', 'modules/includes/send_msg.inc.php?action=<?= $userData->hash ?>', null)">Enviar Mensagem &nbsp; <i class="fa fa-envelope"></i></button>
                                        </div>
                                    </div>
                                <?php } ?>
                            </div>
                        <?php } ?>
                    </div>
                </div>
                <div class="margin-top">
                    <div class="bg-light padding-all-min">
                        <p class="font-medium bold">Serviço</p>
                        <p><?= $userData->job ?></p>
                    </div>
                    <div class="padding-all-min">
                        <?= empty($userData->service) ? 'Não há informações sobre o serviço prestado' : html_entity_decode($userData->service); ?>
                    </div>
                </div>
            </div>
            <script>
                function uploadPhoto() {
                    maincore.modalGet('modules/includes/upload_photo.inc.php', 'Foto do Perfil', true);
                }
            </script>
            <?php
        }
    }
} catch (ConstException $e) {
    switch ($e->getCode()) {
        case ConstException::SYSTEM_ERROR:
            echo ("<div class=\"align-center margin-tb-high font-jumbo text-red\">"
            . "<i class=\"fa fa-frown-o fa-5x\"></i>"
            . "<div class=\"padding-top\">Erro ao requisitar dados</p>Comunique ao administrador do sistema esse erro!"
            //. "<p>{$e->getMessage()}</p>" //Criar log de erros
            . "</div>");
            break;
        case ConstException::MISC_RETURN:
        case ConstException::NOT_FOUND:
            include (__DIR__ . '/not_found.php');
            break;
    }
}

 

 

Sobre gerar um arquivo para cada usuário, sim é possível e fácil de fazer.

Mas desaconselhável ficar sobrecarregando espaço com um coisa que pode se feita de forma mais prática como citei acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Omar~ disse:

Então, com php é simples desde-que saiba como salvar os registros em ordem em um banco de dados.

Nada mais é que criar a página com o layout e tudo mais, sem as informações de qualquer perfil.

Então ao acessar a página você busca os dados daquele usuário e preenche os campos com as informações daquele perfil.

 

Não tem uma forma fácil de explicar, espero que tenha compreendido, é criar uma pagina base onde os dados são colocados de acordo com os resultados de um consulta realizada.

Veja uma página assim para perfil de usuários, de um site que fiz:

  Ocultar conteúdo


<?php
require_once (__DIR__ . '/../../system/runtime.php');
$str = new StrClean();
$get = GlobalFilter::filterGet();
if (isset($get->action)) {
    $get->b = $get->action;
}
try {
    if (!isset($get->b)) {
        include (__DIR__ . '/default.php');
    } else {
        $profile = $str->clearUrl($get->b);
        $select = new Select();
        $select->selectQuery("register", "hash = :datauser", "datauser={$profile}");
        if ($select->selectError()) {
            throw new ConstException($select->selectError(), ConstException::SYSTEM_ERROR);
        } else if (!$select->selectCount()) {
            throw new ConstException('Dados inexistentes.', ConstException::NOT_FOUND);
        } else {
            $userData = $select->selectResult()[0];
            ?>
            <script src="lib/javascript/cidades-estados.js"></script>
            <div id="profile-data">
                <div class="font-large text-grey align-right margin-bottom-min page-title">
                    <?= ($userData->name == @$session->user->name) ? 'Meu Perfil' : 'Dados de ' . $str->longText($userData->name, 30); ?>
                </div>
                <div class="floating">
                    <div class="col-33 float-left">
                        <div class="profile-photo">
                            <?php if (empty($userData->photo)) { ?>
                                <img src="lib/images/perfil.jpg" alt="perfil" class="image-photo-big shadow" />
                            <?php } else { ?>
                                <img src="lib/uploads/<?= $userData->photo ?>?rand=<?= time(); ?>" class="image-photo-big" />
                                <?php
                            }
                            if (isset($session->user) && $session->user->id == $userData->id) {
                                ?>
                                <button class="btn-default button-block" onclick="maincore.modalGet('includes/upload_photo.inc.php', 'Foto', true);">Enviar Foto/Logo &nbsp; <i class="fa fa-picture-o"></i></button>
                            <?php } else if (isset($session->user) && $session->user->level >= 2) { ?>
                                <button class="btn-danger button-block text-white" onclick="maincore.modalGet('confirm/erase-photo.php?action=<?= $userData->hash; ?>', 'Apagar Foto', true)">Remover Foto &nbsp; <i class="fa fa-trash-o"></i></button>
                            <?php } ?>
                        </div>

                    </div>
                    <div class="over-not maximize-b font-default profile-desc">
                        <div class="row-pad">
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Nome</span>: <?= $userData->name ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">E-Mail</span>: <?= $userData->mail; ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Telefone</span>: <?= $userData->contact; ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Data de Registro</span>: <?= $str->invertDate($userData->joindate); ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Cidade</span>: <?= empty($userData->citie) ? 'Não Informado' : $userData->citie ?></div>
                            </div>
                            <div class="col-49 over-text">
                                <div class="input-line"><span class="bold">Estado</span>: <?= empty($userData->country) ? 'Não Informado' : $userData->country ?></div>
                            </div>
                            <div class="col-99 over-text">
                                <div class="input-line"><span class="bold">Endereço</span>: <?= empty($userData->district) ? 'Não informado' : $userData->district ?></div>
                            </div>
                            <?php if (isset($session->user) && ($session->user->id == $userData->id || $session->user->level >= 2)) { ?>
                                <div class="col-49 over-text">
                                    <div class="input-line"><span class="bold">Data de Revogação</span>: <?= $str->invertDate($userData->expire_date); ?></div>
                                </div>
                                <div class="col-49 over-text">
                                    <div class="input-line"><span class="bold">CPF/CNPJ</span>: <?= $userData->cpnj; ?></div>
                                </div>
                            <?php } ?>
                        </div>
                        <?php if (isset($session->user)) { ?>
                            <div class="floating margin-top">
                                <?php if ($session->user->id == $userData->id || $session->user->level >= 2) { ?>
                                    <div class="box-fluid-49b float-left padding-top-min">
                                        <div class="font-medium text-white">
                                            <button class="btn-info button-block" onclick="maincore.ajaxGet('profile-data', 'modules/includes/profile_edit.inc.php?action=<?= $get->b ?>&action_b=<?= $userData->hash ?>&rand=<?= time() ?>', null);">Editar Perfil &nbsp; <i class="fa fa-paste"></i></button>
                                        </div>
                                    </div>
                                    <?php
                                }
                                if (($session->user->id != $userData->id && $userData->level >= 2) || ($session->user->level >= 2 && $session->user->id != $userData->id)) {
                                    ?>
                                    <div class="box-fluid-49b float-left padding-top-min">
                                        <div class="font-medium text-white">
                                            <button class="btn-dark button-block" title="Enviar mensagem para <?= $userData->name ?>" onclick="maincore.ajaxGet('profile-data', 'modules/includes/send_msg.inc.php?action=<?= $userData->hash ?>', null)">Enviar Mensagem &nbsp; <i class="fa fa-envelope"></i></button>
                                        </div>
                                    </div>
                                <?php } ?>
                            </div>
                        <?php } ?>
                    </div>
                </div>
                <div class="margin-top">
                    <div class="bg-light padding-all-min">
                        <p class="font-medium bold">Serviço</p>
                        <p><?= $userData->job ?></p>
                    </div>
                    <div class="padding-all-min">
                        <?= empty($userData->service) ? 'Não há informações sobre o serviço prestado' : html_entity_decode($userData->service); ?>
                    </div>
                </div>
            </div>
            <script>
                function uploadPhoto() {
                    maincore.modalGet('modules/includes/upload_photo.inc.php', 'Foto do Perfil', true);
                }
            </script>
            <?php
        }
    }
} catch (ConstException $e) {
    switch ($e->getCode()) {
        case ConstException::SYSTEM_ERROR:
            echo ("<div class=\"align-center margin-tb-high font-jumbo text-red\">"
            . "<i class=\"fa fa-frown-o fa-5x\"></i>"
            . "<div class=\"padding-top\">Erro ao requisitar dados</p>Comunique ao administrador do sistema esse erro!"
            //. "<p>{$e->getMessage()}</p>" //Criar log de erros
            . "</div>");
            break;
        case ConstException::MISC_RETURN:
        case ConstException::NOT_FOUND:
            include (__DIR__ . '/not_found.php');
            break;
    }
}

 

 

Sobre gerar um arquivo para cada usuário, sim é possível e fácil de fazer.

Mas desaconselhável ficar sobrecarregando espaço com um coisa que pode se feita de forma mais prática como citei acima.

a sim entendi o que você quis dizer uma unica pagina que ao ser aberta carrega as informações do perfil que a pessoa que fez login, e as distribui sobre os campos ex: foto, nome, capa etc...

 

isso se aplica a produtos, sabe se na alura ensina isso eu tenho assinatura la

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Estou com uma dúvida, referente cálculo de valores em tempo real.

      Tenho uma rotina, que faz o cálculo, o problema é mostrar o resultado.

      Quero mostrar o RESULTADO assim: 0,00  ou  0.00

      Abaixo posto o código.
      jQuery('input').on('keyup',function(){ //Remover ponto e trocar a virgula por ponto var m = document.getElementById("pgRest").value; while (m.indexOf(".") >= 0) { m = m.replace(".", ""); } m = m.replace(",","."); //Remover ponto e trocar a virgula por ponto var j = document.getElementById("pgDsct").value; while (j.indexOf(".") >= 0) { j = j.replace(".", ""); } j = j.replace(",","."); m = parseFloat(jQuery('#pgRest').val() != '' ? jQuery('#pgRest').val() : 0); j = parseFloat(jQuery('#pgDsct').val() != '' ? jQuery('#pgDsct').val() : 0); //Mostra o Resultado em Tempo Real jQuery('#pgTroco').val(m - j); <<=== aqui estou errando })  
       
      Grato,
       
      Cesar
       
       
    • Por violin101
      Caro amigos, saudações.

      Tenho uma tabela escrita em JS que funciona corretamente.
       
      Minha dúvida:
      - como devo fazer para quando a Tabela HTML estiver vazia, exibir o LOGO da Empresa ?

      Abaixo posto o script:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'i' ) return;// Não é Ctrl+A, portanto interrompemos o script evt.preventDefault(); //Chama a Função Calcular Qtde X Valor Venda calcvda(); var idProdutos = document.getElementById("idProdutos").value; var descricao = document.getElementById("descricao").value; var prd_unid = document.getElementById("prd_unid").value; var estoque_atual = document.getElementById("estoque_atual").value; var qtde = document.getElementById("qtde").value; var vlrunit = document.getElementById("vlrunit").value; var vlrtotals = document.getElementById("vlrtotal").value; var vlrtotal = vlrtotals.toLocaleString('pt-br', {minimumFractionDigits: 2}); if(validarConsumo(estoque_atual)){ //Chama a Modal com Alerta. $("#modal_qtdemaior").modal(); } else { if(qtde == "" || vlrunit == "" || vlrtotal == ""){ //Chama a Modal com Alerta. $("#modal_quantidade").modal(); } else { //Monta a Tabela com os Itens html = "<tr style='font-size:13px;'>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='id_prds[]' value='"+idProdutos+"'>"+idProdutos+"</td>"; html += "<td width='47%' height='10'>"+ "<input type='hidden' name='descricao[]' value='"+descricao+"'>"+descricao+ "<input type='hidden' name='esp[]' value='"+prd_unid+"'> - ESP:"+prd_unid+ "<input type='hidden' name='estoq[]' value='"+estoque_atual+"'></td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='qtde[]' value='"+qtde+"'>"+qtde+"</td>"; html += "<td width='12%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrunit[]' value='"+vlrunit+"'>"+vlrunit+"</td>"; html += "<td width='14%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrtotal[]' value='"+vlrtotal+"'>"+vlrtotal+"</td>"; html += "<td width='12%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-uvas btn-remove-produto' style='margin-right:1%; padding:1px 3px; font-size:12px;' title='Remover Item da Lista'>"+ "<span class='fa fa-minus' style='font-size:12px;'></span></button></td>"; html += "</tr>"; $("#tbventas tbody").append(html); //Função para Somar os Itens do Lançamento somar(); $("#idProdutos").val(null); $("#descricao").val(null); $("#prd_unid").val(null); $("#qtde").val(null); $("#vlrunit").val(null); $("#vlrtotal").val(null); $("#idProdutos").focus(); //Se INCLUIR NOVO produto - Limpa a Forma de Pagamento $("#pgSoma").val(null); $("#pgRest").val(null); $("#pgDsct").val(null); $("#pgTroco").val(null); $("#tbpagar tbody").empty(); }//Fim do IF-qtde }//Fim do Validar Consumo });//Fim da Função btn-agregar  
      Grato,

      Cesar
       
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
×

Informação importante

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