webmaster

Sistema De Notícias Em PHP E MySQL

Olá, Somos criadores de conteúdo apaixonados por web design, programação, criação de websites e tecnologias digitais. O nosso website está online! Explore a nova versão beta, onde terá acesso a novos recursos e melhorias. A sua experiência e feedback são muito importantes para nós! Novos artigos, todas as semanas! Fique atento.
Artigos SEO

Artigos SEO

Search Engine Optimization

Artigos WordPress

Criação de websites.

Tutoriais

Ensino numa série de passos simples

Sistema De Notícias Em PHP E MySQL

Hoje falaremos sobre um tipo de sistema muito utilizado no dia a dia. O Sistema de Notícias.

Página Index

Dificilmente você encontra matérias na Internet contendo um passo a passo completo e explicativo. Tem sim: vários sistemas disponíveis com código pronto para você apenas copiar.

Nesta matéria comentaremos as partes mais importantes de cada script, visando facilitar seu aprendizado.

Passo 1: Estrutura de pastas

Como alguns já sabem, gosto de focar os sistemas que desenvolvo de forma limpa, prática e organizada.

Por este motivo, apresentamos abaixo a estrutura utilizada nas pastas deste Sistema:

pastas do site

OBS.: Na pasta

Passo 2: Criando as Tabelas na Base de Dados:

Antes de partirmos para a programação, abra o arquivo script-sql.txt (disponível no arquivo em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.

Em nossas matérias utilizamos como padrão o MySQLFront. Caso você queira utilizar este programa, clique em SQL Editor e cole o conteúdo do script (conforme imagem abaixo).

Criar Tabela MySQL

Passo 3: Script De Conexão

Tendo as pastas já criadas e as tabelas na base de dados geradas, você já pode dar início à Programação!

Crie o arquivo conexao.php e coloque dentro da pasta CONFIG.

Neste arquivo, você deverá disponibilizar o texto abaixo:


----- CONFIG.PHP ------

----------

Passo 4: Menu Gerencial – Formulário (index.php):

A página index.php apesar de ter uma aparência simples, é de fundamental importância para este sistema.

Através dela temos acesso ao menu gerencial!

OBS.: Para facilitar seus acessos, criamos o usuário abaixo:

Login: teste@teste.com – Senha: 123456

Login Sistema Notícias

Passo 5: Menu Gerencial – Autenticação (autenticacao.rotinas.php):

Esta será a página onde faremos todo o gerenciamento de usuários, isto é: Diremos ao Sistema quem deve ou não ter acesso à Área Gerencial.

Bem… estamos disponibilizando um script simples de acesso, porém, caso seja de seu interesse, você poderá melhorar este código.


-----Linha 02 e 03 -----
session_start();
include ("../config/conexao.php");
------------

Talvez esta seja a parte mais importante do código, pois se você não tiver este conteúdo em seu código, ele simplesmente não vai registrar a sessão, nem permitir a conexão à base de dados.


-----Linha 06 à Linha 08 -----
$cliente_username = $_POST["usuario"];
$cliente_password = $_POST["senha"];
$enviado = $_POST["enviado"];
---------------

Através das linhas acima você receberá as variáveis com o nome do usuário, senha de acesso e o status (neste caso, utilizaremos a condição enviado para reforçar na segurança).


-----Linha 10 à Linha 29 -----

if ($enviado == "posted"){

if (!isset($cliente_username) or !isset($cliente_password)) { echo "Erro!"; exit; }
if (empty($cliente_username) or empty($cliente_password)) { echo "Dados inválidos!"; exit; }

$query = "select * from tbl_usuarios where email = '$cliente_username' and senha = '$cliente_password'";
$result = mysql_query($query);
$number = mysql_num_rows($result);

if ($number==0) { ?>

Nas linhas acima o script fará uma validação completa, verificando se o usuário e a senha informado existem.

Antes disso, ele só fará a leitura se a variável $enviado (exemplo da linha 6 à linha 8) tiver o valor posted.

Caso este valor (que será passado através do método POST) não seja o informado, ele sequer fará a leitura no demais.

Nas linhas a seguir (após ele validar a variável $enviado) o script fará uma série de verificações, finalizando ao registrar as sessões para o ID e NOME do Usuário selecionado. Além disso ele fará seu direcionamento à página principal.php.

Passo 6: Menu Gerencial – Página Principal (principal.php):

Esta será a página principal do sistema, onde teremos acesso às demais a serem gerenciadas (conforme você pode ver na imagem abaixo).

Menu Principal

OBS.: Apesar de também estar disponível no Sistema (no arquivo em anexo), para não tomar muito seu tempo, falaremos nesta matéria apenas dos itens Cadastrar Notícia e Listar Notícias.

Certamente os comentários diversos disponíveis nesta matéria sanarão qualquer dúvida que você tenha quanto aos demais arquivos.


-----Linha 02 à Linha 11 -----
session_start();
if (empty($_SESSION['usuario_id'])){
echo "Acesso negado!";
exit;
}else{
include('config/conexao.php');

$usuario_id = $_SESSION['usuario_id'];
$usuario_nome = $_SESSION['usuario_nome'];
}
------------

Neste trecho do script faremos uma validação!

Se o ID e NOME do usuário tiver em uso nsta sessão, ele deverá lhe dar acesso, caso não esteja em uso ele deverá restringir o acesso.

Fará acesso também ao script conexao.php (responsável pela conexão ao banco de dados).

Após isto, o sistema fará algumas verificações simples neste script, só atentando para o botão excluir (onde ele deverá direcionar seu acesso ao script logout.php (responsável pela exclusão da sessão).

Passo 7: Menu Gerencial – Cadastrar Notícia (noticias_cadastrar.php):

Esta é a página responsável pelo cadastro da notícia (conforme você pode ver na imagem disponível abaixo).

Formulário Inserção Notícia


-----Linha 28 à Linha 35 -----



----------

O trecho acima chama os scripts responsáveis pelo funcionamento do Editor de Textos.

OBS.: Veja que ele chama os scripts a seguir: javascript.js, htmlarea.js, jscript.js e a pasta htmlarea.


-----Linha 46 -----

----------

Apesar do trecho acima ser muito utilizado (por tratar-se do FORM), fiz questão de comentar esta linha, por ter o enctype.

Fazendo uso do multipart/form-data será possível efetuar o envio de arquivo (FILE) ao Servidor.


-----Linha 195 à Linha 198 -----


-----

O Javascript acima trás ao TEXTAREA o Editor de Textos personalizado.

Passo 8: Menu Gerencial – Script Notícias (script_noticias.php):

Trata-se de um script exclusivo que deverá receber os scripts tratados enviar ao banco de dados, devendo após este inserir, alterar ou excluir o conteúdo.

OBS.: Para saber mais sobre este script, sugerimos verificá-lo na íntegra, dentro da pasta ADMIN.


-----Linha 25 à Linha 29 -----

$acao = $_GET['acao'];

switch ($acao) {

case cadastrar_categoria:
----------

Assim como os demais scripts, o script_noticias.php também tem o conteúdo padrão para manter sua segurança; porém, até para facilitar seu gerenciamento, recebe por método GET o motivo da entrada (exemplo: alterar, cadastrar, cadastrar_categoria, excluir) e por método POST receberá os valores a serem manipulados.

OBS.: Após a inserção, edição ou exclusão, seja qual for o comando utilizado, o script fará o redirecionamento para uma outra página.

Passo 9: Menu Gerencial – Listar Notícia (noticias_listar.php):

Através desta página você poderá de forma prática e simples listar todas as notícias cadastradas, além de poder visualizá-las em janela popup, podendo editá-las ou efetuar sua exclusão a qualquer momento..

Menu Listar Notícias


-----Linha 27 à Linha 31 -----


----------

No trecho acima você chamará a página externa noticias_visualizar.php. Esta página deverá abrir a notícia selecionada, sendo possível visualizar até mesmo a imagem inserida.


-----Linha 203 à Linha 205 -----

','scrollbars=yes,width=700,height=800')">

----------

O trecho acima completa o que comentamos da linha 27 à linha 31, abrindo a página noticias_visualizar.php.

Passo 10: Página Externa – Index (index.php):

Será a área onde disponibilizaremos erá a página principal do sistema, onde teremos acesso às demais a serem gerenciadas (conforme você pode ver na imagem abaixo).


-----Linha 13 à Linha 24 -----

$query_noticias = "select * from tbl_noticias where status = '1' limit 8";
$rs_noticias = mysql_query($query_noticias);

while($campo_noticias = mysql_fetch_array($rs_noticias)){

$id_noticia = $campo_noticias['id_noticia'];
$data_noticia = $campo_noticias['data'];
$titulo_noticia = $campo_noticias['titulo'];
$descricao_noticia = $campo_noticias['descricao'];
$texto_noticia = $campo_noticias['msg'];
$fonte_noticia = $campo_noticias['legenda'];
$imagem_noticia = $campo_noticias['nome_arquivo'];
----------

No trecho acima o SELECT busca todas as notícias com status = 1, limitando a busca a 8 registros.

Após isto, utilizaremos o comando WHILE para retornar os registros através das variáveis acima definidas (um após o outro).

Passo 11: Página Externa – Descrição de Notícia (noticias-descricao.php):

Através desta página você poderá visualizar a notícia, visualizando-a por inteiro (título, descrição, notícia, imagem e fonte da notícia).

Página Da Notícia

OBS.: Não vamos inserir a descrição da notícia aqui, para não prolongar mais a matéria, porém, te aconselho a verificar a página noticias-descricao.php (disponível em anexo), onde você poderá visualizar o script por inteiro.

Passo 12: Página Externa – Últimas Notícias (noticias.php):

Através desta página você poderá visualizar as últimas 50 notícias cadastradas no Sistema, podendo encontrá-las facilmente através da data de cadastro e descrição.

Página Index

OBS.: Você poderá alterar esta página, inserindo um buscador e contador de páginas!

Ficamos por aqui em mais uma matéria! Esperamos tê-lo ajudado em algo...

Envie-nos suas dúvidas e dê sugestões para as próximas matérias! Nosso compromisso é lhe ajudar!

DOWNLOAD: Descarregue o código utilizado neste tutorial: Sistema De Notícias Em PHP E MySQL, em formato .zip.

1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 5.00 out of 5)

Deixe o seu comentário, participe!

169 Responses

  1. Olá, adaptei o frontend para minha necessidade e funcionou legal. Obrigado por compartilhar o conhecimento.

  2. Cara, eu submeti os dados no site e funcionou legal.
    Muitíssimo obrigado!
    Me envie seu dados para que eu possa mencionar os direito do autor.

    Att,
    Gabriel Augusto

  3. Olá,

    Consegui fazer o sistema funcionar 100%, porém queria realizar apenas uma alteração, As noticias estão em modo decrescente ex: 1° noticia postada ontem 01/01/2016, a noticia abaixo é a mais recente sendo postada dia 02/01/2016, É possível deixar ao contrário?
    colocando a mensagem mais recente por Primeiro(1°) ? Obrigado.

Leave a Reply to Fabio Cancel reply

Your email address will not be published. Required fields are marked *


Versão Beta

Estamos a mudar

Olá, Somos criadores de conteúdo apaixonados por web design, programação, criação de websites e tecnologias digitais. Ajudamos os nossos clientes a levar o conteúdo certo às pessoas certas, criando artigos e recursos que facilitam a criação e otimização de websites.

Artigos Populares

Guia Prático Sobre Segurança Do Joomla

Dicas para diminuir substancialmente o número de vetores de ataque ao Joomla! Proteja o seu trabalho!

Os Segredos Do Sucesso Na Internet

A responsabilidade. O querer. O erro e a experimentação. O social. A memória da internet. Ser quem você é.

38 Ideias Espetaculares Para Sites De Empresas

Encontre inspiração nestes 45 exemplos de sites de empresas para criar o site da sua empresa.

Sistema De Notícias Em PHP E MySQL

Hoje falaremos sobre um tipo de sistema muito utilizado no dia a dia. O Sistema de Notícias. Dificilmente você encontra matérias na Internet contendo um