Ir para conteúdo

Notícias Com Painel De Controle E Login


Mattew

Posts Recomendados

Bom, estava sem nada pra fazer hoje decidi desenvolver um sistema de Notícias administrado por Painel de Controle com Login e Banco de Dados MySql. O painel é simples, porém eficiente e prático. Não detalhei muito pois fiz rápido >.< Então não tem nada de CSS, cores e fontes legais. Mas é um grande quebra-galho para postar notícias de forma fácil e rápida!

 

O Painel de Controle serve para:

 

  • Trocar Login, Senha e Nome
  • Cadastrar Notícias
  • Administrar Notícias Cadastradas (Editar e Deletar)

 

Dados Padrões do Painel de Controle: (podem ser alterados no painel)

Login: root

Senha: 1234

Nome: XTibia

 

Quem quiser fazer o download completo do código somente baixe aqui:

Clique Aqui

 

Caso você deseje fazer a instalação manual, isto é, criando os arquivos PHP através dos códigos que vou colar aqui. No fim do tópico terá a aba Instalação e Integração.

 

Instalação Manual

 

Primeiro vamos criar um banco de dados mysql, escolha o nome de sua preferência, e neste banco de dados importe o arquivo database.sql ou execute o comando sql:

 

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE TABLE IF NOT EXISTS `usuarios` (
 `ID` int(11) NOT NULL AUTO_INCREMENT,
 `LOGIN` varchar(50) NOT NULL,
 `SENHA` varchar(15) NOT NULL,
 `NOME` varchar(50) NOT NULL,
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ;

INSERT INTO `usuarios` (`ID`, `LOGIN`, `SENHA`, `NOME`) VALUES
(1, 'root', '1234', 'XTibia');

CREATE TABLE IF NOT EXISTS `noticias` (
 `ID` int(11) NOT NULL AUTO_INCREMENT,
 `TITULO` varchar(50) NOT NULL,
 `NOTICIA` text,
 `AUTOR` varchar(50) NOT NULL,
 `DATA` varchar(50) NOT NULL,
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ;

 

Após a importação ter sido um sucesso, já pode sair do phpMyAdmin ou qualquer outra ferramenta que use para administrar seus bancos de dados.

 

Vá para pasta que quer instalar o sistema de notícias e crie o arquivo conexao.php:

 

<?php
$ip = "localhost"; //Seu ip, se for o mesmo que vai rodar o site, deixe localhost ou 127.0.0.1
$login = "root"; //Seu login do mysql
$senha = ""; //Sua senha do mysql, eu não tenho senha  é tudo local
$db = "noticias"; //Nome do banco de dados mysql

$conexao =  mysql_connect("$ip","$login","$senha"); // ip, login e senha
if($conexao)
{       if( !  mysql_select_db("$db",$conexao)  )     // nome do banco de dados
      {             die( mysql_error($conexao)    );         }    }
   else      {         die('Não foi possível conectar ao banco de dados.');     }
?>

 

Obs.: Se quiser já configure seu IP, Login, Senha e Banco de Dados do MySql, de qualquer maneira no final faremos isso. Não tire as aspas, coloque dentro das aspas.

 

Agora vamos criar onde e como serão exibidas as notícias, o arquivo noticias.php:

 

<?php
include('conexao.php');

$sql = "SELECT * FROM noticias ORDER BY id DESC";
$query = mysql_query($sql,$conexao);
$rows = mysql_num_rows($query);

if($rows > 0){
echo "<h1>Notícias</h1>";
for($x = 0; $x < $rows; $x++)
{
$titulo = mysql_result($query,$x,'titulo');
$autor = mysql_result($query,$x,'autor');
$data = mysql_result($query,$x,'data');
$noticia = mysql_result($query,$x,'noticia');
$noticia = str_replace("\n",'<br/>',$noticia);

echo "
<h3>$titulo</h3>
Postado por $autor em $data
<br/>
$noticia
";//Personalize a forma como quer que as notícias apareçam 

}


}else{
echo "Não há notícias cadastradas";
}


?>

 

Obs.: Com um pouco de conhecimento HTML, pode modificar o que está dentro da echo onde está escrito Título, mas tudo dentro das aspas e sem apaga-las. Assim você pode personalizar a maneira como as notícias aparecerão.

 

Agora vamos para o Painel Administrativo de Notícias.

 

Vamos começar pelo formulário de login, crie o arquivo login.php:

 

<title>Login</title>
<center><form action="login2.php" method="post">
<table>
<tr><h3>Painel para Cadastro de Notícias</h3><b>Login</b></tr>
<tr><td>Usúario:</td><td><input type="text" name="usuario"/></td></tr>
<tr><td>Senha:</td><td><input type="password" name="senha"/></td></tr>
<tr><td><input type="submit" value="Logar-se"/></td></tr>

</form></center>

 

E o login2.php:

 

<?php

include('conexao.php');

session_start ();
session_register('logado');

$usuario = $_POST['usuario'];
$senha = $_POST['senha'];

$sql = "SELECT * FROM usuarios WHERE LOGIN = '$usuario' and SENHA = '$senha' ";
$query = mysql_query($sql,$conexao);
$rows = mysql_num_rows($query);

if ($rows > 0)
{
  $_SESSION['logado'] = 'S';
  echo "<script>self.location = 'admin.php'</script>";
}
else
{
  $_SESSION['logado'] = 'N';
  echo '<center>Úsuario ou senha incorreta.<br/><a href="login.php">Voltar</a></center>';
}


?>

 

Agora ao painel administrativo, crie o admin.php (ele é um pouco grande):

 

<?php
/*
Painel Admin de Notícias
Criado por Mattew
XTibia.com
*/
include('conexao.php');
//valida login   INICIO
       session_start ();

  if ((  !  isset($_SESSION['logado'])   )     OR
      (           $_SESSION['logado'] != 'S')      )
  {
      header ('location: login.php');
      exit;
  }
//valida login FIM
$pagina = $_GET['pagina'];
if(empty($pagina))
{
echo "O que deseja fazer?
<ul>
<li><a href='admin.php?pagina=dados'>Mudar seus dados/senha</a></li>
<li><a href='admin.php?pagina=cadsatrar_noticia'>Cadastrar Notícia</a></li>
<li><a href='admin.php?pagina=administrar_noticias'>Administrar Notícias</a></li>
<li><a href='admin.php?pagina=sair'>Sair</a></li>
</ul>
Desenvolvido por Mattew";
}  else { echo "<a href='admin.php'>Voltar para Admin Principal</a><br/><br/>"; }

if($pagina == 'sair')
{
session_start();
session_destroy();
echo "Sessão encerrada.";
}

if($pagina == "dados")
{
$sql = "SELECT * FROM usuarios";
$query = mysql_query($sql,$conexao);

$id = mysql_result($query,0,'id');
$login = mysql_result($query,0,'login');
$senha = mysql_result($query,0,'senha');
$nome = mysql_result($query,0,'nome');

echo "<form method='post' action='admin.php?pagina=dados-enviar'>
<input type='hidden' name='id' value='$id'/>
Seu Login:<input type='text' name='login' value='$login'/><br/>
Sua Senha:<input type='text' name='senha' value='$senha'/><br/>
Seu Nome:<input type='text' name='nome' value='$nome'/><br/>
<input type='submit' value='Alterar'/>";
}

if($pagina == "dados-enviar")
{
$id = $_POST['id'];
$login = $_POST['login'];
$senha = $_POST['senha'];
$nome = $_POST['nome'];

$sql = "UPDATE usuarios SET LOGIN = '$login', SENHA = '$senha', NOME = '$nome' WHERE ID = $id ";

mysql_query($sql,$conexao);

if(mysql_affected_rows($conexao) > 0)
{
echo "Dados Alterados";
}else {
echo "Erro na alteração"; }

}

if($pagina == "cadsatrar_noticia")
{
$sql = "SELECT nome FROM usuarios";
$query = mysql_query($sql,$conexao);
$nome = mysql_result($query,0,'nome');
$data = date('d/m/Y');
echo "<h3>Cadastro de Notícia</h3>";
echo "
<form method='post' action='admin.php?pagina=cadastrar_noticia-envia'>
Título:<input type='text' name='titulo'/>
<br/>Autor: <input type='text' name='autor' value='$nome'/>
<br/>Data: <input type='text maxlength='10' size='8' name='data' value='$data'/>
<br/>Corpo da Notícia:<br/>
<textarea rows='10' cols='50' name='noticia'></textarea>
<br/><input type='submit' value='Cadastrar Notícia'/>
</form>
";
}

if($pagina == "cadastrar_noticia-envia")
{
$titulo = $_POST['titulo'];
$autor = $_POST['autor'];
$data = $_POST['data'];
$noticia = $_POST['noticia'];

$sql = "INSERT INTO noticias (TITULO,NOTICIA,AUTOR,DATA) VALUES ('$titulo','$noticia','$autor','$data')";

if(mysql_query($sql,$conexao))
{
echo "Notícia cadastrada.";
} else
{
echo "Problema no cadastro."; }
}

if($pagina == "administrar_noticias")
{

$sql = "SELECT * FROM noticias";
$query = mysql_query($sql,$conexao);
$rows = mysql_num_rows($query);
if($rows > 0)
{
echo "<table border=1 width=450><tr><th>ID</th><th>Título</th><th>Autor</th><th>Data</th><th>Op.</th></tr>";
for($x = 0; $x < $rows ; $x++)
{
$id = mysql_result($query, $x, 'id');
$titulo = mysql_result($query, $x, 'titulo');
$autor = mysql_result($query, $x, 'autor');
$data = mysql_result($query, $x, 'data');
echo "<tr><td align=center>$id</td><td align=center>$titulo</td><td align=center>$autor</td><td align=center>$data</td><td align=center><a href='admin.php?pagina=editar&id=$id'>E</a> <a href='admin.php?pagina=excluir&id=$id'>D</a></td></tr>";
}
echo "</table>";
}
else {
echo "Não há notícias cadastradas.";}
}

if($pagina == 'editar')
{
$id = $_GET['id'];
$sql = "SELECT * FROM noticias WHERE id = '$id'";
$query = mysql_query($sql,$conexao);
$rows = mysql_num_rows($query);

if($rows > 0)
{

$titulo = mysql_result($query, 0, 'titulo');
$noticia = mysql_result($query, 0, 'noticia');
$autor = mysql_result($query, 0, 'autor');
$data = mysql_result($query, 0, 'data');

echo "<form method='post' action='admin.php?pagina=editar-envia'>
<input type='hidden' name='id' value='$id'/>
Título: <input type='text' name='titulo' value='$titulo'/><br/>
Autor: <input type='text' name='autor' value='$autor'/><br/>
Data: <input type='text' name='data' value='$data'/><br/>
Corpo da Notícia:<br/>
<textarea rows='10' cols='50' name='noticia'>$noticia</textarea>
<br/><input type='submit' value='Editar/>
</form>";


} else {
echo "ID Inválido.";

}

}

if($pagina == 'editar-envia')
{
$id = $_POST['id'];
$titulo = $_POST['titulo'];
$autor = $_POST['autor'];
$data = $_POST['data'];
$noticia = $_POST['noticia'];

$sql = "UPDATE noticias SET TITULO = '$titulo', NOTICIA = '$noticia', AUTOR = '$autor', DATA = '$data' WHERE ID = $id ";

if(mysql_query ($sql,$conexao))
{
echo "Notícia alterada";
}else{
echo "Problema na alteração";
}
}

if($pagina == 'excluir')
{
$id = $_GET['id'];
$excluir = $_GET['excluir'];
if(empty($excluir)){
echo "Tem certeza que deseja excluir a notícia número $id?";
echo "<a href='admin.php?pagina=excluir&id=$id&excluir=sim'>Sim</a> <a href='admin.php?pagina=administrar_noticias'>Não</a>";
}

if($excluir == 'sim')
{
$sql = "DELETE FROM noticias WHERE ID = '$id' ";
@mysql_query($sql,$conexao);
echo "Notícia excluida.";

}


}

?>

 

Pronto, já criamos todos os arquivos.

 

Instalação e Integração

 

Para instalar, abra o conexao.php como bloco de notas:

 

<?php
$ip = "localhost"; //Seu ip, se for o mesmo que vai rodar o site, deixe localhost ou 127.0.1
$login = "root"; //Seu login do mysql
$senha = ""; //Sua senha do mysql, eu não tenho senha  é tudo local
$db = "noticias"; //Nome do banco de dados mysql

$conexao =  mysql_connect("$ip","$login","$senha"); // ip, login e senha
if($conexao)
{       if( !  mysql_select_db("$db",$conexao)  )     // nome do banco de dados
      {             die( mysql_error($conexao)    );         }    }
   else      {         die('Não foi possível conectar ao banco de dados.');     }
?>

 

A variável $ip determina o ip do seu banco de dados, se você vai rodar esse sistema no mesmo computador/servidor que está o banco de dados, deixe como localhost ou 127.0.1!

A variável $login representa o seu login do MySql e a variável $senha a senha de seu MySql.

Agora recordando o nome que você deu ao banco de dados de seu sistema de notícias você deve colocar na variável $db

 

Após tudo isso, seu sistema estará funcionando.

 

É só entrar no arquivo login.php através do seu site e para ver as notícias o arquivo noticias.php

 

Para integrar este sistema no seu site é bem simples!

 

Crie uma pasta chamada noticias dentro de seu site. Na página que você deseja integrar coloque o código:

 

<?php
include('noticias/noticias.php'); // ou coloque qualquer outro diretório que você tenha estabelecido para o arquivo noticias.php
?>

Obs.: O arquivo do seu site que será integrado precisa ser em formato .php

 

Quem quiser fazer o download completo do código somente baixe aqui:

Clique Aqui

 

Dados Padrões do Painel de Controle:(podem ser alterados no painel)

Login: root

Senha: 1234

Nome: XTibia

 

Espero que seja muito útil!

 

Até mais,

Mattew.

Editado por Mattew
Link para o comentário
Compartilhar em outros sites

Parabéns Mattew você que falou que fez rápido, está de parabéns.

Principalmente pelo fato de estar funcionando, porém poderia arrumar algumas coisas quando tiver mais tempo.

Abraços Luan

Editado por luaanf
Link para o comentário
Compartilhar em outros sites

Parabéns Mattew você que falou que fez rápido, está de parabéns.

Principalmente pelo fato de estar funcionando, porém poderia arrumar algumas coisas quando tiver mais tempo.

Abraços Luan

 

Bom, essa semana, após as provas, vou fazer um sistema de pagamentos MoIp com retorno automático e adição de premium points automaticamente. Depois disso, vou focar em melhorar esse sistema, vou adicionar um pouco de estilo, deixá-lo mais bonito, mais fácil de personalizar. E vou colocar para poder ter várias contas, várias pessoas cadastrarem notícias. Mas que bom que gostou.

 

Mattew.

Link para o comentário
Compartilhar em outros sites

Boa Mattew, tomare que na versão 2 você coloque tipo uma "staff" ficaria bem legal. O dono cadastraria pessoas na "staff" para postarem, fica legal! Eu tinha um script assim bem simples também, mas não lembro se tenho, se tiver posto para vocês verem!

Abraços.

Link para o comentário
Compartilhar em outros sites

Bem legal cara, mas só uma dica básica, pra deixar o tópico mais interessante você poderia adicionar um preview, ou algum tipo de exemplo pra mostrar o que é

 

Está bem feio o código, a única coisa boa é o painel que é facil de mexer, não adicionei imagens, css nem nada. No entanto, a página que mostra as notícias é bem fácil de se formatar e adaptar ao estilo do seu site :) que é o importante afinal.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 1 year later...
×
×
  • Criar Novo...