Mattew 20 Postado Dezembro 12, 2010 Share Postado Dezembro 12, 2010 (editado) 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 Dezembro 12, 2010 por Mattew Link para o comentário https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/ Compartilhar em outros sites More sharing options...
luaanf 0 Postado Dezembro 13, 2010 Share Postado Dezembro 13, 2010 (editado) 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 Dezembro 13, 2010 por luaanf Link para o comentário https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/#findComment-973710 Compartilhar em outros sites More sharing options...
Mattew 20 Postado Dezembro 13, 2010 Autor Share Postado Dezembro 13, 2010 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 https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/#findComment-973721 Compartilhar em outros sites More sharing options...
fsg 230 Postado Dezembro 13, 2010 Share Postado Dezembro 13, 2010 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 https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/#findComment-973782 Compartilhar em outros sites More sharing options...
Mistck 1 Postado Dezembro 14, 2010 Share Postado Dezembro 14, 2010 vo test dps posto mais como vi pelos codigos deve tar muito bom Link para o comentário https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/#findComment-974281 Compartilhar em outros sites More sharing options...
Powerzin 20 Postado Dezembro 15, 2010 Share Postado Dezembro 15, 2010 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 é Link para o comentário https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/#findComment-975111 Compartilhar em outros sites More sharing options...
Mattew 20 Postado Dezembro 17, 2010 Autor Share Postado Dezembro 17, 2010 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 https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/#findComment-976922 Compartilhar em outros sites More sharing options...
Mistck 1 Postado Dezembro 27, 2010 Share Postado Dezembro 27, 2010 (editado) como faço para colocar foto de usuario !! edit foto na noticia !! Editado Dezembro 27, 2010 por Mistck Link para o comentário https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/#findComment-981679 Compartilhar em outros sites More sharing options...
loiw 1 Postado Janeiro 3, 2012 Share Postado Janeiro 3, 2012 manow eu fiz tudo certo dai vo logar nao vai e login e a senha e sertinha :@ Link para o comentário https://xtibia.com/forum/topic/147054-not%C3%ADcias-com-painel-de-controle-e-login/#findComment-1167497 Compartilhar em outros sites More sharing options...
Posts Recomendados