[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem] | Sr.Herry Bgames Apresenta 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.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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).
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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:
Código:
----- CONFIG.PHP ------
$database="localhost:3307"; // SERVIDOR E PORTA UTILIZADA
$dbname="tutorial"; // BASE DE DADOS
$usuario="root"; // USUÁRIO DO MYSQL
$dbsenha=""; // SENHA DO MYSQL
$conexao=mysql_connect ($database, $usuario, $dbsenha);
if($conexao){
if (mysql_select_db($dbname, $conexao)){ print "";
}else{ print "Não foi possível selecionar o Banco de Dados"; }
}else{ print "Erro ao conectar o MySQL"; }
?>
----------
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: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] – Senha: 123456
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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.
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.
Código:
-----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).
Código:
-----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) { ?>
alert('Autorização inexistente/Senha inválida ou expirada.');history.back();
exit;
} else {
$_SESSION['usuario_id'] = mysql_result($result,0,'id');
$_SESSION['usuario_nome'] = mysql_result($result,0,'nome');
?>document.location = '../principal.php'}
mysql_close($conexao);
}
----------
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).
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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.
Código:
-----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).
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Código:
-----Linha 28 à Linha 35 -----
_editor_url = "htmlarea/";
_editor_lang = "en";
----------
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.
Código:
-----Linha 46 -----
[/b][/color][/font][font=Comic Sans Ms][color=green][b]
----------
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.
Código:
-----Linha 195 à Linha 198 -----
editor_generate('msg');
-----
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.
Código:
-----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..
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Código:
-----Linha 27 à Linha 31 -----
function Abrir_Pagina(URL,Configuracao) {
window.open(URL,'',Configuracao);
}
----------
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.
FOnte > [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Última edição por Sr.Herry em Seg 1 Out 2012 - 15:16, editado 2 vez(es)