Ferramentas de Utilizador

Ferramentas de Site


dev_web:php:criar_um_sistema_de_artigos

Criar um Sistema de Artigos

Este artigo necessita de mais informação / necessita de ser revisto

Tutorial de como criar um sistema de artigos simples

base_de_dados.php

<?php
 
  // Dados de login
 
  $hostado = "localhost"; //Normalmente é localhost 
  $base_de_dados = "nome_da_base_de_dados";
  $utilizador = "utilizador_da_db";
  $password = "password";
 
  $conectando = mysql_connect($hostado, $utilizador, $password) or die ('Erro ligando há base de dados MySql');
  mysql_select_db($base_de_dados);
?>

Em cima inserimos os dados para fazer a ligação à base de dados e fazemos a ligação

Criando a tabela no MySql

mysql_query ("CREATE TABLE `Artigos` 
  ( `id` INT NOT NULL AUTO_INCREMENT, `data` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, 
  `titulo` TEXT NOT NULL, `conteudo` TEXT NOT NULL, PRIMARY KEY (id) ) TYPE=myisam ; ");

Aqui criamos a tabela necessária para o sistema funcionar

artigo.php

<?php
  include 'base_de_dados.php';
 
  // se não for especificada o id listar
  if(!isset($_GET['id'])) {
    $self = $_SERVER['PHP_SELF'];
 
    $query = "SELECT id, titulo FROM Artigos ORDER BY id";
    $resultado = mysql_query($query) or die('Erro : ' . mysql_error()); 
 
    // Criando a lista de artigos
    $conteudo = '<ol>';
    while($row = mysql_fetch_array($resultado, MYSQL_NUM)) {
      list($id, $titulo) = $row;
      $conteudo .= "<li><a href="ver_artigo.php?id=$id">$titulo</a></li>rn";
    }
 
    $conteudo .= '</ol>';
 
    $titulo = 'Artigos';
  } else {
    // Obtendo informação da base de dados
    $query = "SELECT titulo, conteudo FROM Artigos WHERE id=".$_GET['id'];
    $resultado = mysql_query($query) or die('Erro : ' . mysql_error()); 
    $row = mysql_fetch_array($resultado, MYSQL_ASSOC); 
 
    $titulo = $row['titulo'];
    $conteudo = $row['conteudo'];
  } 
 
  mysql_close($conn);
?>
 
<html>
  <head>
    <title>Artigos</title>
  </head>
  <body>
    <h1 align="center"><?php echo $titulo; ?></h1>
    <?php 
      echo $conteudo;
      // Links para ver os artigos
      if(isset($_GET['id'])) { 
    ?>
    <p>&nbsp;</p>
    <p align="center"><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Lista de Artigos</a></p>
    <?php
      }
    ?>
    <div align="center" class="estilo3">(c) <a href="http://portugal-a-programar.org">Portugal-a-programar.org</a> - <b>Coder:</b> RevX</div>
 
  </body>
</html>
 
<?php
  include 'base_de_dados.php';
 
  // Para a cache crie na directoria dos php's a pasta cache e lá dentro 
  // o ficheiro index.html, mude para CHMOD 777
 
  $cacheDir = dirname(__FILE__) . '/cache/';
 
  if (isset($_GET['id'])) {
    $cacheFile = $cacheDir . '_' . $_GET['id'] . '.html';
  } else {
    $cacheFile = $cacheDir . 'index.html';
  } 
 
  if (file_exists($cacheFile)) {
    readfile($cacheFile);
    exit;
  }
 
  if(!isset($_GET['id'])) {
    $self   = $_SERVER['PHP_SELF'];
 
    $query  = "SELECT id, titulo FROM Artigos ORDER BY id";
    $resultado = mysql_query($query) or die('Erro : ' . mysql_error()); 
 
    $introducao = '<ol>';
    while($row = mysql_fetch_array($resultado, MYSQL_NUM)) {
      list($id, $titulo) = $row;
      $introducao .= "<li><a href="$self?id=$id">$titulo</a></li>rn";
    }
 
    $introducao .= '</ol>';
 
    $titulo = 'Artigos';
  } else {
    // Obter informação da base de dados
    $query  = "SELECT titulo, texto_intro, texto_completo FROM Artigos WHERE id=".$_GET['id'];
    $resultado = mysql_query($query) or die('Error : ' . mysql_error()); 
    $row    = mysql_fetch_array($resultado, MYSQL_ASSOC); 
 
    $titulo = $row['titulo'];
    $introducao = $row['texto_intro'];
    $desenvolvimento = $row['texto_completo'];
  } 
 
  mysql_close($conn);
 
?>

Aqui definimos o index dos artigos

criar_artigo.php

<html>
  <head>
    <title>Criar Artigo</title>
  </head>
  <body>
 
  <form method="post">
    <table width="100%" border="0" cellpadding="2" cellspacing="1" align="center">
      <tr> 
        <td width="100"><font color="#FF0000"><b>Titulo:</b></font></td>
        <td><input name="titulo" type="text" value="" size="53" /></td>
      </tr> 
      <tr> 
        <td width="100"><b>Conteúdo:</b></td>
        <td><textarea name="desenvolvimento" cols="50" rows="10"></textarea></td>
      </tr>
      <tr> 
        <td width="100">&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr> 
        <td colspan="2" align="center"><input name="gravar" type="submit" value="Gravar Artigo"></td>
      </tr>
    </table>
  </form>
 
  <?php
    if(isset($_POST['gravar'])) {
      $titulo   = $_POST['titulo'];
      $conteudo = $_POST['conteudo'];
 
      if(!get_magic_quotes_gpc()) {
        $titulo   = addslashes($titulo);
        $conteudo = addslashes($conteudo);
      }
      include 'base_de_dados.php';
 
      $query = " INSERT INTO Artigos (titulo, conteudo) ".
            " VALUES ('$titulo', '$conteudo')";
      mysql_query($query) or die('Erro ao ligar à Base de Dados');
 
      mysql_close($conn);
 
      echo "Artigo '$titulo' adicionado";
    }
?>
 
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    <div align="center" class="estilo3">(c) <a href="http://portugal-a-programar.org">Portugal-a-programar.org</a> - <b>Coder:</b> RevX</div>
 
  </body>
</html>

Aqui criamos o sitio onde vamos introduzir os artigos para eles serem adicionados.

ver_artigo.php

<?php
  include 'base_de_dados.php';
 
  /*
    Escolhendo a directoria onde se vai armazenar a cache
  */ 
  $cacheDir  = dirname(__FILE__) . '/cache/';
 
  /*
    Gerando o nome do ficheiro de cache neste caso será feito um index apartir dos ids
  */
  if (isset($_GET['id'])) {
    $cacheFile = $cacheDir . '_' . $_GET['id'] . '.html';
  } else {
    $cacheFile = $cacheDir . 'index.html';
  }    
 
  /* 
    Se o ficheiro em cache for encontrado envia-se para o cliente
  */
  if (file_exists($cacheFile) {
    header("Content-Type: text/html");
    readfile($cacheFile);
    exit;
  }
 
  /*
    Se o ficheiro de cache não for encontrado/Não existir
  */
 
  // se não for especificada o id listar
  if(!isset($_GET['id'])) {
    $self = $_SERVER['PHP_SELF'];
 
    $query = "SELECT id, titulo FROM Artigos ORDER BY id";
    $resultado = mysql_query($query) or die('Erro : ' . mysql_error()); 
 
    // Criando a lista de artigos
    $conteudo = '<ol>';
    while($row = mysql_fetch_array($resultado, MYSQL_NUM)) {
      list($id, $titulo) = $row;
      $conteudo .= "<li><a href="$self?id=$id">$titulo</a></li>rn";
    }
 
    $conteudo .= '</ol>';
 
    $titulo = 'Artigos';
  } else {
    // Obtendo informação da base de dados
    $query = "SELECT titulo, conteudo FROM Artigos WHERE id=".$_GET['id'];
    $resultado = mysql_query($query) or die('Error : ' . mysql_error()); 
    $row = mysql_fetch_array($resultado, MYSQL_ASSOC); 
 
    $titulo = $row['titulo'];
    $conteudo = $row['conteudo'];
  } 
 
  mysql_close($conn);
?>
<?php
  // iniciando buffering 
  ob_start();
?>
<html>
  <head>
    <title>
      <?php echo $titulo; ?>
    </title>
  </head>
  <body>
 
    <?php 
      echo $conteudo;
 
      // Links para ver os artigos
      if(isset($_GET['id'])) { 
    ?>
        <p>&nbsp;</p>
        <p align="center"><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Lista de Artigos</a></p>
        <?php
      }
        ?>
    <div align="center" class="estilo3">(c) <a href="http://portugal-a-programar.org">Portugal-a-programar.org</a> - <b>Coder:</b> RevX</div>
  </body>
</html>
<?php
 
  // obter buffer
  $buffer = ob_get_contents();
 
  //acabando com o buffer
  ob_end_flush();
 
  // criando o ficheiro de cache
  $fp = @fopen($cacheFile, "w");
  @fwrite($fp, $buffer);
  @fclose($fp);
?>

Aqui vemos os artigos, estando este intimamente ligado ao artigo.php

dev_web/php/criar_um_sistema_de_artigos.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)