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.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por ILR master
      Fala pessoal, tudo bem?
       
      Eu tenho o seguinte código:
       
      <script>
         $(function(){
      var jElement = $('.fixar_banner');
      $(window).scroll(function(){
          if ( $(this).scrollTop() > 120 ){
              jElement.css({
                  'position':'fixed',
                  'top':'10px'
              });
          }else{
              jElement.css({
                  'position':'relative',
                  'top':'auto'
              });
          }
      });
      });
      </script>
       
      Porém, eu quero que a div fique fixa até que outro elemento apareça na tela, tipo o rodapé da página por exemplo. É mais ou menos como a página de notícia do uol.
      https://noticias.uol.com.br/internacional/ultimas-noticias/2025/01/19/sonho-americano-brasileiros-moram-em-carro-e-buscam-comida-no-lixo-nos-eua.htm
       
      Espero ter sido claro.
       
      Obrigado :)
       
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
×

Informação importante

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