Como Criar um Site em PHP

2Comentários
Como Criar um Site em PHP

Continuando a série de posts que falo sobre a criação de sites, vou mostrar a você neste post Como Criar um Site em PHP.

PHP é, atualmente, a principal linguagem de programação utilizada em aplicações web. Os principais sites e plataformas estão sendo construídos em PHP. Então, se você pretende ter criar um site atual e encontrar bastante suporte (até gratuito) na internet, o PHP é uma excelente escolha.

Comparativo das Linguagens de Desenvolvimento Web

No entanto, se você quer mesmo criar um site em PHP, você pode ter que decidir entre: Criar um site PHP puro, criar um site PHP utilizando um Framework ou Criar um site PHP usando um CMS open-source. Mas, claro, você pode criar o seu próprio sistema de gerenciamento de conteúdo (CMS), e é isso que vou mostrar a você neste artigo.

Sempre gosto de contar sobre minhas experiências, minha história, acho que isso pode ajudar você a decidir sobre algumas coisas. Assim, gostaria de dizer que, durante algum tempo, eu criei sites usando PHP puro. Depois de um tempo, conforme os projetos foram crescendo e outras necessidades foram surgindo, passei a utilizar Frameworks. Nas duas formas, eu utilizei o PHP para criar meu próprio CMS. Acho que um site dinâmico, sem um gerenciador de conteúdo, não vai ser interessante para você.

Atualmente, eu não utilizo nem o PHP puro e nem Frameworks, utilizo o WordPress – Um excelente CMS open-source, escrito em PHP, que facilita demais a criação de sites. E mesmo que não domine o WordPress, você não vai ter uma curva de aprendizado tão grande. No final do post, vou falar mais sobre o por que eu escolhi o WordPress.

Então, vamos ver Como Criar um Site em PHP, melhor, vamos ver como inciar a criação do seu próprio CMS.

Para isto, vamos criar uma Classe PHP para integrar o PHP e o MySQL – que é o principal banco de dados que utilizamos com o PHP – e para mostrar a você o básico de um CMS. Vale dizer que você vai precisar entender alguma coisa de PHP, então para você não se sentir perdido, recomendo alguns recursos e dou o link para baixar os arquivos deste post no final.

Construindo a Classe PHP

Então, nosso primeiro passo é criar a classe PHP para o nosso CMS básico. Vamos criar um arquivo chamado de “CMS.php”, colocá-lo em uma pasta chamada “_class” e inserir o código abaixo:

<?php
class CMS {
  var $host;
  var $usuario;
  var $senha;
  var $bd;
  public function display_public() {}
  public function display_admin() {}
  public function gravar() {}
  public function conectar() {}
  private function criaBD() {}
}
?>

No código acima, estamos trabalhando com 4 variáveis e 5 métodos. Estamos utilizando aqui o PHP com orientação a objetos, para facilitar a compreensão do código, deixá-lo mais limpo, e porque acredito que seja a melhor prática para se trabalhar com PHP.

Variáveis PHP

As quatro variáveis que estamos utilizando acima são para criarmos a conexão com o banco de dados: $host, $usuario, $senha e $bd. Por enquanto, vamos deixar tudo vazio e partir para a criação do nosso banco de dados através do método “CriaBD()“.

Criando Tabelas no Banco de Dados

Vamos executar um comando MySQL para ver se a tabela “artigos” existe, caso contrário, ela cria a tabela:

private function criaBD() {
  $sql = <<<MySQL_QUERY
    CREATE TABLE IF NOT EXISTS artigos (
    id INT(11) NOT NULL AUTO_INCREMENT,
    titulo VARCHAR(150),
    conteudo TEXT,
    data VARCHAR(100),
    PRIMARY KEY (id)
    )
  MySQL_QUERY;
  return mysql_query($sql);
}

Conectando ao Banco da Dados

Agora que temos a função que cria tabelas no banco de dados, vamos trabalhar na função “conectar()” que vai permitir nosso site se conectar com o Banco de Dados:

public function conectar() {
    mysql_connect($this->host,$this->usuario,$this->senha) 
        or die("Não foi possível conectar. " . mysql_error());
    mysql_select_db($this->bd) 
        or die("Não foi possível selecionar o BD. " . mysql_error());
    return $this->criaBD();
}

Observe que utilizamos duas funções do próprio PHP: mysql_connect() para conectar ao servidor de banco de dados e mysql_select_db() para se certificar de operar com o banco de dados correto. Você pode perceber que ao utilizar as duas funções utilizamos também a função “die()“, para que se algo der errado, o script possa nos notificar sobre o erro de forma adequada.

Observe também que existe uma sequência lógica: Primeiros nos conectamos ao servidor, depois “setamos” o banco de dados que vamos trabalhar, em seguida, executamos a função “CriaBD()”, para criar as tabelas necessárias no Banco de Dados.

Nota: É importante que você utilize o “IF NOT EXISTS“, já que este código será executado a cada execução.

Criando um Formulário

Então, se você seguiu o passo a passo até aqui, nós já teremos um banco de dados e uma tabela esperando pelos dados que você vai inserir. Então, precisamos criar um formulário aonde estes dados serão inseridos e enviados ao banco de dados.

public function display_admin() {
 return <<<ADMIN_FORM
    <form action="{$_SERVER['PHP_SELF']}" method="post"> 
    
     <label for="titulo">Título:</label><br />
     <input name="titulo" id="titulo" type="text" maxlength="150" />
     <div class="clear"></div>
     
     <label for="conteudo">Conteúdo:</label><br />
     <textarea name="conteudo" id="conteudo"></textarea>
     <div class="clear"></div>
     
     <input type="submit" value="Criar Post!" />
     </form>
     
     <br />
     
     <a href="blog.php">Voltar para Home</a>
    ADMIN_FORM;
 }

Veja que é uma função simples. Estamos apenas criando um formulário HTML.

Um detalhe é que utilizamos uma variável pré-definida ($_SERVER[‘PHP_SELF’]) no atributo “action” do formulário, para que o formulário seja enviado para o próprio arquivo onde estará inserido. Isto é útil porque você não precisa inserir cada “URL” se for reutilizar a função.

Outra coisa que você vai reparar é que estamos utilizando uma sintaxe do PHP chamada Heredoc – Leia sobre isso aqui.

Inserindo os Dados no Banco de Dados

Agora já temos quase tudo que precisamos, falta gravar os dados no banco de dados que serão inseridos através do formulário. Vamos agora utilizar o método “gravar()”:

public function gravar($p) {
    if ( $_POST['titulo'] )
        $titulo = mysql_real_escape_string($_POST['titulo']);
    if ( $_POST['conteudo'])
        $conteudo = mysql_real_escape_string($_POST['conteudo']);
    if ( $titulo && $conteudo ) {
        $data = time();
        $sql = "INSERT INTO artigos (titulo,conteudo,data) VALUES('$titulo','$conteudo','$data')";
        return mysql_query($sql);
    } else {
        return false;
    }
}

Neste código, estamos passando os dados do formulário utilizando a varíavel “$p” como argumento da função “gravar()“, através do método post.

Outra coisa que estamos fazendo é testando (estrutura de controle) se os valores foram passados corretamente. Também usamos a função “mysql_real_escape_string()” para formatar adequadamente o valor da variável, e por medidas de segurança também.

Na variável “$data” estamos usando a função “time()” que trabalha com o timestamp do Unix.

Exibindo os Dados Gravados

Se tudo deu certo até aqui, já temos dados gravados no nosso banco de dados. Agora, precisamos mostrar estes dados na tela. Para isto, vamos utilizar o método “mostrar()“. Este método pode ser um pouco mais complexo.

public function display_public() {
    $q = "SELECT * FROM artigos ORDER BY data DESC LIMIT 3";
    $r = mysql_query($q);
    if ( $r !== false && mysql_num_rows($r) > 0 ) {
        while ( $a = mysql_fetch_assoc($r) ) {
            $titulo = stripslashes($a['titulo']);
            $conteudo = stripslashes($a['conteudo']);
            $entry_display .= <<<ENTRY_DISPLAY
            <div class="post">
                <h2>
                $titulo
                </h2>
                <p>
                $conteudo
                </p>
            </div>
            ENTRY_DISPLAY;
        }
    } else {
        $entry_display = <<<ENTRY_DISPLAY
        <h2> Este Site está em Construção </h2>
        <p>
        Clique no link para adicionar novos posts!
        </p>
        ENTRY_DISPLAY;
    }
    $entry_display .= <<<ADMIN_OPTION
        <p class="admin_link">
        <a href="{$_SERVER['PHP_SELF']}?admin=1">Add Novo Post</a>
        </p>
        ADMIN_OPTION;
    return $entry_display;
}

Começamos fazendo a integração do PHP com o Banco de Dados, através de uma instrução SQL. Usamos o “SELECT” para consultar (query) a tabela, e isto nos retornará um resultado (resource), já que também utilizamos a função “mysql_query()“.

No entanto, apenas isto não vai mostrar os resultados da forma que queremos. Então, vamos trabalhar com uma matriz (array). A variável “$r” está recebendo os dados da tabela do banco de dados e gerando um array. Usamos a função “mysql_fetch_assoc()” para atribuir a variável “$a” os dados associativos. Mas, esta função só nos dá uma linha de cada vez, por isso, vamos utilizar um loop “while“.

Estamos verificando também se os dados foram retornados, e a função “stripslashes()” para tratar os dados que foram inseridos anteriormente no banco de dados. E, basicamente isto já nos retorna o que precisamos, mostrando os dados na tela.

É isso, você acabou de programar uma classe simples para criar um site PHP utilizando seu próprio CMS. Agora, você poderia experimentar criar outros métodos, funções e páginas para o site.

Usando a Classe PHP

Você criou a classe e está pronto para usá-la. Então, vamos criar um arquivo separado e chamar de “blog.php“. Você vai colocar este arquivo na pasta raiz do seu site.

Então, vamos inserir o código HTML primeiro:

<!DOCTYPE html>
    <html lang="en">
    <head>
        <title>Meu CMS</title>
    </head>
    <body>
    </body>
</html>

Agora, vamos inserir um pouco de PHP dentro da tag “<body>” que vai chamar a nossa classe:

<?php
 
 include_once('_class/CMS.php');
 $obj = new CMS();
/* CHANGE THESE SETTINGS FOR YOUR OWN DATABASE */
 $obj->host = 'localhost';
 $obj->usuario = 'usuario';
 $obj->senha = 'senha';
 $obj->bd = 'bancodedados';
 $obj->conectar();
 
 if ($_POST)
 $obj->gravar($_POST);
 
 echo ( $_GET['admin'] == 1 ) ? $obj->display_admin() : $obj->display_public();
 
 ?>

Então, o que estamos fazendo é incluir (include) o arquivo da classe. Em seguida, instanciamos o nosso objeto através de “new CMS()“. Depois disso, vamos informar os dados de conexão do banco de dados através das nossas variáveis. Utilizaremos o método “conectar()” para fazer a conexão, propriamente dita.

Depois de conectado ao banco, vamos verificar se algum formulário está sendo enviado. Para isto, utilizamos utilizamos uma condição para a variável “$_POST“. Se for verdadeiro, vamos executar o método “gravar()“.

E pronto! Temos nosso próprio CMS iniciado para Criar um Site em PHP.

Eu Amo PHP

Conclusão

Vimos neste artigo o início da criação de sites em PHP, onde você terá total controle e poderá fazer o que quiser. Quero aproveitar e dizer que estes códigos só foram mostrados para fins de demonstração e não me responsabilizo por seu uso. Você terá que se preocupar com outros aspectos, especialmente questão de segurança e autenticação.

Agora, se você realmente quer criar sites em PHP e você não tem pretensão em ser uma referência de desenvolvimento web PHP ou criar um sistema que leve seu nome e seja comercializado no futuro, enfim, se você não pretende fazer nada tão grandioso, apenas criar um site PHP para uso pessoal ou profissional, recomendo fortemente que utilize um CMS pronto e open-source, como o WordPress.

Estes sistemas já oferecem muitos recursos prontos e com um pouco de codificação extra poderão entregar exatamente o que você espera. O WordPress tem mais 30 mil plugins gratuitos e outros milhares de plugins pagos que atendem a quase toda demanda necessária. Eu, particularmente, preciso muito pouco de desenvolver algo tão personalizado.

Recursos

Agora é com você…

Se você é empresário, empreendedor, uma startup ou investidor digital, recomendo que você invista um pouco no seu negócio e obtenha ajuda profissional. “Perder” tempo aprendendo como criar sites em PHP ou criar outros tipos de sites, pode não ser a opção mais inteligente e lucrativa.

Se você quer uma consultoria gratuita sobre o que é melhor para o seu negócio, clique aqui!

Espero que este artigo tenha ajudado você a encontrar o caminho para a criação do seu site. Então, deixe-me saber nos comentários, sobre seus pensamentos, considerações, críticas ou algo que seria importante e esqueci de mencionar. Ok?

Te vejo no próximo post,

Consultor de Marketing Digital, amante do Empreendedorismo Digital, Criador de alguns projetos digitais. Tem um caso de amor com o WordPress.

Orçamento Grátis

Oferecemos as melhores soluções à preços acessíveis. Ajudamos pequenos negócios a melhorarem drasticamente seus resultados e a competirem pela primeira página do Google.

2Comentários
    • Rafael
    • 11/13/2016
    Responder

    muito bom o artigo. voltarei para ler com mais calma !

Leave a Comment

Veja mais conteúdo!

Ver todos os posts...